summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-02-29 03:02:30 +0000
committerNorbert Preining <norbert@preining.info>2020-02-29 03:02:30 +0000
commit4736ac744a8c914e0d5ced1d157e017a385bbf43 (patch)
treecc6b754ea0d704573dfffffdbf327e14057ce864 /macros
parent02193cc5ca03abf234d3bc9d77b4821d85f58c62 (diff)
CTAN sync 202002290302
Diffstat (limited to 'macros')
-rw-r--r--macros/generic/expkv-def/README.md32
-rw-r--r--macros/generic/expkv-def/expkv-def.dtx1383
-rw-r--r--macros/generic/expkv-def/expkv-def.pdfbin0 -> 294005 bytes
-rw-r--r--macros/latex/base/README.md2
-rw-r--r--macros/latex/base/alltt.pdfbin173077 -> 173077 bytes
-rw-r--r--macros/latex/base/cfgguide.pdfbin220211 -> 220211 bytes
-rw-r--r--macros/latex/base/changes.txt18
-rw-r--r--macros/latex/base/classes.pdfbin521080 -> 521080 bytes
-rw-r--r--macros/latex/base/clsguide.pdfbin372505 -> 372505 bytes
-rw-r--r--macros/latex/base/cmfonts.pdfbin264453 -> 264453 bytes
-rw-r--r--macros/latex/base/cyrguide.pdfbin216976 -> 216976 bytes
-rw-r--r--macros/latex/base/doc.pdfbin629695 -> 629693 bytes
-rw-r--r--macros/latex/base/docstrip.pdfbin469433 -> 469438 bytes
-rw-r--r--macros/latex/base/encguide.pdfbin1532114 -> 1532114 bytes
-rw-r--r--macros/latex/base/exscale.pdfbin195880 -> 195880 bytes
-rw-r--r--macros/latex/base/fix-cm.pdfbin262051 -> 262051 bytes
-rw-r--r--macros/latex/base/fntguide.pdfbin360915 -> 361835 bytes
-rw-r--r--macros/latex/base/fntguide.tex22
-rw-r--r--macros/latex/base/graphpap.pdfbin156280 -> 156280 bytes
-rw-r--r--macros/latex/base/ifthen.pdfbin205205 -> 205205 bytes
-rw-r--r--macros/latex/base/inputenc.pdfbin294824 -> 294824 bytes
-rw-r--r--macros/latex/base/latexchanges.pdfbin231199 -> 232376 bytes
-rw-r--r--macros/latex/base/latexchanges.tex16
-rw-r--r--macros/latex/base/latexrelease.pdfbin246174 -> 246174 bytes
-rw-r--r--macros/latex/base/latexsym.pdfbin192289 -> 192289 bytes
-rw-r--r--macros/latex/base/lb2.pdfbin138223 -> 138223 bytes
-rw-r--r--macros/latex/base/letter.pdfbin305150 -> 305154 bytes
-rw-r--r--macros/latex/base/lgc2.pdfbin101344 -> 101344 bytes
-rw-r--r--macros/latex/base/ltdefns.dtx6
-rw-r--r--macros/latex/base/ltfssaxes.dtx56
-rw-r--r--macros/latex/base/ltfssbas.dtx36
-rw-r--r--macros/latex/base/ltluatex.pdfbin304104 -> 304104 bytes
-rw-r--r--macros/latex/base/ltnews.pdfbin950041 -> 950041 bytes
-rw-r--r--macros/latex/base/ltnews01.pdfbin150020 -> 150020 bytes
-rw-r--r--macros/latex/base/ltnews02.pdfbin134750 -> 134750 bytes
-rw-r--r--macros/latex/base/ltnews03.pdfbin134730 -> 134730 bytes
-rw-r--r--macros/latex/base/ltnews04.pdfbin128768 -> 128768 bytes
-rw-r--r--macros/latex/base/ltnews05.pdfbin157174 -> 157174 bytes
-rw-r--r--macros/latex/base/ltnews06.pdfbin133132 -> 133132 bytes
-rw-r--r--macros/latex/base/ltnews07.pdfbin124028 -> 124028 bytes
-rw-r--r--macros/latex/base/ltnews08.pdfbin144471 -> 144471 bytes
-rw-r--r--macros/latex/base/ltnews09.pdfbin120208 -> 120208 bytes
-rw-r--r--macros/latex/base/ltnews10.pdfbin147941 -> 147941 bytes
-rw-r--r--macros/latex/base/ltnews11.pdfbin104942 -> 104942 bytes
-rw-r--r--macros/latex/base/ltnews12.pdfbin137918 -> 137918 bytes
-rw-r--r--macros/latex/base/ltnews13.pdfbin161066 -> 161066 bytes
-rw-r--r--macros/latex/base/ltnews14.pdfbin150920 -> 150920 bytes
-rw-r--r--macros/latex/base/ltnews15.pdfbin122088 -> 122088 bytes
-rw-r--r--macros/latex/base/ltnews16.pdfbin130688 -> 130688 bytes
-rw-r--r--macros/latex/base/ltnews17.pdfbin149835 -> 149835 bytes
-rw-r--r--macros/latex/base/ltnews18.pdfbin36003 -> 36003 bytes
-rw-r--r--macros/latex/base/ltnews19.pdfbin235068 -> 235068 bytes
-rw-r--r--macros/latex/base/ltnews20.pdfbin283323 -> 283323 bytes
-rw-r--r--macros/latex/base/ltnews21.pdfbin233491 -> 233491 bytes
-rw-r--r--macros/latex/base/ltnews22.pdfbin302835 -> 302835 bytes
-rw-r--r--macros/latex/base/ltnews23.pdfbin274453 -> 274453 bytes
-rw-r--r--macros/latex/base/ltnews24.pdfbin252641 -> 252641 bytes
-rw-r--r--macros/latex/base/ltnews25.pdfbin196325 -> 196325 bytes
-rw-r--r--macros/latex/base/ltnews26.pdfbin362836 -> 362836 bytes
-rw-r--r--macros/latex/base/ltnews27.pdfbin239755 -> 239755 bytes
-rw-r--r--macros/latex/base/ltnews28.pdfbin368228 -> 368228 bytes
-rw-r--r--macros/latex/base/ltnews29.pdfbin433006 -> 433006 bytes
-rw-r--r--macros/latex/base/ltnews30.pdfbin491245 -> 491245 bytes
-rw-r--r--macros/latex/base/ltnews31.pdfbin500186 -> 500186 bytes
-rw-r--r--macros/latex/base/ltvers.dtx2
-rw-r--r--macros/latex/base/ltx3info.pdfbin191528 -> 191528 bytes
-rw-r--r--macros/latex/base/ltxdoc.pdfbin215600 -> 215600 bytes
-rw-r--r--macros/latex/base/makeindx.pdfbin160673 -> 160673 bytes
-rw-r--r--macros/latex/base/manual.pdfbin151354 -> 151354 bytes
-rw-r--r--macros/latex/base/modguide.pdfbin220384 -> 220384 bytes
-rw-r--r--macros/latex/base/nfssfont.pdfbin202429 -> 202429 bytes
-rw-r--r--macros/latex/base/proc.pdfbin216899 -> 216899 bytes
-rw-r--r--macros/latex/base/slides.pdfbin352152 -> 352152 bytes
-rw-r--r--macros/latex/base/slifonts.pdfbin214708 -> 214708 bytes
-rw-r--r--macros/latex/base/source2e.pdfbin3108642 -> 3111674 bytes
-rw-r--r--macros/latex/base/syntonly.pdfbin181539 -> 181552 bytes
-rw-r--r--macros/latex/base/tlc2.pdfbin164949 -> 164949 bytes
-rw-r--r--macros/latex/base/tulm.pdfbin156534 -> 156534 bytes
-rw-r--r--macros/latex/base/usrguide.pdfbin398281 -> 398281 bytes
-rw-r--r--macros/latex/base/utf8ienc.pdfbin330720 -> 330893 bytes
-rw-r--r--macros/latex/base/webcomp.pdfbin136153 -> 136153 bytes
-rw-r--r--macros/latex/contrib/asmeconf/README.md8
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf-template.pdfbin483752 -> 479400 bytes
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf-template.tex36
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf.cls68
-rw-r--r--macros/latex/contrib/asmejour/README.md8
-rw-r--r--macros/latex/contrib/asmejour/asmejour-template.pdfbin476955 -> 477385 bytes
-rw-r--r--macros/latex/contrib/asmejour/asmejour-template.tex20
-rw-r--r--macros/latex/contrib/asmejour/asmejour.bst7
-rw-r--r--macros/latex/contrib/asmejour/asmejour.cls50
-rw-r--r--macros/latex/contrib/babel-contrib/greek/Makefile104
-rw-r--r--macros/latex/contrib/babel-contrib/greek/README4
-rw-r--r--macros/latex/contrib/babel-contrib/greek/README.html251
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek.dtx35
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek.pdfbin254908 -> 253662 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek.pdfbin234442 -> 233658 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-unicode-greek.pdfbin43050 -> 42911 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-unicode-greek.tex17
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-unicode-lgr.pdfbin43380 -> 43798 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/usage.pdfbin176226 -> 175483 bytes
-rw-r--r--macros/latex/contrib/curve2e/README.txt58
-rw-r--r--macros/latex/contrib/curve2e/curve2e-manual.pdfbin566328 -> 566076 bytes
-rw-r--r--macros/latex/contrib/curve2e/curve2e-manual.tex2
-rw-r--r--macros/latex/contrib/curve2e/curve2e.dtx544
-rw-r--r--macros/latex/contrib/curve2e/curve2e.pdfbin614651 -> 641726 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/CHANGES4
-rw-r--r--macros/latex/contrib/glossaries-extra/README2
-rw-r--r--macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdfbin1358261 -> 1358716 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html2799
-rw-r--r--macros/latex/contrib/glossaries-extra/glossaries-extra-manual.pdfbin784782 -> 784773 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex4
-rw-r--r--macros/latex/contrib/glossaries-extra/glossaries-extra.dtx32
-rw-r--r--macros/latex/contrib/glossaries-extra/glossaries-extra.ins2
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdfbin537720 -> 537720 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdfbin44742 -> 44741 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdfbin82832 -> 82831 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdfbin50350 -> 50351 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdfbin36728 -> 36728 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-alias.pdfbin43857 -> 43857 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdfbin35290 -> 35289 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdfbin90979 -> 90983 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdfbin69519 -> 69521 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdfbin55731 -> 55733 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdfbin141967 -> 141872 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdfbin161468 -> 161424 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdfbin41275 -> 41274 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdfbin41603 -> 41603 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdfbin45245 -> 45244 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdfbin54604 -> 54604 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-external.pdfbin34170 -> 34170 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdfbin75249 -> 75247 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdfbin63216 -> 63214 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-header.pdfbin125893 -> 125901 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdfbin42711 -> 42710 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdfbin81573 -> 81573 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdfbin38216 -> 38218 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdfbin57809 -> 57809 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdfbin45141 -> 45142 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdfbin159904 -> 159850 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdfbin202074 -> 224726 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-nested.pdfbin67719 -> 67720 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdfbin47572 -> 47573 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdfbin44500 -> 44500 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdfbin106058 -> 106052 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdfbin19641 -> 19642 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdfbin43469 -> 43470 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-pages.pdfbin38788 -> 38791 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdfbin37045 -> 37045 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdfbin67872 -> 67872 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdfbin33107 -> 33107 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdfbin71296 -> 71295 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-record.pdfbin50214 -> 50214 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdfbin47883 -> 47883 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdfbin34926 -> 34925 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdfbin46382 -> 46383 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdfbin31596 -> 31596 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdfbin13411 -> 13411 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-trans.pdfbin49436 -> 49436 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-undef.pdfbin33214 -> 33215 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdfbin61034 -> 61037 bytes
-rw-r--r--macros/latex/contrib/glossaries-extra/samples/sample.pdfbin45727 -> 45727 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin312439 -> 332466 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex352
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx2516
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin693305 -> 723168 bytes
-rw-r--r--macros/latex/contrib/translations/README4
-rw-r--r--macros/latex/contrib/translations/dicts/translations-basic-dictionary-catalan.trsl2
-rw-r--r--macros/latex/contrib/translations/dicts/translations-basic-dictionary-dutch.trsl2
-rw-r--r--macros/latex/contrib/translations/dicts/translations-basic-dictionary-english.trsl2
-rw-r--r--macros/latex/contrib/translations/dicts/translations-basic-dictionary-french.trsl2
-rw-r--r--macros/latex/contrib/translations/dicts/translations-basic-dictionary-german.trsl2
-rw-r--r--macros/latex/contrib/translations/dicts/translations-basic-dictionary-spanish.trsl2
-rw-r--r--macros/latex/contrib/translations/translations.sty76
-rw-r--r--macros/latex/contrib/translations/translations_en.pdfbin504516 -> 496892 bytes
-rw-r--r--macros/latex/contrib/translations/translations_en.tex45
-rw-r--r--macros/latex/contrib/zwpagelayout/README18
-rw-r--r--macros/latex/contrib/zwpagelayout/adjustfoot.pdfbin88990 -> 88982 bytes
-rw-r--r--macros/latex/contrib/zwpagelayout/adjusthead.pdfbin88751 -> 88745 bytes
-rw-r--r--macros/latex/contrib/zwpagelayout/coversample.pdfbin65922 -> 65924 bytes
-rw-r--r--macros/latex/contrib/zwpagelayout/zwpagelayout.pdfbin471045 -> 475910 bytes
-rw-r--r--macros/latex/contrib/zwpagelayout/zwpagelayout.sty14
-rw-r--r--macros/latex/contrib/zwpagelayout/zwpagelayout.tex26
-rw-r--r--macros/latex/required/babel/base/README.md17
-rw-r--r--macros/latex/required/babel/base/babel.dtx276
-rw-r--r--macros/latex/required/babel/base/babel.ins4
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin755671 -> 763419 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
187 files changed, 5905 insertions, 3085 deletions
diff --git a/macros/generic/expkv-def/README.md b/macros/generic/expkv-def/README.md
new file mode 100644
index 0000000000..4026585657
--- /dev/null
+++ b/macros/generic/expkv-def/README.md
@@ -0,0 +1,32 @@
+-------------------------------------------------------------------------------
+# expkv-def -- a key-defining frontend for expkv
+
+Version 2020-02-27 v0.1
+
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+
+Hosted at https://github.com/Skillmon/tex_expkv-def
+
+-------------------------------------------------------------------------------
+
+Copyright (C) 2020 Jonathan P. Spratte
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License (LPPL), either version 1.3c of this license or
+(at your option) any later version. The latest version of this license is in
+the file:
+
+ http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+ Jonathan P. Spratte.
+
+-------------------------------------------------------------------------------
+
+This provides a key=val frontend to define keys for
+[`expkv`](https://github.com/Skillmon/tex_expkv). It is generic code and only
+requires `expkv` for its parsing. There is a LaTeX package `expkv-def.sty`
+included to play nice on LaTeX's package loading system, but that package is not
+needed and does not provide more functionality than the generic code in
+`expkv-def.tex`.
diff --git a/macros/generic/expkv-def/expkv-def.dtx b/macros/generic/expkv-def/expkv-def.dtx
new file mode 100644
index 0000000000..33bcf27157
--- /dev/null
+++ b/macros/generic/expkv-def/expkv-def.dtx
@@ -0,0 +1,1383 @@
+% \iffalse meta-comment
+%
+% File: expkv-def.dtx Copyright (C) 2020 Jonathan P. Spratte
+%
+% This work may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this license or
+% (at your option) any later version. The latest version of this license is in
+% the file:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% ------------------------------------------------------------------------------
+%
+%<*driver>^^A>>=
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+\input l3docstrip.tex
+\askforoverwritefalse
+\preamble
+
+--------------------------------------------------------------
+expkv-def -- a key-defining frontend for expkv
+E-mail: jspratte@yahoo.de
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+--------------------------------------------------------------
+
+Copyright (C) 2020 Jonathan P. Spratte
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License (LPPL), either version 1.3c of this license or
+(at your option) any later version. The latest version of this license is in
+the file:
+
+ http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+ Jonathan P. Spratte.
+
+This work consists of the file expkv-def.dtx
+and the derived files expkv-def.pdf
+ expkv-def.sty
+ expkv-def.tex
+
+\endpreamble
+% stop docstrip adding \endinput
+\postamble
+\endpostamble
+\generate{\file{expkv-def.sty}{\from{expkv-def.dtx}{pkg}}}
+\generate{\file{expkv-def.tex}{\from{expkv-def.dtx}{tex}}}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%
+\IfFileExists{expkv-def.tex}{\input{expkv-def.tex}}{}
+\ProvidesFile{expkv-def.dtx}
+ [\csname ekvdDate\endcsname\ a key-defining frontend for expkv]
+\PassOptionsToPackage{full}{textcomp}
+\documentclass{l3doc}
+\RequirePackage[oldstylenums,nott]{kpfonts}
+\input{glyphtounicode}
+\pdfgentounicode=1
+\RequirePackage{listings}
+\RequirePackage{booktabs}
+\RequirePackage{array}
+\RequirePackage{collcell}
+\RequirePackage{siunitx}
+\RequirePackage{xcolor}
+\RequirePackage{caption}
+\RequirePackage{microtype}
+\RequirePackage{accsupp}
+\lstset
+ {
+ ,flexiblecolumns=false
+ ,basewidth=.53em
+ ,gobble=2
+ ,basicstyle=\fontfamily{jkp}\itshape
+ ,morekeywords=^^A
+ {^^A
+ \ekvdefinekeys
+ }
+ ,morecomment=[l]\%
+ ,commentstyle=\color[gray]{0.4}
+ ,literate={\{}{{\CodeSymbol\{}}{1}
+ {\}}{{\CodeSymbol\}}}{1}
+ ^^A,literate=*{<key>}{\key}{4}{<set>}{\set}{4}
+ }
+\newcommand*\CodeSymbol[1]{\textbf{#1}}
+\RequirePackage{randtext}
+\let\metaORIG\meta
+\protected\def\meta #1{\texttt{\metaORIG{#1}}}
+\renewcommand*\thefootnote{\fnsymbol{footnote}}
+\definecolor{expkvred}{HTML}{9F393D}
+\colorlet{expkvgrey}{black!75}
+\makeatletter
+\newcommand*\expkv
+ {^^A
+ \texorpdfstring
+ {^^A
+ \mbox
+ {^^A
+ \BeginAccSupp{ActualText=expkv}^^A
+ \href{https://github.com/Skillmon/tex_expkv}
+ {^^A
+ \rmfamily
+ \bfseries
+ {\color{expkvgrey}e\kern-.05em x\kern-.05em}^^A
+ \lower.493ex
+ \hbox{{\color{expkvgrey}P}\kern-.1em{\color{expkvred}k}}^^A
+ \kern-.18em{\color{expkvred}v}^^A
+ }^^A
+ \EndAccSupp{}^^A
+ }^^A
+ }
+ {expkv}^^A
+ }
+\newcommand*\expkvd
+ {^^A
+ \texorpdfstring
+ {^^A
+ \mbox
+ {^^A
+ \BeginAccSupp{ActualText=expkv-def}^^A
+ \href{https://github.com/Skillmon/tex_expkv-def}
+ {^^A
+ \rmfamily
+ \bfseries
+ {\color{expkvgrey}e\kern-.05em x\kern-.05em}^^A
+ \lower.493ex
+ \hbox{{\color{expkvgrey}P}\kern-.1em{\color{expkvred}k}}^^A
+ \kern-.18em{\color{expkvred}v}^^A
+ {\color{expkvgrey}^^A
+ \kern.05em\rule[-.1ex]{.08em}{1.2ex}\kern.05em\textsc{def}^^A
+ }^^A
+ }^^A
+ \EndAccSupp{}^^A
+ }^^A
+ }
+ {expkv-def}^^A
+ }
+\newcommand\kv{\meta{key}=\meta{value}}
+\newcommand\key{\meta{key}}
+\newcommand\val{\meta{value}}
+\newcommand\set{\meta{set}}
+\newcommand\enfprot{\textcolor{black}{protected}}
+\newcommand\allprot{\textcolor{gray}{protected}}
+\newcommand\notprot{\textcolor{red!80!black}{protected}}
+\newcommand\enflong{\textcolor{black}{long}}
+\newcommand\alllong{\textcolor{gray}{long}}
+\newcommand\notlong{\textcolor{red!80!black}{long}}
+\newcommand\prefixes[2]
+ {^^A
+ \hfill
+ \ifcase\numexpr#1\relax\or
+ \enfprot\or
+ \allprot\or
+ \notprot\fi\space
+ \ifcase\numexpr#2\relax\or
+ \enflong\or
+ \alllong\or
+ \notlong\fi
+ }
+\hypersetup{linkcolor=red!80!black,urlcolor=purple!80!black}
+\DoNotIndex{\def,\edef,\,,\=,\begingroup,\catcode,\chardef,\csname,\endcsname}
+\DoNotIndex{\endgroup,\endinput,\errmessage,\expandafter,\input,\let,\long}
+\DoNotIndex{\noexpand,\protected,\ProvidesFile,\ProvidesPackage,\relax,\space}
+\DoNotIndex{\@,\unexpanded,\string,\expanded,\dimexpr,\global,\glueexpr,\hbox}
+\DoNotIndex{\numexpr,\RequirePackage,\setbox,\the,\unless,\xdef}
+\DoNotIndex{\ifcsname}
+\DoNotIndex{\ifx}
+\DoNotIndex{\ifdefined}
+\DoNotIndex{\iffalse}
+\DoNotIndex{\iftrue}
+\DoNotIndex{\else}
+\DoNotIndex{\fi}
+\@gobble\fi ^^A ignoring \ifx, \ifcsname, etc., but only one \fi
+\@gobble\fi ^^A ignoring \ifx, \ifcsname, etc., but only one \fi
+\@gobble\fi ^^A ignoring \ifx, \ifcsname, etc., but only one \fi
+\@gobble\fi ^^A ignoring \ifx, \ifcsname, etc., but only one \fi
+\@ifdefinable\gobbledocstriptag{\def\gobbledocstriptag#1>{}}
+\makeatother
+\begin{document}
+ \title
+ {^^A
+ \texorpdfstring
+ {^^A
+ \huge\expkvd
+ \\[\medskipamount]
+ \Large a key-defining frontend for \expkv
+ }{expkv-def - a key-defining frontend for expkv}^^A
+ }
+ \date{\ekvdDate\space v\ekvdVersion}
+ \author{Jonathan P. Spratte\thanks{\protect\randomize{jspratte@yahoo.de}}}
+ \DocInput{expkv-def.dtx}
+\end{document}
+%</driver>^^A=<<
+% \fi
+%
+% \maketitle
+% \renewcommand*\thefootnote{\arabic{footnote}}
+%
+% \begin{abstract}
+% \noindent\parfillskip=0pt
+% \expkvd\ provides a small \kv\ interface to define keys for \expkv. Key-types
+% are declared using prefixes, similar to static typed languages. The stylised
+% name is \expkvd\ but the files use \file{expkv-def}, this is due to CTAN-rules
+% which don't allow \string| in package names since that is the pipe symbol in *nix
+% shells.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \begin{documentation}^^A>>=
+%
+% \section{Documentation}
+%
+% Since the trend for the last couple of years goes to defining keys for a \kv\
+% interface using a \kv\ interface, I thought that maybe providing such an
+% interface for \expkv\ will make it more attractive for actual use, besides its
+% unique selling points of being fully expandable, and fast and reliable. But at
+% the same time I don't want to widen \expkv's initial scope. So here it is
+% \expkvd, go define \kv\ interfaces with \kv\ interfaces.
+%
+% Unlike many of the other established \kv\ interfaces to define keys, \expkvd\
+% works using prefixes instead of suffixes (\emph{e.g.}, |.tl_set:N| of
+% \pkg{l3keys}) or directory like handlers (\emph{e.g.}, |/.store in| of
+% \pkg{pgfkeys}). This was decided as a personal preference, more over in \TeX\
+% parsing for the first space is way easier than parsing for the last one.
+% \expkvd's prefixes are sorted into two categories |p|-type, which are
+% equivalent to \TeX's prefixes like |\long|, and |t|-type defining the type of
+% the key. For a description of the available |p|-prefixes take a look at
+% \autoref{sec:prefix:p}, the |t|-prefixes are described in
+% \autoref{sec:prefix:t}.
+%
+% \expkvd\ is usable as generic code and as a \LaTeX\ package. It'll
+% automatically load \expkv\ in the same mode as well. To use it, just use one
+% of
+% \begin{lstlisting}
+% \usepackage{expkv-def} % LaTeX
+% \input expkv-def % plainTeX
+% \end{lstlisting}
+%
+% \subsection{Macros}
+% Apart from version and date containers there is only a single user-facing
+% macro, and that should be used to define keys.
+%
+% \begin{function}{\ekvdefinekeys}
+% \begin{syntax}
+% \cs{ekvdefinekeys}\marg{set}\{\kv, \ldots\}
+% \end{syntax}
+% In \set, define \key\ to have definition \val. The general syntax for \key\
+% should be
+% \begin{quote}\ttfamily\small
+% \meta{prefix} \meta{name}
+% \end{quote}
+% Where \meta{prefix} is a space separated list of optional |p|-type prefixes
+% followed by one |t|-type prefix. The syntax of \val\ is dependent on the
+% used |t|-prefix.
+% \end{function}
+%
+% \begin{function}{\ekvdDate,\ekvdVersion}
+% These two macros store the version and date of the package.
+% \end{function}
+%
+% \subsection{Prefixes}
+% As already said there are |p|-prefixes and |t|-prefixes. Not every |p|-prefix
+% is allowed for all |t|-prefixes.
+%
+% \subsubsection{\texttt{p}-Prefixes}\label{sec:prefix:p}
+% The |p|-type prefixes are pretty simple by nature, so their description is
+% pretty simple. They affect the \key\ at use-time, so omitting |long| doesn't
+% mean that a \meta{definition} can't contain a |\par| token, only that the
+% \key\ will not accept a |\par| in \val.
+% \begin{function}{protected,protect}
+% The following key will be defined |\protected|. Note that key-types which
+% can't be defined expandable will always use |\protected|.
+% \end{function}
+%
+% \begin{function}{long}
+% The following key will be defined |\long|.
+% \end{function}
+%
+% \subsubsection{\texttt{t}-Prefixes}\label{sec:prefix:t}
+% Since the |p|-type prefixes apply to some of the |t|-prefixes automatically
+% but sometimes one might be disallowed we need some way to highlight this
+% behaviour. In the following an enforced prefix will be printed black
+% (\texttt{\enfprot}), allowed prefixes will be grey (\texttt{\allprot}), and
+% disallowed prefixes will be red (\texttt{\notprot}). This will be put
+% flush-right in the syntax showing line.
+%
+% \begin{function}{code,ecode}
+% \begin{syntax}
+% code \key\ = \marg{definition} \prefixes22
+% \end{syntax}
+% Define \key\ to expand to \meta{definition}. The \key\ will require a \val\
+% for which you can use |#1| inside \meta{definition}. The |ecode| variant
+% will fully expand \meta{definition} inside an |\edef|.
+% \end{function}
+%
+% \begin{function}{noval,enoval}
+% \begin{syntax}
+% noval \key\ = \marg{definition} \prefixes23
+% \end{syntax}
+% The |noval| type defines \key\ to expand to \meta{definition}. The \key\
+% will not take a \val. |enoval| fully expands \meta{definition} inside an
+% |\edef|.
+% \end{function}
+%
+% \begin{function}{default,qdefault,edefault}
+% \begin{syntax}
+% default \key\ = \marg{definition} \prefixes23
+% \end{syntax}
+% This serves to place a default \val\ for a \key\ that takes an argument, the
+% \key\ can be of any argument-grabbing kind, and when used without a \val\
+% it will be passed \meta{definition} instead. The |qdefault| variant will
+% expand the \key's code once, so will be slightly quicker, but not change if
+% you redefine \key. The |edefault| on the other hand fully expands the
+% \key-code with \meta{definition} as its argument inside of an |\edef|.
+% \end{function}
+%
+% \begin{function}{initial}
+% \begin{syntax}
+% initial \key\ = \{\val\} \prefixes33
+% \end{syntax}
+% With |initial| you can set an initial \val\ for an already defined argument
+% taking \key. It'll just call the key-macro of \key\ and pass it \val.
+% \end{function}
+%
+% \begin{function}{bool,gbool,boolTF,gboolTF}
+% \begin{syntax}
+% bool \key\ = \meta{cs} \prefixes23
+% \end{syntax}
+% The \meta{cs} should be a single control sequence, such as |\iffoo|.
+% This will define \key\ to be a boolean key, which only takes the values
+% |true| or |false| and will throw an error for other values. If the key is
+% used without a \val\ it'll have the same effect as if you use
+% \texttt{\key=true}. |bool| and |gbool| will behave like \TeX-ifs so either
+% be |\iftrue| or |\iffalse|. The |boolTF| and |gboolTF| variants will both
+% take two arguments and if true the first will be used else the second, so
+% they are always either |\@firstoftwo| or |\@secondoftwo|. The variants with
+% a leading |g| will set the control sequence globally, the others locally. If
+% \meta{cs} is not yet defined it'll be initialised as the |false| version.
+% Note that the initialisation is \emph{not} done with |\newif|, so you will
+% not be able to do |\footrue| outside of the \kv\ interface, but you could
+% use |\newif| yourself. Even if the \key\ will not be |\protected| the
+% commands which execute the |true| or |false| choice will be, so the usage
+% should be safe in an expansion context (\emph{e.g.}, you can use
+% \texttt{edefault \key\ = false} without an issue to change the default
+% behaviour to execute the |false| choice).
+% \end{function}
+%
+% \begin{function}{store,estore,gstore,xstore}
+% \begin{syntax}
+% store \key\ = \meta{cs} \prefixes12
+% \end{syntax}
+% The \meta{cs} should be a single control sequence, such as |\foo|.
+% This will define \key\ to store \val\ inside of the control sequence. If
+% \meta{cs} isn't yet defined it will be initialised as empty. The variants
+% behave similarly to their |\def|, |\edef|, |\gdef|, and |\xdef|
+% counterparts, but |store| and |gstore| will allow you to store macro
+% parameters inside of them by using |\unexpanded|.
+% \end{function}
+%
+% \begin{function}{int,eint,gint,xint}
+% \begin{syntax}
+% int \key\ = \meta{cs} \prefixes12
+% \end{syntax}
+% The \meta{cs} should be a single control sequence, such as |\foo|.
+% An |int| key will be a \TeX-count register. If \meta{cs} isn't defined yet,
+% |\newcount| will be used to initialise it. The |eint| and |xint| versions
+% will use |\numexpr| to allow basic computations in their \val. The |gint|
+% and |xint| variants set the register globally.
+% \end{function}
+%
+% \begin{function}{dimen,edimen,gdimen,xdimen}
+% \begin{syntax}
+% dimen \key\ = \meta{cs} \prefixes12
+% \end{syntax}
+% The \meta{cs} should be a single control sequence, such as |\foo|.
+% This is just like |int| but uses a dimen register, |\newdimen| and
+% |\dimexpr| instead.
+% \end{function}
+%
+% \begin{function}{skip,eskip,gskip,xskip}
+% \begin{syntax}
+% dimen \key\ = \meta{cs} \prefixes12
+% \end{syntax}
+% The \meta{cs} should be a single control sequence, such as |\foo|.
+% This is just like |int| but uses a skip register, |\newskip| and |\glueexpr|
+% instead.
+% \end{function}
+%
+% \begin{function}{toks,gtoks,apptoks,gapptoks}
+% \begin{syntax}
+% dimen \key\ = \meta{cs} \prefixes12
+% \end{syntax}
+% The \meta{cs} should be a single control sequence, such as |\foo|.
+% Store \val\ inside of a toks-register. The |g| variants use |\global|, the
+% |app| variants append \val\ to the contents of that register. If \meta{cs}
+% is not yet defined it will be initialised with |\newtoks|.
+% \end{function}
+%
+% \begin{function}{box,gbox}
+% \begin{syntax}
+% box \key\ = \meta{cs} \prefixes12
+% \end{syntax}
+% The \meta{cs} should be a single control sequence, such as |\foo|.
+% Typesets \val\ into a |\hbox| and stores the result in a box register. The
+% boxes are colour safe. \expkvd\ doesn't provide a |vbox| type.
+% \end{function}
+%
+% \begin{function}{meta}
+% \begin{syntax}
+% meta \key\ = \{\kv, \ldots\} \prefixes22
+% \end{syntax}
+% This key type can set other keys, you can access the \val\ which was passed
+% to \key\ inside the \kv\ list with |#1|. It works by calling a sub-|\ekvset|
+% on the \kv\ list, so a |set| key will only affect that \kv\ list and not the
+% current |\ekvset|.
+% \end{function}
+%
+% \begin{function}{nmeta}
+% \begin{syntax}
+% nmeta \key\ = \{\kv, \ldots\} \prefixes23
+% \end{syntax}
+% This key type can set other keys, the difference to |meta| is, that this key
+% doesn't take a value, so the \kv\ list is static.
+% \end{function}
+%
+% \begin{function}{smeta}
+% \begin{syntax}
+% smeta \key\ = \marg{set}\{\kv, \ldots\} \prefixes22
+% \end{syntax}
+% Yet another |meta| variant. An |smeta| key will take a \val\ which you can
+% access using |#1|, but it sets the \kv\ list inside of \set, so is equal to
+% \texttt{\cs[no-index]{ekvset}\marg{set}\{\kv, \ldots\}}.
+% \end{function}
+%
+% \begin{function}{snmeta}
+% \begin{syntax}
+% snmeta \key\ = \marg{set}\{\kv, \ldots\} \prefixes23
+% \end{syntax}
+% And the last |meta| variant. |snmeta| is a combination of |smeta| and
+% |nmeta|. It doesn't take an argument and sets the \kv\ list inside of \set.
+% \end{function}
+%
+% \begin{function}{set}
+% \begin{syntax}
+% set \key\ = \marg{set} \prefixes33
+% \end{syntax}
+% This will define |\key| to change the set of the current |\ekvset|
+% invocation to \set. You can omit \set\ (including the equals sign),
+% which is the same as using \texttt{set \key\ = \{\key\}}. The created |set|
+% key will not take a \val. Note that just like in \expkv\ it'll not be
+% checked whether \set\ is defined and you'll get a low-level \TeX\ error if
+% you use an undefined \set.
+% \end{function}
+%
+% \begin{function}{choice}
+% \begin{syntax}
+% choice \key\ = \{\val=\meta{definition}, \ldots\} \prefixes23
+% \end{syntax}
+% Defines \key\ to be a |choice| key, meaning it will only accept a limited
+% set of values. You should define each possible \val\ inside of the
+% \val=\meta{definition} list. If a defined \val\ is passed to \key\ the
+% \meta{dafinition} will be left in the input stream. You can make
+% individual values |protected| inside the \val=\meta{definition} list. By
+% default a |choice| key is expandable, an undefined \val\ will throw an error
+% in an expandable way.
+% \end{function}
+%
+% \subsection{Bugs}
+% I don't think there are any (but every developer says that), if you find some
+% please let me know, either via the email address on the first page or on
+% GitHub:
+% \url{https://github.com/Skillmon/tex_expkv-def}
+%
+% \subsection{Example}
+% The following is an example code defining each base key-type once. Please
+% admire the very creative key-name examples.
+%
+% \begin{lstlisting}
+% \ekvdefinekeys{example}
+% {
+% ,long code keyA = #1
+% ,noval keyA = NoVal given
+% ,bool keyB = \keyB
+% ,boolTF keyC = \keyC
+% ,store keyD = \keyD
+% ,int keyE = \keyE
+% ,dimen keyF = \keyF
+% ,skip keyG = \keyG
+% ,toks keyH = \keyH
+% ,default keyH = \empty test
+% ,box keyI = \keyI
+% ,qdefault keyI = text
+% ,choice keyJ =
+% {
+% ,protected 1 = \texttt{a}
+% ,2 = b
+% ,3 = c
+% ,4 = d
+% ,5 = e
+% }
+% ,edefault keyJ = 2
+% ,meta keyK = {keyA={#1},keyB=false}
+% ,set setB = B
+% }
+% \end{lstlisting}
+%
+% \subsection{License}
+%
+% Copyright \textcopyright\ 2020\unless\ifnum\year=2020--\the\year\fi\
+% Jonathan P. Spratte
+%
+% \medskip\noindent
+% This work may be distributed and/or modified under the conditions of the
+% \LaTeX\ Project Public License (LPPL), either version 1.3c of this license or
+% (at your option) any later version. The latest version of this license is in
+% the file:
+%
+% \url{http://www.latex-project.org/lppl.txt}
+%
+% \noindent
+% This work is ``maintained'' (as per LPPL maintenance status) by
+%
+% \mbox{Jonathan P. Spratte}.
+%
+% \end{documentation}^^A=<<
+%
+% \begin{implementation}^^A>>=
+%
+% \clearpage
+%
+% \section{Implementation}^^A>>=
+%^^A the LaTeX package >>=
+% \subsection{The \LaTeX\ Package}
+% Just like for \expkv\ we provide a small \LaTeX\ package that sets up things
+% such that we behave nicely on \LaTeX\ packages and files system. It'll
+% |\input| the generic code which implements the functionality.
+% \gobbledocstriptag
+%<*pkg>
+% \begin{macrocode}
+\RequirePackage{expkv}
+\def\ekvd@tmp
+ {%
+ \ProvidesFile{expkv-def.tex}%
+ [\ekvdDate\space v\ekvdVersion\space a key-defining frontend for expkv]%
+ }
+\input{expkv-def.tex}
+\ProvidesPackage{expkv-def}%
+ [\ekvdDate\space v\ekvdVersion\space a key-defining frontend for expkv]
+% \end{macrocode}
+% \gobbledocstriptag
+%</pkg>
+%^^A=<<
+%^^A main file >>=
+% \subsection{The Generic Code}
+% The rest of this implementation will be the generic code.
+% \gobbledocstriptag
+%<*tex>
+%
+% Load \expkv\ if the package didn't already do so -- since \expkv\ has
+% safeguards against being loaded twice this does no harm and the overhead
+% isn't that big. Also we reuse some of the internals of \expkv\ to save us from
+% retyping them.
+% \begin{macrocode}
+\input expkv
+% \end{macrocode}
+%
+% We make sure that \file{expkv-def.tex} is only input once:
+% \begin{macrocode}
+\expandafter\ifx\csname ekvdVersion\endcsname\relax
+\else
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\ekvdVersion,\ekvdDate}
+% We're on our first input, so lets store the version and date in a macro.
+% \begin{macrocode}
+\def\ekvdVersion{0.1}
+\def\ekvdDate{2020-02-27}
+% \end{macrocode}
+% \end{macro}
+%
+% If the \LaTeX\ format is loaded we want to be a good file and report back who
+% we are, for this the package will have defined |\ekvd@tmp| to use
+% |\ProvidesFile|, else this will expand to a |\relax| and do no harm.
+% \begin{macrocode}
+\csname ekvd@tmp\endcsname
+% \end{macrocode}
+%
+% Store the category code of |@| to later be able to reset it and change it to
+% 11 for now.
+% \begin{macrocode}
+\expandafter\chardef\csname ekvd@tmp\endcsname=\catcode`\@
+\catcode`\@=11
+% \end{macrocode}
+% |\ekvd@tmp| will be reused later to handle expansion during the key
+% defining. But we don't need it to ever store information long-term after
+% \expkvd\ was initialized.
+%
+% \begin{macro}[internal]
+% {\ekvd@long,\ekvd@prot,\ekvd@clear@prefixes,\ekvd@empty}
+% \expkvd\ will use |\ekvd@long| and |\ekvd@prot| to store whether a key should
+% be defined an |\long| or |\protected|, and we have to clear them for every new
+% key. By default they'll just be empty.
+% \begin{macrocode}
+\def\ekvd@empty{}
+\protected\def\ekvd@clear@prefixes
+ {%
+ \let\ekvd@long\ekvd@empty
+ \let\ekvd@prot\ekvd@empty
+ }
+\ekvd@clear@prefixes
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ekvdefinekeys}
+% This is the one front-facing macro which provides the interface to define
+% keys. It's using |\ekvparse| to handle the \kv\ list, the interpretation will
+% be done by |\ekvd@noarg| and |\ekvd@|. The \set\ for which the keys should be
+% defined is stored in |\ekvd@set|.
+% \begin{macrocode}
+\protected\def\ekvdefinekeys#1%
+ {%
+ \def\ekvd@set{#1}%
+ \ekvparse\ekvd@noarg\ekvd@
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@noarg,\ekvd@}
+% |\ekvd@noarg| just places a special marker and gives control to |\ekvd@|.
+% |\ekvd@| has to test whether there is a space inside the key and if so calls
+% the prefix grabbing routine, else we throw an error and ignore the key.
+% \begin{macrocode}
+\protected\def\ekvd@noarg#1{\ekvd@{#1}\ekvd@noarg@mark}
+\protected\def\ekvd@#1#2%
+ {%
+ \ekvd@clear@prefixes
+ \ekvd@ifspace{#1}%
+ {\ekvd@prefix\ekv@mark#1\ekv@stop{#2}}%
+ {\ekvd@missing@prefix{#1}}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@prefix,\ekvd@prefix@}
+% \expkvd\ separates prefixes into two groups, the first being prefixes in the
+% \TeX\ sense (|long| and |protected|) which use |@p@| in their name, the other
+% being key-types (|code|, |int|, \emph{etc.}) which use |@t@| instead.
+% |\ekvd@prefix| splits at the first space and checks whether its a |@p@|
+% or |@t@| type prefix. If it is neither throw an error and gobble the
+% definition (the value).
+% \begin{macrocode}
+\protected\def\ekvd@prefix#1 {\ekv@strip{#1}\ekvd@prefix@\ekv@mark}
+\protected\def\ekvd@prefix@#1#2\ekv@stop
+ {%
+ \ekv@ifdefined{ekvd@t@#1}%
+ {\ekv@strip{#2}{\csname ekvd@t@#1\endcsname}}%
+ {%
+ \ekv@ifdefined{ekvd@p@#1}%
+ {\csname ekvd@p@#1\endcsname{#2}}%
+ {\ekvd@err@undefined@prefix{#1}\@gobble}%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@prefix@after@p}
+% The |@p@| type prefixes are all just modifying a following |@t@| type, so they
+% will need to search for another prefix. This is true for all of them, so we
+% use a macro to handle this. It'll throw an error if there is no other prefix.
+% \begin{macrocode}
+\protected\def\ekvd@prefix@after@p#1%
+ {%
+ \ekvd@ifspace{#1}%
+ {\ekvd@prefix#1\ekv@stop}%
+ {%
+ \expandafter\ekvd@err@missing@prefix\expandafter{\ekv@gobble@mark#1}%
+ \@gobble
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@p@long,\ekvd@p@protected,\ekvd@p@protect}
+% Define the |@p@| type prefixes, they all just store some information in a
+% temporary macro and call |\ekvd@prefix@after@p|.
+% \begin{macrocode}
+\protected\def\ekvd@p@long{\let\ekvd@long\long\ekvd@prefix@after@p}
+\protected\def\ekvd@p@protected{\let\ekvd@prot\protected\ekvd@prefix@after@p}
+\let\ekvd@p@protect\ekvd@p@protected
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Key Types}
+%
+% \begin{macro}[internal]{\ekvd@t@set}
+% The |set| type is quite straight forward, just define a |NoVal| key to call
+% |\ekvchangeset|.
+% \begin{macrocode}
+\protected\def\ekvd@t@set#1#2%
+ {%
+ \ekvd@assert@not@long{set #1}%
+ \ekvd@assert@not@protected{set #1}%
+ \ekvd@ifnoarg{#2}%
+ {\ekvdefNoVal\ekvd@set{#1}{\ekvchangeset{#1}}}%
+ {%
+ \ekv@ifempty{#2}%
+ {\ekvd@err@missing@definition{set #1}}%
+ {\ekvdefNoVal\ekvd@set{#1}{\ekvchangeset{#2}}}%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@type@noval,\ekvd@t@noval,\ekvd@t@enoval}
+% Another pretty simple type, |noval| just needs to assert that there is a
+% definition and that |long| wasn't specified.
+% There are types where the difference in the variants is so small, that we
+% define a common handler for them, those common handlers are named with
+% |@type@|. |noval| and |enoval| are so similar that we can use such a |@type@|
+% macro, even if we could've done |noval| in a slightly faster way without it.
+% \begin{macrocode}
+\protected\long\def\ekvd@type@noval#1#2#3#4%
+ {%
+ \ekvd@assert@arg{#1noval #3}{#4}%
+ {%
+ \ekvd@assert@not@long{#1noval #3}%
+ \ekvd@prot#2\ekvd@tmp{#4}%
+ \ekvletNoVal\ekvd@set{#3}\ekvd@tmp
+ }%
+ }
+\protected\def\ekvd@t@noval{\ekvd@type@noval{}\def}
+\protected\def\ekvd@t@enoval{\ekvd@type@noval e\edef}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@type@code,\ekvd@t@code,\ekvd@t@ecode}
+% |code| is simple as well, |ecode| has to use |\edef| on a temporary macro,
+% since \expkv\ doesn't provide an |\ekvedef|.
+% \begin{macrocode}
+\protected\long\def\ekvd@type@code#1#2#3#4%
+ {%
+ \ekvd@assert@arg{#1code #3}{#4}
+ {%
+ \ekvd@prot\ekvd@long#2\ekvd@tmp##1{#4}%
+ \ekvlet\ekvd@set{#3}\ekvd@tmp
+ }%
+ }
+\protected\def\ekvd@t@code{\ekvd@type@code{}\def}
+\protected\def\ekvd@t@ecode{\ekvd@type@code e\edef}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@type@default,\ekvd@t@default,\ekvd@t@qdefault}
+% |\ekvd@type@default| asserts there was an argument, also the key for which one
+% wants to set a default has to be already defined (this is not so important for
+% |default|, but |qdefault| requires is). If everything is good, |\edef| a
+% temporary macro that expands |\ekvd@set| and the |\csname| for the key, and in
+% the case of |qdefault| does the first expansion step of the key-macro.
+% \begin{macrocode}
+\protected\long\def\ekvd@type@default#1#2#3#4%
+ {%
+ \ekvd@assert@arg{#1default #3}{#4}%
+ {%
+ \ekvifdefined\ekvd@set{#3}%
+ {%
+ \ekvd@assert@not@long{#1default #3}%
+ \ekvd@prot\edef\ekvd@tmp
+ {%
+ \unexpanded\expandafter#2%
+ {\csname\ekv@name\ekvd@set{#3}\endcsname{#4}}%
+ }%
+ \ekvletNoVal\ekvd@set{#3}\ekvd@tmp
+ }%
+ {\ekvd@err@undefined@key{#3}}%
+ }%
+ }
+\protected\def\ekvd@t@default{\ekvd@type@default{}{}}
+\protected\def\ekvd@t@qdefault{\ekvd@type@default q{\expandafter\expandafter}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@t@edefault}
+% |edefault| is too different from |default| and |qdefault| to reuse the
+% |@type@| macro, as it doesn't need |\unexpanded| inside of |\edef|.
+% \begin{macrocode}
+\protected\long\def\ekvd@t@edefault#1#2%
+ {%
+ \ekvd@assert@arg{edefault #1}{#2}%
+ {%
+ \ekvifdefined\ekvd@set{#1}%
+ {%
+ \ekvd@assert@not@long{edefault #1}%
+ \ekvd@prot\edef\ekvd@tmp
+ {\csname\ekv@name\ekvd@set{#1}\endcsname{#2}}%
+ \ekvletNoVal\ekvd@set{#1}\ekvd@tmp
+ }%
+ {\ekvd@err@undefined@key{#1}}%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@t@initial}
+% \begin{macrocode}
+\long\def\ekvd@t@initial#1#2%
+ {%
+ \ekvd@assert@arg{initial #1}{#2}%
+ {%
+ \ekvifdefined\ekvd@set{#1}%
+ {%
+ \ekvd@assert@not@long{initial #1}%
+ \ekvd@assert@not@protected{initial #1}%
+ \csname\ekv@name\ekvd@set{#1}\endcsname{#2}%
+ }%
+ {\ekvd@err@undefined@key{#1}}%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\ekvd@type@bool,\ekvd@t@bool,\ekvd@t@gbool,\ekvd@t@boolTF,\ekvd@t@gboolTF}
+% The boolean types are a quicker version of a |choice| that accept |true| and
+% |false|, and set up the |NoVal| action to be identical to \texttt{\key=true}.
+% The |true| and |false| actions are always just |\let|ting the macro in |#7| to
+% some other macro (\emph{e.g.}, \cs[no-index]{iftrue}).
+% \begin{macrocode}
+\protected\def\ekvd@type@bool#1#2#3#4#5#6#7%
+ {%
+ \ekvd@assert@filledarg{#1bool#2 #6}{#7}%
+ {%
+ \ekvd@newlet#7#5%
+ \ekvd@type@choice{#1bool#2}{#6}%
+ \protected\ekvdefNoVal\ekvd@set{#6}{#3\let#7#4}%
+ \protected\expandafter\def
+ \csname\ekvd@choice@name\ekvd@set{#6}{true}\endcsname
+ {#3\let#7#4}%
+ \protected\expandafter\def
+ \csname\ekvd@choice@name\ekvd@set{#6}{false}\endcsname
+ {#3\let#7#5}%
+ }%
+ }
+\protected\def\ekvd@t@bool{\ekvd@type@bool{}{}{}\iftrue\iffalse}
+\protected\def\ekvd@t@gbool{\ekvd@type@bool g{}\global\iftrue\iffalse}
+\protected\def\ekvd@t@boolTF{\ekvd@type@bool{}{TF}{}\@firstoftwo\@secondoftwo}
+\protected\def\ekvd@t@gboolTF
+ {\ekvd@type@bool g{TF}\global\@firstoftwo\@secondoftwo}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@type@box,\ekvd@t@box,\ekvd@t@gbox}
+% Set up our boxes. Though we're a generic package we want to be colour safe, so
+% we put an additional grouping level inside the box contents, for the case that
+% someone uses \pkg{color}. |\ekvd@newreg| is a small wrapper which tests
+% whether the first argument is defined and if not does
+% |\csname new#2\endcsname#1|.
+% \begin{macrocode}
+\protected\def\ekvd@type@box#1#2#3#4%
+ {%
+ \ekvd@assert@filledarg{#1box #3}{#4}%
+ {%
+ \ekvd@newreg#4{box}%
+ \protected\ekvd@long\ekvdef\ekvd@set{#3}%
+ {#2\setbox#4\hbox{\begingroup##1\endgroup}}%
+ }%
+ }
+\protected\def\ekvd@t@box{\ekvd@type@box{}{}}
+\protected\def\ekvd@t@gbox{\ekvd@type@box g\global}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@type@toks,\ekvd@t@toks,\ekvd@t@gtoks}
+% Similar to |box|, but set the |toks|.
+% \begin{macrocode}
+\protected\def\ekvd@type@toks#1#2#3#4%
+ {%
+ \ekvd@assert@filledarg{#1toks #3}{#4}%
+ {%
+ \ekvd@newreg#4{toks}%
+ \protected\ekvd@long\ekvdef\ekvd@set{#3}{#2#4{##1}}%
+ }%
+ }
+\protected\def\ekvd@t@toks{\ekvd@type@toks{}{}}
+\protected\def\ekvd@t@gtoks{\ekvd@type@toks{g}\global}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@type@apptoks,\ekvd@t@apptoks,\ekvd@t@gapptoks}
+% Just like |toks|, but expand the current contents of the |toks| register to
+% append the new contents.
+% \begin{macrocode}
+\protected\def\ekvd@type@apptoks#1#2#3#4%
+ {%
+ \ekvd@assert@filledarg{#1apptoks #3}{#4}%
+ {%
+ \ekvd@newreg#4{toks}%
+ \protected\ekvd@long\ekvdef\ekvd@set{#3}{#2#4\expandafter{\the#4##1}}%
+ }%
+ }
+\protected\def\ekvd@t@apptoks{\ekvd@type@apptoks{}{}}
+\protected\def\ekvd@t@gapptoks{\ekvd@type@apptoks{g}\global}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {
+% \ekvd@type@reg,\ekvd@t@int,\ekvd@t@eint,\ekvd@t@gint,\ekvd@t@xint,
+% \ekvd@t@dimen,\ekvd@t@edimen,\ekvd@t@gdimen,\ekvd@t@xdimen,
+% \ekvd@t@skip,\ekvd@t@eskip,\ekvd@t@gskip,\ekvd@t@xskip
+% }
+% The |\ekvd@type@reg| can handle all the types for which the assignment will
+% just be \texttt{\meta{register}=\meta{value}}.
+% \begin{macrocode}
+\protected\def\ekvd@type@reg#1#2#3#4#5#6#7%
+ {%
+ \ekvd@assert@filledarg{#1 #6}{#7}%
+ {%
+ \ekvd@newreg#7{#2}%
+ \protected\ekvd@long\ekvdef\ekvd@set{#6}{#3#7=#4##1#5\relax}%
+ }%
+ }
+\protected\def\ekvd@t@int{\ekvd@type@reg{int}{count}{}{}{}}
+\protected\def\ekvd@t@eint{\ekvd@type@reg{eint}{count}{}\numexpr\relax}
+\protected\def\ekvd@t@gint{\ekvd@type@reg{gint}{count}\global{}{}}
+\protected\def\ekvd@t@xint{\ekvd@type@reg{xint}{count}\global\numexpr\relax}
+\protected\def\ekvd@t@dimen{\ekvd@type@reg{dimen}{dimen}{}{}{}}
+\protected\def\ekvd@t@edimen{\ekvd@type@reg{edimen}{dimen}{}\dimexpr\relax}
+\protected\def\ekvd@t@gdimen{\ekvd@type@reg{gdimen}{dimen}\global{}{}}
+\protected\def\ekvd@t@xdimen{\ekvd@type@reg{xdimen}{dimen}\global\dimexpr\relax}
+\protected\def\ekvd@t@skip{\ekvd@type@reg{skip}{skip}{}{}{}}
+\protected\def\ekvd@t@eskip{\ekvd@type@reg{eskip}{skip}{}\glueexpr\relax}
+\protected\def\ekvd@t@gskip{\ekvd@type@reg{gskip}{skip}\global{}{}}
+\protected\def\ekvd@t@xskip{\ekvd@type@reg{xskip}{skip}\global\glueexpr\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@type@store,\ekvd@t@store,\ekvd@t@gstore}
+% The none-expanding |store| types use an |\edef| or |\xdef| and |\unexpanded|
+% to be able to also store |#| easily.
+% \begin{macrocode}
+\protected\def\ekvd@type@store#1#2#3#4%
+ {%
+ \ekvd@assert@filledarg{#1store #3}{#4}%
+ {%
+ \unless\ifdefined#4\let#4\ekvd@empty\fi
+ \protected\ekvd@long\ekvdef\ekvd@set{#3}{#2#4{\unexpanded{##1}}}%
+ }%
+ }
+\protected\def\ekvd@t@store{\ekvd@type@store{}\edef}
+\protected\def\ekvd@t@gstore{\ekvd@type@store{g}\xdef}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@type@estore,\ekvd@t@estore,\ekvd@t@xstore}
+% And the straight forward |estore| types.
+% \begin{macrocode}
+\protected\def\ekvd@type@estore#1#2#3#4%
+ {%
+ \ekvd@assert@filledarg{#1store #3}{#4}%
+ {%
+ \ekvd@newlet#4\ekvd@empty
+ \protected\ekvd@long\ekvdef\ekvd@set{#3}{#2#4{##1}}%
+ }%
+ }
+\protected\def\ekvd@t@estore{\ekvd@type@estore{e}\edef}
+\protected\def\ekvd@t@xstore{\ekvd@type@estore{x}\xdef}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\ekvd@type@meta,\ekvd@type@meta@,\ekvd@t@meta,\ekvd@t@nmeta}
+% |meta| sets up things such that another instance of |\ekvset| will be run on
+% the argument, with the same \set.
+% \begin{macrocode}
+\protected\long\def\ekvd@type@meta#1#2#3#4#5%
+ {%
+ \ekvd@assert@filledarg{#1meta #4}{#5}%
+ {%
+ \edef\ekvd@tmp{\ekvd@set}%
+ \expandafter\ekvd@type@meta@\expandafter{\ekvd@tmp}{#3}{#5}%
+ #2\ekvd@set{#4}\ekvd@tmp
+ }%
+ }
+\protected\long\def\ekvd@type@meta@#1#2#3%
+ {%
+ \ekvd@prot\ekvd@long\def\ekvd@tmp#2{\ekvset{#1}{#3}}%
+ }
+\protected\def\ekvd@t@meta{\ekvd@type@meta{}\ekvlet{##1}}
+\protected\def\ekvd@t@nmeta#1#2%
+ {%
+ \ekvd@assert@not@long{nmeta #1}%
+ \ekvd@type@meta n\ekvletNoVal{}{#1}{#2}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\ekvd@type@smeta,\ekvd@type@smeta@,\ekvd@t@smeta,\ekvd@t@snmeta}
+% |smeta| is pretty similar to |meta|, but needs two arguments inside of \val,
+% such that the first is the \set\ for which the sub-|\ekvset| and the second is
+% the \kv\ list.
+% \begin{macrocode}
+\protected\long\def\ekvd@type@smeta#1#2#3#4#5%
+ {%
+ \ekvd@assert@twoargs{s#1meta #4}{#5}%
+ {%
+ \expandafter\ekvd@type@smeta@\expandafter{\@secondoftwo#5}{#5}{#3}
+ #2\ekvd@set{#4}\ekvd@tmp
+ }%
+ }
+\protected\long\def\ekvd@type@smeta@#1#2#3%
+ {%
+ \expandafter\ekvd@type@meta@\expandafter{\@firstoftwo#2}{#3}{#1}%
+ }
+\protected\def\ekvd@t@smeta{\ekvd@type@smeta{}\ekvlet{##1}}
+\protected\def\ekvd@t@snmeta#1#2%
+ {%
+ \ekvd@assert@not@long{snmeta #1}%
+ \ekvd@type@smeta n\ekvletNoVal{}{#1}{#2}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {
+% \ekvd@type@choice,\ekvd@populate@choice,\ekvd@populate@choice@,
+% \ekvd@populate@choice@noarg,\ekvd@choice@prefix,\ekvd@choice@prefix@,
+% \ekvd@choice@p@protected,\ekvd@choice@p@protect,
+% \ekvd@choice@p@long,\ekvd@choice@p@long@,\ekvd@t@choice
+% }
+% The |choice| type is by far the most complex type, as we have to run a
+% sub-parser on the choice-definition list, which should support the |@p@| type
+% prefixes as well (but |long| will always throw an error, as they are not
+% allowed to be long). |\ekvd@type@choice| will just define the choice-key, the
+% handling of the choices definition will be done by |\ekvd@populate@choice|.
+% \begin{macrocode}
+\protected\def\ekvd@type@choice#1#2%
+ {%
+ \ekvd@assert@not@long{#1 #2}%
+ \ekvd@prot\edef\ekvd@tmp##1%
+ {%
+ \unexpanded{\ekvd@h@choice}{\ekvd@choice@name\ekvd@set{#2}{##1}}%
+ }%
+ \ekvlet\ekvd@set{#2}\ekvd@tmp
+ }
+% \end{macrocode}
+% |\ekvd@populate@choice| just uses |\ekvparse| and then gives control to
+% |\ekvd@populate@choice@noarg|, which throws an error, and
+% |\ekvd@populate@choice@|.
+% \begin{macrocode}
+\protected\def\ekvd@populate@choice
+ {%
+ \ekvparse\ekvd@populate@choice@noarg\ekvd@populate@choice@
+ }
+\protected\def\ekvd@populate@choice@noarg#1%
+ {%
+ \expandafter\ekvd@err@missing@definition\expandafter{\ekvd@set@choice : #1}%
+ }
+% \end{macrocode}
+% |\ekvd@populate@choice@| runs the prefix-test, if there is none we can
+% directly define the choice, for that |\ekvd@set@choice| will expand to the
+% current choice-key's name, which will have been defined by |\ekvd@t@choice|.
+% If there is a prefix run the prefix grabbing routine, which was altered for
+% |@type@choice|.
+% \begin{macrocode}
+\protected\long\def\ekvd@populate@choice@#1#2%
+ {%
+ \ekvd@clear@prefixes
+ \expandafter\ekvd@assert@arg\expandafter{\ekvd@set@choice : #1}{#2}%
+ {%
+ \ekvd@ifspace{#1}%
+ {\ekvd@choice@prefix\ekv@mark#1\ekv@stop}%
+ {%
+ \expandafter\def
+ \csname\ekvd@choice@name\ekvd@set\ekvd@set@choice{#1}\endcsname
+ }%
+ {#2}%
+ }%
+ }
+\protected\def\ekvd@choice@prefix#1
+ {%
+ \ekv@strip{#1}\ekvd@choice@prefix@\ekv@mark
+ }
+\protected\def\ekvd@choice@prefix@#1#2\ekv@stop
+ {%
+ \ekv@ifdefined{ekvd@choice@p@#1}%
+ {%
+ \csname ekvd@choice@p@#1\endcsname
+ \ekvd@ifspace{#2}%
+ {\ekvd@choice@prefix#2\ekv@stop}%
+ {%
+ \ekvd@prot\expandafter\def
+ \csname
+ \ekv@strip{#2}{\ekvd@choice@name\ekvd@set\ekvd@set@choice}%
+ \endcsname
+ }%
+ }%
+ {\ekvd@err@undefined@prefix{#1}\@gobble}%
+ }
+\protected\def\ekvd@choice@p@protected{\let\ekvd@prot\protected}
+\let\ekvd@choice@p@protect\ekvd@choice@p@protected
+\protected\def\ekvd@choice@p@long\ekvd@ifspace#1%
+ {%
+ \expandafter\ekvd@choice@p@long@\expandafter{\ekv@gobble@mark#1}%
+ \ekvd@ifspace{#1}%
+ }
+\protected\def\ekvd@choice@p@long@#1%
+ {%
+ \expandafter\ekvd@err@no@long\expandafter
+ {\ekvd@set@choice : long #1}%
+ }
+% \end{macrocode}
+% Finally we're able to set up the |@t@choice| macro, which has to store the
+% current choice-key's name, define the key, and parse the available choices.
+% \begin{macrocode}
+\protected\long\def\ekvd@t@choice#1#2%
+ {%
+ \ekvd@assert@arg{choice #1}{#2}%
+ {%
+ \ekvd@type@choice{choice}{#1}%
+ \def\ekvd@set@choice{#1}%
+ \ekvd@populate@choice{#2}%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Key Type Helpers}
+% There are some keys that might need helpers during their execution (not during
+% their definition, which are gathered as |@type@| macros). These helpers are
+% named |@h@|.
+%
+% \begin{macro}[internal]{\ekvd@h@choice,\ekvd@h@choice@}
+% The |choice| helper will just test whether the given choice was defined, if
+% not throw an error expandably, else call the macro which stores the code for
+% this choice.
+% \begin{macrocode}
+\def\ekvd@h@choice#1%
+ {%
+ \expandafter\ekvd@h@choice@
+ \csname\ifcsname#1\endcsname#1\else relax\fi\endcsname
+ {#1}%
+ }
+\def\ekvd@h@choice@#1#2%
+ {%
+ \ifx#1\relax
+ \ekvd@err@choice@invalid{#2}%
+ \expandafter\@gobble
+ \fi
+ #1%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Tests}
+%
+% \begin{macro}[internal]{\ekvd@noarg@mark}
+% This macro serves as a flag for the case that no \val\ was specified for a
+% key. As such it is not a test, but exists only for some tests.
+% \begin{macrocode}
+\def\ekvd@noarg@mark{\ekvd@noarg@mark}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@fi@firstoftwo}
+% While we can reuse many of the internals of \expkv\ the specific case for this
+% branch wasn't needed by \expkv\ and hence isn't defined. We'll need it, so we
+% define it.
+% \begin{macrocode}
+\long\def\ekvd@fi@firstoftwo\fi\@secondoftwo#1#2{\fi#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@newlet,\ekvd@newreg}
+% These macros test whether a control sequence is defined, if it isn't they
+% define it, either via |\let| or via the correct \cs[no-index]{new\meta{reg}}.
+% \begin{macrocode}
+\protected\def\ekvd@newlet#1#2%
+ {%
+ \unless\ifdefined#1\let#1#2\fi
+ }
+\protected\def\ekvd@newreg#1#2%
+ {%
+ \unless\ifdefined#1\csname new#2\endcsname#1\fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {\ekvd@assert@twoargs,\ekvd@ifnottwoargs,\ekvd@ifempty@gtwo}
+% A test for exactly two tokens can be reduced for an empty-test after gobbling
+% two tokens, in the case that there are fewer tokens than two in the argument,
+% only macros will be gobbled that are needed for the true branch, which doesn't
+% hurt, and if there are more this will not be empty.
+% \begin{macrocode}
+\long\def\ekvd@assert@twoargs#1#2%
+ {%
+ \ekvd@ifnottwoargs{#2}%
+ {\ekvd@err@missing@definition{#1}}%
+ }
+\long\def\ekvd@ifnottwoargs#1%
+ {%
+ \ekvd@ifempty@gtwo#1\ekv@ifempty@B
+ \ekv@ifempty@false\ekv@ifempty@A\ekv@ifempty@B\@firstoftwo
+ }
+\long\def\ekvd@ifempty@gtwo#1#2{\ekv@ifempty@\ekv@ifempty@A}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@assert@arg,\ekvd@ifnoarg}
+% The test for an argument is just an |\ifx| comparison with our |noarg@mark|.
+% \begin{macrocode}
+\long\def\ekvd@assert@arg#1#2%
+ {%
+ \ekvd@ifnoarg{#2}%
+ {\ekvd@err@missing@definition{#1}}%
+ }
+\long\def\ekvd@ifnoarg#1%
+ {%
+ \ifx\ekvd@noarg@mark#1%
+ \ekvd@fi@firstoftwo
+ \fi
+ \@secondoftwo
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@assert@filledarg,\ekvd@ifnoarg@or@empty}
+% \begin{macrocode}
+\long\def\ekvd@assert@filledarg#1#2%
+ {%
+ \ekvd@ifnoarg@or@empty{#2}%
+ {\ekvd@err@missing@definition{#1}}%
+ }
+\long\def\ekvd@ifnoarg@or@empty#1%
+ {%
+ \ekvd@ifnoarg{#1}%
+ \@firstoftwo
+ {\ekv@ifempty{#1}}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@assert@not@long,\ekvd@assert@not@protected}
+% Some key-types don't want to be |\long| or |\protected|, so we provide macros
+% to test this and throw an error, this could be silently ignored but now users
+% will learn to not use unnecessary stuff which slows the compilation down.
+% \begin{macrocode}
+\long\def\ekvd@assert@not@long#1%
+ {%
+ \ifx\ekvd@long\long\ekvd@err@no@long{#1}\fi
+ }
+\long\def\ekvd@assert@not@protected#1%
+ {%
+ \ifx\ekvd@prot\protected\ekvd@err@no@protected{#1}\fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\ekvd@ifspace,\ekvd@ifspace@}
+% Yet another test which can be reduced to an if-empty, this time by gobbling
+% everything up to the first space.
+% \begin{macrocode}
+\long\def\ekvd@ifspace#1%
+ {%
+ \ekvd@ifspace@#1 \ekv@ifempty@B
+ \ekv@ifempty@false\ekv@ifempty@A\ekv@ifempty@B\@firstoftwo
+ }
+\long\def\ekvd@ifspace@#1 % keep this space
+ {%
+ \ekv@ifempty@\ekv@ifempty@A
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Messages}
+%
+% Most messages of \expkvd\ are not expandable, since they only appear during
+% key-definition, which is not expandable anyway.
+%
+% \begin{macro}[internal]
+% {
+% \ekvd@err@missing@definition,\ekvd@err@missing@prefix,
+% \ekvd@err@undefined@prefix,\ekvd@err@undefined@key,\ekvd@err@no@protected,
+% \ekvd@err@no@long
+% }
+% The non-expandable error messages are boring, so here they are:
+% \begin{macrocode}
+\protected\def\ekvd@err@missing@definition#1%
+ {\errmessage{expkv-def Error: Missing definition for key `\unexpanded{#1}'}}
+\protected\def\ekvd@err@missing@prefix#1%
+ {\errmessage{expkv-def Error: Missing prefix for key `\unexpanded{#1}'}}
+\protected\def\ekvd@err@undefined@prefix#1%
+ {\errmessage{expkv-def Error: Undefined prefix `\unexpanded{#1}'}}
+\protected\def\ekvd@err@undefined@key#1%
+ {\errmessage{expkv-def Error: Undefined key `\unexpanded{#1}'}}
+\protected\def\ekvd@err@no@protected#1%
+ {%
+ \errmessage
+ {expkv-def Error: prefix `protected' not accepted for `\unexpanded{#1}'}%
+ }
+\protected\def\ekvd@err@no@long#1%
+ {%
+ \errmessage
+ {expkv-def Error: prefix `long' not accepted for `\unexpanded{#1}'}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]
+% {
+% \ekvd@err@choice@invalid,\ekvd@err@choice@invalid@,\ekvd@choice@name,
+% \ekvd@err
+% }
+% The expandable error messages use |\ekvd@err|, which is just like |\ekv@err|
+% from \expkv\ or the way \pkg{expl3} throws expandable error messages. It uses
+% an undefined control sequence to start the error message.
+% |\ekvd@err@choice@invalid| will have to use this mechanism to throw its
+% message. Also we have to retrieve the name parts of the choice in an easy way,
+% so we use parentheses of catcode 8 here, which should suffice in most cases to
+% allow for a correct separation.
+% \begin{macrocode}
+\def\ekvd@err@choice@invalid#1%
+ {%
+ \ekvd@err@choice@invalid@#1\ekv@stop
+ }
+\begingroup
+\catcode40=8
+\catcode41=8
+\@firstofone{\endgroup
+\def\ekvd@choice@name#1#2#3%
+ {%
+ ekvd#1(#2)#3%
+ }
+\def\ekvd@err@choice@invalid@ ekvd#1(#2)#3\ekv@stop%
+ {%
+ \ekvd@err{invalid choice `#3' (`#2', set `#1')}%
+ }
+}
+\begingroup
+\edef\ekvd@err
+ {%
+ \endgroup
+ \unexpanded{\long\def\ekvd@err}##1%
+ {%
+ \unexpanded{\expandafter\ekv@err@\@firstofone}%
+ {\expandafter\noexpand\csname ! expkv-def Error:\endcsname ##1.}%
+ \unexpanded{\ekv@stop}%
+ }%
+ }
+\ekvd@err
+% \end{macrocode}
+% \end{macro}
+%
+% Now everything that's left is to reset the category code of |@|.
+% \begin{macrocode}
+\catcode`\@=\ekvd@tmp
+% \end{macrocode}
+%
+% \gobbledocstriptag
+%</tex>
+%^^A=<<
+%
+%^^A=<<
+%
+% \end{implementation}^^A=<<
+%
+% \clearpage
+% \PrintIndex
+%
+\endinput
+%
+^^A vim: ft=tex fdm=marker fmr=>>=,=<<
diff --git a/macros/generic/expkv-def/expkv-def.pdf b/macros/generic/expkv-def/expkv-def.pdf
new file mode 100644
index 0000000000..a4c589c83f
--- /dev/null
+++ b/macros/generic/expkv-def/expkv-def.pdf
Binary files differ
diff --git a/macros/latex/base/README.md b/macros/latex/base/README.md
index c5ac515311..6589e48ec2 100644
--- a/macros/latex/base/README.md
+++ b/macros/latex/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2020-02-02 patch level 4
+Release 2020-02-02 patch level 5
Overview
--------
diff --git a/macros/latex/base/alltt.pdf b/macros/latex/base/alltt.pdf
index a5e5e91ef4..781d001cca 100644
--- a/macros/latex/base/alltt.pdf
+++ b/macros/latex/base/alltt.pdf
Binary files differ
diff --git a/macros/latex/base/cfgguide.pdf b/macros/latex/base/cfgguide.pdf
index 450972786d..2e6d623588 100644
--- a/macros/latex/base/cfgguide.pdf
+++ b/macros/latex/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex/base/changes.txt b/macros/latex/base/changes.txt
index 002ffef172..ac32b7c795 100644
--- a/macros/latex/base/changes.txt
+++ b/macros/latex/base/changes.txt
@@ -8,6 +8,24 @@ are not part of the distribution.
#########################
+# 2020-02-02 PL 5 Release
+#########################
+
+2020-02-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfssaxes.dtx (subsection{Changing to a new series}):
+ Drop ``m'' in a fixed set of series values,
+ otherwise assume that the series
+ value is a long name such as "semibold" and leave it alone (gh/293)}
+
+ * ltfssbas.dtx (section{Macros for setting up the tables}):
+ Drop one ``m'' in the series values in \DeclareFontShape if it is
+ on of a fixed sets of values and if so issue warning (gh/293)
+
+ * ltdefns.dtx (subsection{Command definitions}):
+ Added \@gobblethree
+
+#########################
# 2020-02-02 PL 4 Release
#########################
diff --git a/macros/latex/base/classes.pdf b/macros/latex/base/classes.pdf
index 5fe2ec614c..3ae02039f9 100644
--- a/macros/latex/base/classes.pdf
+++ b/macros/latex/base/classes.pdf
Binary files differ
diff --git a/macros/latex/base/clsguide.pdf b/macros/latex/base/clsguide.pdf
index ff54e4b955..044e350bd3 100644
--- a/macros/latex/base/clsguide.pdf
+++ b/macros/latex/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex/base/cmfonts.pdf b/macros/latex/base/cmfonts.pdf
index a6ff9e00bd..d330f9a466 100644
--- a/macros/latex/base/cmfonts.pdf
+++ b/macros/latex/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex/base/cyrguide.pdf b/macros/latex/base/cyrguide.pdf
index e88e70e939..0fbd119e9d 100644
--- a/macros/latex/base/cyrguide.pdf
+++ b/macros/latex/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex/base/doc.pdf b/macros/latex/base/doc.pdf
index 77b1452c8a..6d9349c7ad 100644
--- a/macros/latex/base/doc.pdf
+++ b/macros/latex/base/doc.pdf
Binary files differ
diff --git a/macros/latex/base/docstrip.pdf b/macros/latex/base/docstrip.pdf
index 6b1544b05e..38337b7c32 100644
--- a/macros/latex/base/docstrip.pdf
+++ b/macros/latex/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex/base/encguide.pdf b/macros/latex/base/encguide.pdf
index e680378ccf..20a4917656 100644
--- a/macros/latex/base/encguide.pdf
+++ b/macros/latex/base/encguide.pdf
Binary files differ
diff --git a/macros/latex/base/exscale.pdf b/macros/latex/base/exscale.pdf
index c338d1092e..27ab4c5121 100644
--- a/macros/latex/base/exscale.pdf
+++ b/macros/latex/base/exscale.pdf
Binary files differ
diff --git a/macros/latex/base/fix-cm.pdf b/macros/latex/base/fix-cm.pdf
index 54b085f848..58c8537aa4 100644
--- a/macros/latex/base/fix-cm.pdf
+++ b/macros/latex/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.pdf b/macros/latex/base/fntguide.pdf
index edc6305f75..154f2b00c1 100644
--- a/macros/latex/base/fntguide.pdf
+++ b/macros/latex/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.tex b/macros/latex/base/fntguide.tex
index f19e0de7ba..0c18661a31 100644
--- a/macros/latex/base/fntguide.tex
+++ b/macros/latex/base/fntguide.tex
@@ -229,7 +229,7 @@ ones are:
\end{tabular}
\end{minipage}
\end{center}
-\NEWdescription{2019/07/10}
+\NEWdescription{2019/07/10}\label{page:seriesvalues}
The font series is denoting a combination of the weight (boldness) and
the width (amount of expansion). The standard supported for weights and
widths are:
@@ -1090,6 +1090,26 @@ contain:
This enables the use of an alternative |\hyphenchar| in other encodings
whilst maintaining the correct value for all fonts.
+\NEWfeature{2020/02/02} According to NFSS conventions the series value
+should be a combination of weight and width abbreviated each with one or
+two letters as described on page~\pageref{page:seriesvalues}. In
+particular it should not contain contain an ``\texttt{m}'' unless it
+consists of just one character. In the past incorrect values such as
+``\texttt{cm}'' were simply accepted, but since this now leads to
+problems with the extended mechanism, the correct syntax is now
+enforced.
+
+More exactly, if the series values is a member of a specific set of
+values (\texttt{ulm}, \texttt{elm}, \texttt{lm}, \texttt{slm},
+\texttt{mm}, \texttt{sbm}, \texttt{bm}, \texttt{ebm}, \texttt{ubm},
+\texttt{muc}, \texttt{mec}, \texttt{mc}, \texttt{msc}, \texttt{msx},
+\texttt{mx}, \texttt{mex} or \texttt{mux}) it is assumed to be in
+incorrect NFSS notation and so a warning is given and a surplus
+``\texttt{m}'' is dropped. Other values are not touched to allow for
+the usage of values like ``\texttt{semibold}'' or ``\texttt{medium}'' as
+used by the \texttt{autoinst} program.
+
+
\subsection{Font file loading information}
\label{sec:loadinfo}
diff --git a/macros/latex/base/graphpap.pdf b/macros/latex/base/graphpap.pdf
index b4b010ee2c..3b9066abf4 100644
--- a/macros/latex/base/graphpap.pdf
+++ b/macros/latex/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex/base/ifthen.pdf b/macros/latex/base/ifthen.pdf
index c218d73665..923858250e 100644
--- a/macros/latex/base/ifthen.pdf
+++ b/macros/latex/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex/base/inputenc.pdf b/macros/latex/base/inputenc.pdf
index e8cd824130..5dc879078d 100644
--- a/macros/latex/base/inputenc.pdf
+++ b/macros/latex/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex/base/latexchanges.pdf b/macros/latex/base/latexchanges.pdf
index 61b12ab20c..8b2520d441 100644
--- a/macros/latex/base/latexchanges.pdf
+++ b/macros/latex/base/latexchanges.pdf
Binary files differ
diff --git a/macros/latex/base/latexchanges.tex b/macros/latex/base/latexchanges.tex
index 1442ca229c..8e1681c5e0 100644
--- a/macros/latex/base/latexchanges.tex
+++ b/macros/latex/base/latexchanges.tex
@@ -107,6 +107,22 @@ see for example
+\section{Changes introduced in 2020-02-02 patch~5}
+
+The patch~4 dropped a bit too much in certain situations, e.g., it
+changed a series value of \texttt{semibold} (as used by
+\texttt{autoinst}) to \texttt{seibold}, rendering it useless. So we
+now only correct series values if they are a member one of the
+following list: \texttt{ulm}, \texttt{elm}, \texttt{lm}, \texttt{slm},
+\texttt{mm}, \texttt{sbm}, \texttt{bm}, \texttt{ebm}, \texttt{ubm},
+\texttt{muc}, \texttt{mec}, \texttt{mc}, \texttt{msc}, \texttt{msx},
+\texttt{mx}, \texttt{mex} or \texttt{mux}. Here we assume that people
+intended to follow the NFSS convention but somehow got it wrong. So we
+drop one ``m'' and also add a warning that the
+\verb=\DeclareFontShape= declaration in question should be updated
+(\ghissue{293}).
+
+
\section{Changes introduced in 2020-02-02 patch~4}
In some cases the \texttt{filecontents} environment was opening the
diff --git a/macros/latex/base/latexrelease.pdf b/macros/latex/base/latexrelease.pdf
index 6f83afba79..1e450d4925 100644
--- a/macros/latex/base/latexrelease.pdf
+++ b/macros/latex/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex/base/latexsym.pdf b/macros/latex/base/latexsym.pdf
index c5301dadf7..ee44228ca2 100644
--- a/macros/latex/base/latexsym.pdf
+++ b/macros/latex/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex/base/lb2.pdf b/macros/latex/base/lb2.pdf
index 214a5b5a2e..8100b3efc0 100644
--- a/macros/latex/base/lb2.pdf
+++ b/macros/latex/base/lb2.pdf
Binary files differ
diff --git a/macros/latex/base/letter.pdf b/macros/latex/base/letter.pdf
index 1f7dd2a0ae..1627b8a9d0 100644
--- a/macros/latex/base/letter.pdf
+++ b/macros/latex/base/letter.pdf
Binary files differ
diff --git a/macros/latex/base/lgc2.pdf b/macros/latex/base/lgc2.pdf
index 378045ff88..a30a3884eb 100644
--- a/macros/latex/base/lgc2.pdf
+++ b/macros/latex/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex/base/ltdefns.dtx b/macros/latex/base/ltdefns.dtx
index ae472966d5..303b9e5604 100644
--- a/macros/latex/base/ltdefns.dtx
+++ b/macros/latex/base/ltdefns.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdefns.dtx}
- [2019/08/27 v1.5f LaTeX Kernel (definition commands)]
+ [2020/02/27 v1.5g LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -888,17 +888,21 @@
%
% \begin{macro}{\@gobble}
% \begin{macro}{\@gobbletwo}
+% \begin{macro}{\@gobblethree}
+% \changes{v1.5g}{2020/02/27}{Macro added}
% \begin{macro}{\@gobblefour}
% \changes{v1.2n}{1995/05/26}{(CAR) Added \cs{long}s}
% The |\@gobble| macro is used to get rid of its argument.
% \begin{macrocode}
\long\def \@gobble #1{}
\long\def \@gobbletwo #1#2{}
+\long\def \@gobblethree #1#2#3{}
\long\def \@gobblefour #1#2#3#4{}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@firstofone}
% \begin{macro}{\@firstoftwo}
diff --git a/macros/latex/base/ltfssaxes.dtx b/macros/latex/base/ltfssaxes.dtx
index 1a8dbd9cfb..02a49a3122 100644
--- a/macros/latex/base/ltfssaxes.dtx
+++ b/macros/latex/base/ltfssaxes.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssaxes.dtx}
- [2020/02/18 v1.0c LaTeX Kernel (NFSS Axes handing)]
+ [2020/02/27 v1.0d LaTeX Kernel (NFSS Axes handing)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -827,7 +827,6 @@
%
%
% \begin{macro}{\set@target@series}
-% \begin{macro}{\series@drop@one@m}
%
% Finally the code for normalizing the \cs{f@series} value.
%
@@ -845,21 +844,63 @@
\def\set@target@series#1{%
% \end{macrocode}
% We need to \cs{edef} the argument first in case it starts with a
-% conditional.
+% conditional. Then we check (and perhaps drop) an ``m'' from the
+% value andassign the result to \cs{f@series}.
+% \changes{v1.0d}{2020/02/27}{Drop ``m'' only in a specific set of values (gh/293)}
% \begin{macrocode}
\edef\f@series{#1}%
- \edef\f@series{\expandafter\series@drop@one@m\f@series mm\series@drop@one@m}%
+ \expandafter\series@maybe@drop@one@m\expandafter{\f@series}\f@series
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\series@maybe@drop@one@m}
+% If the series value is in NFSS notation then it should not
+% contain any ``m'' unless it is just an ``m'' by it own. So we
+% need to drop surplus ``m''s. But we better don't do this for full
+% names, such as ``\texttt{semibold}'' as used by
+% \texttt{autoinst}, for example. So we test against the possible
+% explicit values that should drop an ``m''.
+% After that we assign the result to \verb=#2= for further use.
+% \changes{v1.0d}{2020/02/27}{Drop ``m'' in certain values from a
+% fixed list (gh/293)}
+% \begin{macrocode}
+\def\series@maybe@drop@one@m#1#2{%
+% \end{macrocode}
+% The code below is an inline version of the \cs{in@} macro without
+% the group, so that it works in \cs{accent}.
+% \begin{macrocode}
+ \def\in@@##1,#1,{}%
+ \series@check@toks\expandafter{\in@@
+ ,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}%
+ \edef\in@@{\the\series@check@toks}%
+ \ifx\in@@\@empty
+ \def#2{#1}%
+ \else
+ \edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}%
+ \fi
}
% \end{macrocode}
+% As a precaution we use a private toks register not \cs{toks@} as
+% that is no longer hidden inside the group.
+% \begin{macrocode}
+\newtoks\series@check@toks
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\series@drop@one@m}
% Drop up to two \texttt{m}s but keep one if that makes the series
-% value empty.
+% value empty. Actually, with the current implementation we know
+% that there is at least one in the series value istelf and we
+% added one after it, so all we have to do is now returning
+% \verb=#1#2= and dropping the rest.
% \begin{macrocode}
\def\series@drop@one@m#1m#2m#3\series@drop@one@m{%
- \ifx\relax#1#2\relax m\else#1#2\fi
+% \ifx\relax#1#2\relax m\else#1#2\fi
+ #1#2%
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
@@ -1215,6 +1256,7 @@
%<latexrelease>\let\@font@shape@subst@warning\@undefined
%<latexrelease>\let\maybe@load@fontshape\@undefined
%<latexrelease>\let\set@target@series\@undefined
+%<latexrelease>\let\series@maybe@drop@one@m\@undefined
%<latexrelease>\let\series@drop@one@m\@undefined
%<latexrelease>\let\DeclareFontShapeChangeRule\@undefined
%<latexrelease>\let\merge@font@shape\@undefined
diff --git a/macros/latex/base/ltfssbas.dtx b/macros/latex/base/ltfssbas.dtx
index fedfcb68ec..f51d742d46 100644
--- a/macros/latex/base/ltfssbas.dtx
+++ b/macros/latex/base/ltfssbas.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssbas.dtx}
- [2020/02/24 v3.2f LaTeX Kernel (NFSS Basic Macros)]
+ [2020/02/27 v3.2g LaTeX Kernel (NFSS Basic Macros)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -266,18 +266,38 @@
\expandafter\ifx\csname #1+#2\endcsname\relax
\@latex@error{Font family `#1+#2' unknown}\@eha
\else
- \expandafter
- \xdef\csname#1/#2/%
% \end{macrocode}
% If the series value is incorrectly specified with an extra ``m'',
% e.g., ``mc'' instead of just ``c'', drop the surplus ``m'' but
-% keep the ``m'' if it is by its own.
-% \changes{v3.2f}{2020/12/24}{Drop surplus ``m'' in series when
+% keep the ``m'' if it is by its own. In that case also issue a
+% warning that the declaration needs correction.
+% \changes{v3.2f}{2020/02/24}{Drop surplus ``m'' in series when
% defining fontshape (gh/289)}
+% \changes{v3.2g}{2020/02/27}{Only ``m'' if the series value is a member
+% of a fixed list and issue warning if doing it (gh/293)}
+%
+% For this we compare the given value \verb=#3= with one where we
+% may have dropped an ``m''. If nothing has changes,
+% fine. Otherwise there was a wrong value which is now corrected in
+% \cs{reservedb} so we use that and also issue a warning.
+% \begin{macrocode}
+ \edef\reserved@a{#3}%
+ \expandafter\series@maybe@drop@one@m\expandafter{#3}\reserved@b
+ \ifx\reserved@a\reserved@b\else
+ \@latex@warning{Font shape declaration has incorrect series
+ value `#3'.\MessageBreak It should not contain an `m'!
+ Please correct it.\MessageBreak Found}%
+ \fi
+ \expandafter
+ \xdef\csname#1/#2/\reserved@b/#4\endcsname
+ {\expandafter\noexpand\csname #5\endcsname}%
+%
+% \end{macrocode}
+% Most of the time \verb=#6= is empty so using \cs{let} to
+% \cs{@empty} saves on space compared to using \cs{def}. That's
+% really one of the old space saving techniques and probably not
+% necessary these days.
% \begin{macrocode}
- \expandafter\series@drop@one@m #3mm\series@drop@one@m/%
- #4\endcsname{\expandafter\noexpand
- \csname #5\endcsname}%
\def\reserved@a{#6}%
\global
\expandafter\let\csname#5\expandafter\endcsname
diff --git a/macros/latex/base/ltluatex.pdf b/macros/latex/base/ltluatex.pdf
index 9b84365411..977a418613 100644
--- a/macros/latex/base/ltluatex.pdf
+++ b/macros/latex/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews.pdf b/macros/latex/base/ltnews.pdf
index fdd874ae57..c771eb2c01 100644
--- a/macros/latex/base/ltnews.pdf
+++ b/macros/latex/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews01.pdf b/macros/latex/base/ltnews01.pdf
index 04eaa53a50..ed276f3dc6 100644
--- a/macros/latex/base/ltnews01.pdf
+++ b/macros/latex/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews02.pdf b/macros/latex/base/ltnews02.pdf
index 8b6b7049d8..e302c27ff7 100644
--- a/macros/latex/base/ltnews02.pdf
+++ b/macros/latex/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews03.pdf b/macros/latex/base/ltnews03.pdf
index 1c53581470..842ef7b729 100644
--- a/macros/latex/base/ltnews03.pdf
+++ b/macros/latex/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews04.pdf b/macros/latex/base/ltnews04.pdf
index ae2f8ffec4..77b660fdc1 100644
--- a/macros/latex/base/ltnews04.pdf
+++ b/macros/latex/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews05.pdf b/macros/latex/base/ltnews05.pdf
index e1e06fdce2..5565bbff78 100644
--- a/macros/latex/base/ltnews05.pdf
+++ b/macros/latex/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews06.pdf b/macros/latex/base/ltnews06.pdf
index 72d783c537..04da9f5b98 100644
--- a/macros/latex/base/ltnews06.pdf
+++ b/macros/latex/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews07.pdf b/macros/latex/base/ltnews07.pdf
index 670f748ab0..5f5d3ece1d 100644
--- a/macros/latex/base/ltnews07.pdf
+++ b/macros/latex/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews08.pdf b/macros/latex/base/ltnews08.pdf
index f6ca68db8a..e224c8c856 100644
--- a/macros/latex/base/ltnews08.pdf
+++ b/macros/latex/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews09.pdf b/macros/latex/base/ltnews09.pdf
index 8dd75d2a10..75c53dab17 100644
--- a/macros/latex/base/ltnews09.pdf
+++ b/macros/latex/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews10.pdf b/macros/latex/base/ltnews10.pdf
index fe0b41042e..659fd94221 100644
--- a/macros/latex/base/ltnews10.pdf
+++ b/macros/latex/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews11.pdf b/macros/latex/base/ltnews11.pdf
index 06199153dd..cbea4f1ab6 100644
--- a/macros/latex/base/ltnews11.pdf
+++ b/macros/latex/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews12.pdf b/macros/latex/base/ltnews12.pdf
index c7845c9ef8..1cdc700d56 100644
--- a/macros/latex/base/ltnews12.pdf
+++ b/macros/latex/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews13.pdf b/macros/latex/base/ltnews13.pdf
index ec3bb79e40..14f2adf669 100644
--- a/macros/latex/base/ltnews13.pdf
+++ b/macros/latex/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews14.pdf b/macros/latex/base/ltnews14.pdf
index 97572536eb..7a9d27cf75 100644
--- a/macros/latex/base/ltnews14.pdf
+++ b/macros/latex/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews15.pdf b/macros/latex/base/ltnews15.pdf
index 4342f766a9..65b136a401 100644
--- a/macros/latex/base/ltnews15.pdf
+++ b/macros/latex/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews16.pdf b/macros/latex/base/ltnews16.pdf
index 9596ff2dc4..b591f57372 100644
--- a/macros/latex/base/ltnews16.pdf
+++ b/macros/latex/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews17.pdf b/macros/latex/base/ltnews17.pdf
index 4d5769dbf8..9dba7d0dab 100644
--- a/macros/latex/base/ltnews17.pdf
+++ b/macros/latex/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews18.pdf b/macros/latex/base/ltnews18.pdf
index 1423d09198..00e010c4bd 100644
--- a/macros/latex/base/ltnews18.pdf
+++ b/macros/latex/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews19.pdf b/macros/latex/base/ltnews19.pdf
index e3dd768981..99d49ce160 100644
--- a/macros/latex/base/ltnews19.pdf
+++ b/macros/latex/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews20.pdf b/macros/latex/base/ltnews20.pdf
index a5ca847e31..0204949b53 100644
--- a/macros/latex/base/ltnews20.pdf
+++ b/macros/latex/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews21.pdf b/macros/latex/base/ltnews21.pdf
index 5810d0bf87..bb0d2dc5c3 100644
--- a/macros/latex/base/ltnews21.pdf
+++ b/macros/latex/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews22.pdf b/macros/latex/base/ltnews22.pdf
index 68dfa0947c..dbfd0e3d52 100644
--- a/macros/latex/base/ltnews22.pdf
+++ b/macros/latex/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews23.pdf b/macros/latex/base/ltnews23.pdf
index 03eb1ac764..abae6798fe 100644
--- a/macros/latex/base/ltnews23.pdf
+++ b/macros/latex/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews24.pdf b/macros/latex/base/ltnews24.pdf
index 0f21c981bb..5972ff359d 100644
--- a/macros/latex/base/ltnews24.pdf
+++ b/macros/latex/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews25.pdf b/macros/latex/base/ltnews25.pdf
index d766eac5b6..596ac14433 100644
--- a/macros/latex/base/ltnews25.pdf
+++ b/macros/latex/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews26.pdf b/macros/latex/base/ltnews26.pdf
index b46844e18d..d50c1e4157 100644
--- a/macros/latex/base/ltnews26.pdf
+++ b/macros/latex/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews27.pdf b/macros/latex/base/ltnews27.pdf
index 4c1d47b2df..fe24251a6e 100644
--- a/macros/latex/base/ltnews27.pdf
+++ b/macros/latex/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews28.pdf b/macros/latex/base/ltnews28.pdf
index d125191dae..b8be671598 100644
--- a/macros/latex/base/ltnews28.pdf
+++ b/macros/latex/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews29.pdf b/macros/latex/base/ltnews29.pdf
index 8e3d912e8c..1834909510 100644
--- a/macros/latex/base/ltnews29.pdf
+++ b/macros/latex/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews30.pdf b/macros/latex/base/ltnews30.pdf
index 37d9bf704a..49269ac1a2 100644
--- a/macros/latex/base/ltnews30.pdf
+++ b/macros/latex/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews31.pdf b/macros/latex/base/ltnews31.pdf
index ec1ce7e4b5..ef27cd9f96 100644
--- a/macros/latex/base/ltnews31.pdf
+++ b/macros/latex/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex/base/ltvers.dtx b/macros/latex/base/ltvers.dtx
index b38dee39c8..f13a6ae685 100644
--- a/macros/latex/base/ltvers.dtx
+++ b/macros/latex/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2020-02-02}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{4}
+\def\patch@level{5}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex/base/ltx3info.pdf b/macros/latex/base/ltx3info.pdf
index 943f721f93..06a7c70b3d 100644
--- a/macros/latex/base/ltx3info.pdf
+++ b/macros/latex/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex/base/ltxdoc.pdf b/macros/latex/base/ltxdoc.pdf
index 4d3b194557..faae246cd2 100644
--- a/macros/latex/base/ltxdoc.pdf
+++ b/macros/latex/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex/base/makeindx.pdf b/macros/latex/base/makeindx.pdf
index 7e4449f227..c04a87e618 100644
--- a/macros/latex/base/makeindx.pdf
+++ b/macros/latex/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex/base/manual.pdf b/macros/latex/base/manual.pdf
index 2c16448391..7d59a86c76 100644
--- a/macros/latex/base/manual.pdf
+++ b/macros/latex/base/manual.pdf
Binary files differ
diff --git a/macros/latex/base/modguide.pdf b/macros/latex/base/modguide.pdf
index 5c2511393c..7f218eea10 100644
--- a/macros/latex/base/modguide.pdf
+++ b/macros/latex/base/modguide.pdf
Binary files differ
diff --git a/macros/latex/base/nfssfont.pdf b/macros/latex/base/nfssfont.pdf
index f27620a3ca..be79c9b129 100644
--- a/macros/latex/base/nfssfont.pdf
+++ b/macros/latex/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex/base/proc.pdf b/macros/latex/base/proc.pdf
index 33c7b74736..498beac0bb 100644
--- a/macros/latex/base/proc.pdf
+++ b/macros/latex/base/proc.pdf
Binary files differ
diff --git a/macros/latex/base/slides.pdf b/macros/latex/base/slides.pdf
index 99b9144c2d..fa258cff07 100644
--- a/macros/latex/base/slides.pdf
+++ b/macros/latex/base/slides.pdf
Binary files differ
diff --git a/macros/latex/base/slifonts.pdf b/macros/latex/base/slifonts.pdf
index dc88bca51b..af1c18085a 100644
--- a/macros/latex/base/slifonts.pdf
+++ b/macros/latex/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex/base/source2e.pdf b/macros/latex/base/source2e.pdf
index 82d453e69c..8af94cb658 100644
--- a/macros/latex/base/source2e.pdf
+++ b/macros/latex/base/source2e.pdf
Binary files differ
diff --git a/macros/latex/base/syntonly.pdf b/macros/latex/base/syntonly.pdf
index 07ad732828..9849a16e55 100644
--- a/macros/latex/base/syntonly.pdf
+++ b/macros/latex/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex/base/tlc2.pdf b/macros/latex/base/tlc2.pdf
index a018e81959..0791805e77 100644
--- a/macros/latex/base/tlc2.pdf
+++ b/macros/latex/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex/base/tulm.pdf b/macros/latex/base/tulm.pdf
index 90918b8c2b..5818aa99a5 100644
--- a/macros/latex/base/tulm.pdf
+++ b/macros/latex/base/tulm.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide.pdf b/macros/latex/base/usrguide.pdf
index 141948cc9f..95438446b9 100644
--- a/macros/latex/base/usrguide.pdf
+++ b/macros/latex/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex/base/utf8ienc.pdf b/macros/latex/base/utf8ienc.pdf
index 4ccd4dc614..6b2ed3009b 100644
--- a/macros/latex/base/utf8ienc.pdf
+++ b/macros/latex/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex/base/webcomp.pdf b/macros/latex/base/webcomp.pdf
index 1506af3d45..1732a9a4d4 100644
--- a/macros/latex/base/webcomp.pdf
+++ b/macros/latex/base/webcomp.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmeconf/README.md b/macros/latex/contrib/asmeconf/README.md
index 6dabe3eae3..2039844683 100644
--- a/macros/latex/contrib/asmeconf/README.md
+++ b/macros/latex/contrib/asmeconf/README.md
@@ -1,11 +1,11 @@
#asmeconf: A template for ASME conference papers#
- Version 1.15 dated 2020/01/24.
+ Version 1.16 dated 2020/02/28.
####Overview####
This class provides a template to format ASME Conference papers according to
- the requirements on ASME's web pages (as posted in December 2019).
+ the requirements on ASME's web pages (as posted in early 2020).
[www.asme.org/publications-submissions/proceedings/formatting-the-paper](https://www.asme.org/publications-submissions/proceedings/formatting-the-paper)
@@ -67,7 +67,9 @@
####Change log####
- v1.15: correct extra space left by \\CorrespondingAuthor when that author is not last; correct breakage of \\ref and \\eqref in captions. Thanks to Bret Van Poppel for reporting these issues.
+ v1.16: remove xpatch and comment packages from class file; disable \\( and \\) in pdf bookmarks to avoid warnings; edit documentation.
+
+ v1.15: correct extra space left by \\CorrespondingAuthor when that author is not last; correct breakage of \\ref in captions. Thanks to Bret Van Poppel for reporting these issues.
v1.14: edit documentation; use 2020 IMECE header in layout example
diff --git a/macros/latex/contrib/asmeconf/asmeconf-template.pdf b/macros/latex/contrib/asmeconf/asmeconf-template.pdf
index 14dbd71208..74cebad255 100644
--- a/macros/latex/contrib/asmeconf/asmeconf-template.pdf
+++ b/macros/latex/contrib/asmeconf/asmeconf-template.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmeconf/asmeconf-template.tex b/macros/latex/contrib/asmeconf/asmeconf-template.tex
index bc2fb371c0..542c090acd 100644
--- a/macros/latex/contrib/asmeconf/asmeconf-template.tex
+++ b/macros/latex/contrib/asmeconf/asmeconf-template.tex
@@ -1,12 +1,12 @@
%%
%% This file is asmeconf-template.tex, a template to format ASME Conference papers according to
-%% the requirements on ASME's conference web pages. As of version 1.11, this template follows ASME's
-%% newer conference guidelines as posted in July 2019.
-%%
-%% The new guidelines have changed the request author block formatting.
-%% Nomenclature follows the abstract. Abstract is in italics.
+%% the requirements on ASME's conference web pages.
%%
-%% This file is version 1.15 dated 2020/01/24.
+%% This file is version 1.16 dated 2020/02/28.
+%%
+%% As of version 1.11, this template follows ASME's newer conference guidelines posted in July 2019.
+%% The new guidelines have changed the requested author block formatting.
+%% Nomenclature now follows the abstract. Abstract is in italics.
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -62,7 +62,7 @@
%%
%% LICENSE:
%%
-%% Copyright (c) 2019 John Lienhard
+%% Copyright (c) 2020 John Lienhard
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
%% associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -248,9 +248,6 @@ If you wish to override the default math format in captions, put \verb|\mathvers
\subsection{Subsection and Sub-subsection Headings}
Subsections and sub-subsection headings should be entered in title case, with the first letter of primary words capitalized. Sub-subsections (i.e., paragraphs) are never numbered.
-\subsection{Colored hyperlinks}
-ASME requires that all text be in black when the paper is submitted for publication. For other uses, authors may
-obtain colored hyperlinks with the [\texttt{colorlinks}] option.
%%%%%%%%%%%%%%% begin simple table %%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -297,7 +294,7 @@ Our competitor's test & 72.321 & 141.384 \\
Table \ref{tab:1} is an example of a simple table. Table captions should be placed above tables.
The class loads the \texttt{booktabs} package (used for horizontal rules in both Table \ref{tab:1} and \ref{tab:2}), and the \texttt{array} and \texttt{dcolumn} packages which provide extended capabilities for columns in the \texttt{tabular} environment (used in Table \ref{tab:2}). Table \ref{tab:3} is an example of a table that spans two columns.
-Figure captions go below figures. Figure~\ref{fig:2} is an example of a figure that spans two columns and includes subfigures. The text in figures (and tables) should be no smaller than 6~point type.
+Figure captions go below figures. Figure~\ref{fig:2} is an example of a figure that spans two columns and includes subfigures. The text in figures (and tables) should be no smaller than 6~point type. Images in figures are handles by the standard \texttt{graphicx} package.
Landscape figures and tables may be produced at full-page size by putting \verb|\usepackage[figuresright]{rotating}| in your \texttt{.tex} file's preamble and using the \texttt{sidewaystable*} and \texttt{sidewaysfigure*} environments~\cite{fairbairns}.
@@ -331,9 +328,9 @@ Landscape figures and tables may be produced at full-page size by putting \verb|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Reference Formatting with \NoCaseChange{\texttt{asmeconf.bst}}\footnote{If you have text in a section heading or caption that you do not want to be capitalized, such as an SI unit, enclose it in a \texttt{\textbackslash NoCaseChange} command.}}
-Citations are automatically numbered \cite{ning2002}. They should be inserted at the appropriate point using a \verb|\cite{ref}| command~\cite{gibson2008,stevens1999}. The citations will be automatically sorted and compressed as well if they are given in a set \cite{stevens1999,ning2002,gibson2008,wions2005,smith2002,watson1982,smith1998}. See the \texttt{asmeconf-sample.bib} file for examples of how to enter your references.
+Citations are automatically numbered \cite{ning2002}. They should be inserted at the appropriate point using a \verb|\cite{ref}| command~\cite{gibson2008,stevens1999}. The citations will be automatically sorted and compressed as well if they are given in a set \cite{stevens1999,ning2002,gibson2008,wions2005,smith2002,watson1982,smith1998}. See the \texttt{asmeconf-sample.bib} file for examples of how to enter your references. Citations and references are managed by the standard \texttt{natbib} package.
-The {\upshape\texttt{asmeconf.bst}} \textsc{Bib}\negthinspace\TeX\ style follows the reference styles posted on ASME's conference web site in mid-2019. Examples for these and many other cases are given in the \texttt{asmeconf-sample.bib} file, which is part of this distribution. Nevertheless, a few comments are necessary.
+The {\upshape\texttt{asmeconf.bst}} \textsc{Bib}\negthinspace\TeX\ style follows the reference styles posted on ASME's conference web site in early 2020. Examples for these and many other cases are given in the \texttt{asmeconf-sample.bib} file, which is part of this distribution. Nevertheless, a few comments are necessary.
%% subsubsections are not numbered
\subsubsection*{DOI, URL, and eprint} Include DOI numbers when they are available. URL's may alternatively be given.
@@ -390,8 +387,15 @@ which selects the Euler font for \verb|\mathcal| (this is our default). To find
The typewriter font loaded is \texttt{inconsolata} (which is sans serif), as suggested by the \texttt{newtx} package documentation. The class is not set up for use with the \texttt{fontspec} or \texttt{unicode-math} packages.
+
+%%%%%%%%%%%%%%% ADDITIONAL PACKAGE OPTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{Additional Options for \NoCaseChange{\texttt{asmeconf.cls}}}
-The class accepts a number of options in addition to those already described.
+The class accepts a number of options in addition to those already described. These options are discussed next.
+
+\subsection{Colored hyperlinks}
+ASME requires that all text be in black when the paper is submitted for publication. For other uses, authors may
+obtain colored hyperlinks with the [\texttt{colorlinks}] option.
\subsection{Final Column Balancing} The option \texttt{[balance]} invokes the the \texttt{flushend} package~\cite{tolusis}.
This package will attempt to give equal height to the two columns on the last page. The performance of this package is sometimes inconsistent (with odd page layout or, very rarely, errors), so use this option with caution.
@@ -410,6 +414,8 @@ The footers are generated with the \texttt{fancyhdr} package~\cite{oostrum}, so
\subsection{Hyphenation of Typewriter Font} The option \texttt{[hyphenate]} will allow hyphenation of the typewriter font.
Hyphenation is normally suppressed for typewriter mode because this font is often used for code.
+\subsection{Support for Other Languages} The package can be adapted to incorporate (or entirely use) languages other than English. See Appendix \ref{appendix:c} for details.
+
%%%%%%%%%%%%%%% begin two column table %%%%%%%%%%%%%%%%%%
\begin{table*}[t]
@@ -505,7 +511,7 @@ the option [\texttt{oldauthors}]. When using this form, the author names and ad
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Language Support}
+\section{Language Support}\label{appendix:c}
ASME publishes in English, but the \texttt{babel} package is loaded for
users who may wish to include other languages. Options are supported to load a primary language, \texttt{lang=}, as well
diff --git a/macros/latex/contrib/asmeconf/asmeconf.cls b/macros/latex/contrib/asmeconf/asmeconf.cls
index 0eda4a2701..4f2d8f3d42 100644
--- a/macros/latex/contrib/asmeconf/asmeconf.cls
+++ b/macros/latex/contrib/asmeconf/asmeconf.cls
@@ -5,9 +5,9 @@
%%
%% Please note that ASME's journals follow specifications different from ASME conference papers.
%%
-%% This file is version 1.15 dated 2020/01/24.
- \def\versionno{1.15}
- \def\versiondate{2020/01/24\space}
+%% This file is version 1.16 dated 2020/02/28.
+ \def\versionno{1.16}
+ \def\versiondate{2020/02/28\space}
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -49,7 +49,7 @@
%%
%% LICENSE:
%%
-%% Copyright (c) 2019 John H. Lienhard
+%% Copyright (c) 2020 John H. Lienhard
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
%% associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -89,7 +89,7 @@
\RequirePackage{kvoptions}
-%\RequirePackage{kvsetkeys}
+%\RequirePackage{kvsetkeys} % already loaded by kvoptions
\SetupKeyvalOptions{
family=asmeconf,
prefix=asmeconf@,
@@ -190,7 +190,7 @@
\RequirePackage{graphicx}
\RequirePackage[hyperref,fixpdftex,dvipsnames,svgnames,x11names]{xcolor}
\RequirePackage{xparse}
-\RequirePackage{comment}
+%\RequirePackage{comment} % user may load this in preamble if desired.
%%%%%%%%%%%%%%%%%%%%%%%%
@@ -243,7 +243,7 @@
%% This provides sans serif italic and sans serif bold italic math.
-%% It's intended only for use in the figure captions and section heading (recommend \bm{..} elsewhere).
+%% It's intended only for use in the figure captions and section headings (recommend \bm{..} elsewhere).
\DeclareMathVersion{sansbold}
\SetSymbolFont{letters}{sansbold}{OML}{ntxsfmi}{b}{it}
\SetSymbolFont{lettersA}{sansbold}{U}{ntxsfmia}{b}{it}
@@ -360,16 +360,22 @@
\urlstyle{same} % don't switch to typewriter font
-\RequirePackage{doi} % provides hyperlinks for doi in bibliography
+\RequirePackage{doi} % provides line breaking for doi hyperlinks in bibliography
\renewcommand{\doitext}{DOI } % change the default value, {doi:}, to this per ASME specification
\RequirePackage{bookmark} % improves handling of pdf bookmarks
%% Since \bm may be useful in headings, this fix will reduce frequency with which
-%% alternate pdfstrings must be given in revised section command as \section[pdfstring]{texstring}
+%% alternate pdfstrings must be given in revised section command as \section[pdfstring]{texstring}
\pdfstringdefDisableCommands{%
\def\bm#1#{\relax}%
}
+%% Let's disable \( and \) in pdf bookmarks, 28/2/20
+\pdfstringdefDisableCommands{%
+ \def\({\relax}%
+ \def\){\relax}%
+}
+
%% Let's also make sure \NoCaseChange in section headings won't break pdf bookmarks
\pdfstringdefDisableCommands{%
\let\NoCaseChange\relax%
@@ -383,35 +389,35 @@
%% Let's make sure footnotes in section headings don't break pdf bookmarks.
\RequirePackage{etoolbox}
\robustify{\footnote}
+% \patchcmd{\section}{\sectionmark}{\let\footnote\@gobble\sectionmark}{}{} <== not really needed in this context 28/2/20
\pdfstringdefDisableCommands{%
\def\footnote#1{}%
}
-
%% Let's also add \footnote to the \TextUppercase exception list, so that footnote text won't be capitalized
%% if given in section headings. Ditto for \eqref
-\RequirePackage{xpatch}
-\xpatchcmd{\@uclcnotmath}{\@nonchangecase\ref}{\@nonchangecase\ref\@nonchangecase\footnote}{}{}
-\xpatchcmd{\@uclcnotmath}{\@nonchangecase\ref}{\@nonchangecase\ref\@nonchangecase\eqref}{}{} %% correct 24 Jan 2020
+%
+\patchcmd{\@uclcnotmath}{\@nonchangecase\ref}{\@nonchangecase\ref\@nonchangecase\footnote}{}{}
+\patchcmd{\@uclcnotmath}{\@nonchangecase\ref}{\@nonchangecase\ref\@nonchangecase\eqref}{}{} %% corrected 24 Jan 2020
%%% Create an optional argument for unnumbered sections and set pdf bookmark (thru \addcontentsline).
%%% The optional argument will manually set the pdf bookmark for that section; can be used to avoid hyperref
%%% errors when macros are in section titles.
-%%% There should not be errors for $$, \cite, \ref, \label, \footnote, or \bm with current construction.
+%%% There should not be errors for $, \cite, \ref, \eqref, \label, \footnote, \NoCaseChange, or \bm with current constructions.
\let\svsection\section
\RenewDocumentCommand{\section}{s o m}{%
\IfBooleanTF {#1}
- {\svsection*{#3}\phantomsection
+ {\svsection*{#3}\phantomsection%
{\IfNoValueTF {#2}
- {\addcontentsline{toc}{section}{#3} }
- {\addcontentsline{toc}{section}{#2} }
- }
- }
+ {\addcontentsline{toc}{section}{#3}}
+ {\addcontentsline{toc}{section}{#2}}% removed trailing space 28/2/20
+ }%
+ }%
{\IfNoValueTF {#2}
{\svsection{#3}}
- {\svsection[#2]{#3}}
- }
+ {\svsection[#2]{#3}}%
+ }%
}
%%%%%%%%%%%%% Line numbering and balancing columns on last page %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -482,7 +488,7 @@
}{%
\item[#1\hfill]#2%
\@itempenalty=-\@lowpenalty%
- }
+ }%
}
\DeclareDocumentEnvironment{nomenclature}{O{2em} O{\nomname}}{%
@@ -491,13 +497,13 @@
\section*{#2}
\raggedright
\begin{list}{}{%
- \setlength{\itemsep}{0pt}
- \setlength{\parsep}{\itemsep}
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{\itemsep}%
\setlength{\labelsep}{1em}%
\setlength{\labelwidth}{\nomenwidth}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
- \setlength\savitemsep\itemsep
+ \setlength\savitemsep\itemsep%
}%
}{\end{list}}
@@ -637,13 +643,13 @@
\DeclareDocumentCommand{\CorrespondingAuthor}{m g}{%
\global\CAtrue%
\IfNoValueTF{#2}{%
- \gdef\@CAsep{\relax}
- \gdef\@CAemail{\relax}
+ \gdef\@CAsep{\relax}%
+ \gdef\@CAemail{\relax}%
}{%
- \gdef\@CAsep{:\space}
- \gdef\@CAemail{#2}
- }
- \renewcommand*{\thefootnote}{\fnsymbol{footnote}}
+ \gdef\@CAsep{:\space}%
+ \gdef\@CAemail{#2}%
+ }%
+ \renewcommand*{\thefootnote}{\fnsymbol{footnote}}%
\ignorespaces#1\ignorespaces\footnotemark[1]%
}
diff --git a/macros/latex/contrib/asmejour/README.md b/macros/latex/contrib/asmejour/README.md
index 6c30bc0159..1d9901b796 100644
--- a/macros/latex/contrib/asmejour/README.md
+++ b/macros/latex/contrib/asmejour/README.md
@@ -1,11 +1,11 @@
#asmejour: A template for ASME journal papers#
- Version 1.09 dated 2019/11/07.
+ Version 1.10 dated 2020/02/28.
####Overview####
This class provides a template to format preprints submitted to ASME journals in the style that
- is being used in 2019.
+ is being used in 2020.
This work is not a publication of ASME itself.
@@ -57,6 +57,8 @@
####Change log####
+v1.10: update asmeconf.bst to most recent Crossref standard prefix for doi (https://doi.org/); remove xpatch package from class file; disable \\( and \\) in pdf bookmarks to avoid warnings; adjust \\eqref in bookmarks; edit documentation.
+
v1.09: adjust nomenclature list; edit language support
v1.08: adjust penalties in nomenclature list; fix minor typos in template
@@ -81,7 +83,7 @@ v1.00: initial release
####License####
- Copyright (c) 2019 John H. Lienhard
+ Copyright (c) 2020 John H. Lienhard
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction,
diff --git a/macros/latex/contrib/asmejour/asmejour-template.pdf b/macros/latex/contrib/asmejour/asmejour-template.pdf
index 69c3bf0361..f41e442098 100644
--- a/macros/latex/contrib/asmejour/asmejour-template.pdf
+++ b/macros/latex/contrib/asmejour/asmejour-template.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmejour/asmejour-template.tex b/macros/latex/contrib/asmejour/asmejour-template.tex
index c6ea3b60f0..2d6601004f 100644
--- a/macros/latex/contrib/asmejour/asmejour-template.tex
+++ b/macros/latex/contrib/asmejour/asmejour-template.tex
@@ -1,9 +1,9 @@
% !TEX encoding = UTF-8 Unicode
%%
%% This file is asmejour-template.tex, a template to format papers in the style of ASME journal papers
-%% as they are being published in 2019.
+%% as they are being published in 2020.
%%
-%% This file is version 1.09 dated 2019/11/07
+%% This file is version 1.10 dated 2020/02/28
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -60,7 +60,7 @@
%%
%% LICENSE:
%%
-%% Copyright (c) 2019 John Lienhard
+%% Copyright (c) 2020 John Lienhard
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
%% associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -83,11 +83,8 @@
%% Class options are described above.
\documentclass[largesc,upint,varvw,barcolor=Red4,nocopyright,hyphenate,balance,lang-second=french,lang=english]{asmejour}
-\pdfminorversion=7 % This selection is not required.
-
%%%%% FIELDS TO BE COMPLETED FOLLOW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
%%%%% pdf metadata, the user should edit %%%%%%%%%%%%%%%%%%
\hypersetup{%
pdftitle={ASME Journal Paper Template}, % <=== change to YOUR pdf file title
@@ -95,7 +92,6 @@
pdfauthor={John H. Lienhard}, % <=== change to YOUR name[s]!!!
}
-
%%%% Journal name and optional copyright year %%%%%%%%%%%%%%
%% Omit "Journal of"
@@ -222,7 +218,7 @@ Section, subsection, and subsubsection headings should be in title case (first l
%% captions go below figures
\begin{figure}
\centering\includegraphics[width=0.7\linewidth]{sample-figure-1.pdf}
-\caption{A figure caption with math, $z = (r,\phi)$ \cite{Lienhard2019b}\label{fig:1}}
+\caption{A figure caption with math, Eq.~\eqref{eqn:1}: $z = (r,\phi)$ \cite{Lienhard2019b}\label{fig:1}}
\end{figure}
%%%%%%%%%%%%% end figure %%%%%%%%%%%%%%%%%%%
@@ -284,7 +280,7 @@ The \texttt{booktabs} package \cite{fear} is loaded (and customized) to provide
Table~\ref{tab:4} shows a table that spans both text columns. Figure~\ref{fig:2} shows a figure spanning both columns.
-Text in the figures should be checked for legibility at either single-column width (about 83~mm) or full-column width (about 170~mm). Figure captions should be placed below figures.
+Text in the figures should be checked for legibility at either single-column width (about 83~mm) or full-column width (about 170~mm). Figure captions should be placed below figures. Images in figures are handled by the standard \texttt{graphicx} package.
Landscape figures and tables may be produced at full-page size by putting \verb|\usepackage[figuresright]{rotating}| in your \texttt{.tex} file's preamble and using the \texttt{sidewaystable*} and \texttt{sidewaysfigure*} environments~\cite{fairbairns}.
@@ -336,7 +332,8 @@ Run 12 & 24 & 68.3 \\
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Reference Formatting with \texttt{asmejour.bst}}
-The {\upshape\texttt{asmejour.bst}} \hologo{BibTeX} style follows the reference styles observed in ASME journals in 2019. The vast majority of published references are to journal papers and books. Examples for these and many other cases are given in the \texttt{asmejour-sample.bib} file, which is part of this distribution. Nevertheless, a few comments are necessary.
+The {\upshape\texttt{asmejour.bst}} \hologo{BibTeX} style follows the reference styles observed in ASME journals in 2019. The vast majority of published references are to journal papers and books. Examples for these and many other cases are given in the \texttt{asmejour-sample.bib} file, which is part of this distribution. Citations and references are managed by the standard \texttt{natbib} package.
+Nevertheless, a few comments are necessary.
\subsection{Hyperlinked Titles} If an \verb|@article{..| or \verb|@book{..| includes \verb|doi={..}|, the journal title will be hyperlinked to that doi number, and the doi number will not be printed. If no doi is included, but a url is included, then the title will be hyperlinked to that url. To display the doi (or the url when no doi is given), put it into the \verb|note={..}| field:
\begin{quote}
@@ -414,7 +411,7 @@ q_\textrm{gray} & q_\textrm{int, $T_1$} & q_\textrm{int, $T_m$} & q_\textrm{exa
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Dealing with complicated math in a section heading: optional argument of \section provides the pdfbookmark
-%% without losing characters or producing warnings/errors. Note that bookmark can include simple math.
+%% without losing characters or producing warnings/errors. Note that bookmark can include simple math and \eqref{..}.
%%
%% Newtxmath provides the option for upright Greek letters as \upomega (vs. \omega), etc.
%%
@@ -573,7 +570,6 @@ Joseph Fourier est connu pour avoir déterminé, par le calcul, la diffusion de
\bibliography{asmejour-sample} %% <=== change this to name of your bib file
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% To omit final list of figures and tables, use the class option [nolists]
diff --git a/macros/latex/contrib/asmejour/asmejour.bst b/macros/latex/contrib/asmejour/asmejour.bst
index 29876b85da..426add9076 100644
--- a/macros/latex/contrib/asmejour/asmejour.bst
+++ b/macros/latex/contrib/asmejour/asmejour.bst
@@ -26,13 +26,13 @@
% ===============================================================
%-------------------------------------------------------------------
%%
- %% This file is asmejour.bst, version 1.01 dated 2019/05/26.
+ %% This file is asmejour.bst, version 1.02 dated 2019/12/03.
%%
%% This file was generated and edited by John Lienhard.
%% This file is a derivative work under Clause 6 of the LPPL license.
%%
%% The generated file and the modifications are based on what ASME is actually putting into
- %% published journal papers in early 2019. The modification mainly relate to handling of online
+ %% published journal papers in early 2019. The modifications mainly relate to handling of online
%% information. Details follow.
%%
%% Added fields: eventdate, urldate, urltype, venue, version, versiontype
@@ -40,6 +40,7 @@
%% Added: urlprefix = {}, format.web.urldate, bbl.urldate; urltype field changes "accessed" to something else.
%% Added: venue and eventdate to @inproceedings
%% Added: format.version to @book, @online, and @manual; text can be changed with versiontype field.
+ %% Updated: doi url prefix to https://doi.org/
%%
%% Remove "emphasize" from journal article, and linked doi (or else url) to journal name (or book title)
%% without explicitly showing the urls. The urls may be added to the note = {..} field to display explicitly
@@ -762,7 +763,7 @@ FUNCTION {doilink}
{ "\href{" url * "}{" * swap$ * "}" * }
if$
}
- { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * }
+ { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * }
if$
}
if$
diff --git a/macros/latex/contrib/asmejour/asmejour.cls b/macros/latex/contrib/asmejour/asmejour.cls
index 87bd31d377..b452428380 100644
--- a/macros/latex/contrib/asmejour/asmejour.cls
+++ b/macros/latex/contrib/asmejour/asmejour.cls
@@ -6,9 +6,9 @@
%% The asmejour.cls file should be used with the files asmejour.bst (for citations) and asmejour-template.tex.
%%
%%
-%% This file is version 1.09 dated 2019/11/07.
- \def\versionno{1.09}
- \def\versiondate{2019/11/07\space}
+%% This file is version 1.10 dated 2020/2/28.
+ \def\versionno{1.10}
+ \def\versiondate{2020/02/28\space}
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -34,7 +34,7 @@
%%
%% LICENSE:
%%
-%% Copyright (c) 2019 John H. Lienhard
+%% Copyright (c) 2020 John H. Lienhard
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
%% associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -210,7 +210,7 @@
%%%%%%%% FONT related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{mathtools} % extends amsmath
-\RequirePackage[utf8]{inputenc} % backward compatibility...
+\RequirePackage[utf8]{inputenc} % backward compatibility...LuaLaTeX will disable
\RequirePackage[]{babel}
\RequirePackage[]{newtxtext}
\RequirePackage[varqu,varl]{inconsolata} % sans typewriter font
@@ -274,8 +274,8 @@
%%%%%%%%%%%%%%%%% EQUATION AND LINE NUMBERING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% ASME puts equation tags in blue
-\RequirePackage{xpatch}
-\xpatchcmd{\tagform@}{(\ignorespaces#1\unskip\@@italiccorr)}{\color{blue}(\ignorespaces#1\unskip\@@italiccorr)}{}{}
+\RequirePackage{etoolbox} % dropped xpatch 28/2/20
+\patchcmd{\tagform@}{(\ignorespaces#1\unskip\@@italiccorr)}{\color{blue}(\ignorespaces#1\unskip\@@italiccorr)}{}{}
%% Ensure that the current font is used for equation tags, not \normalfont as set by amsmath
\def\maketag@@@#1{\hbox{\m@th#1}}
@@ -484,7 +484,7 @@
\urlstyle{same} % don't switch to typewriter font
-\RequirePackage{doi} % provides hyperlinks for doi in bibliography
+\RequirePackage{doi} % supports nasty characters in some doi's
\renewcommand{\doitext}{doi:~} % change the default, {doi:}, to this for ASME specification
@@ -494,16 +494,26 @@
\def\bm#1#{\relax}%
}
+%% Let's disable \( and \) in pdf bookmarks, 28/2/20
+\pdfstringdefDisableCommands{%
+ \def\({\relax}%
+ \def\){\relax}%
+}
+
%% Let's just remove citations from pdf bookmarks
\pdfstringdefDisableCommands{%
\def\cite{\@gobble}%
}
+%% Ensure that tag color does not follow \eqref into bookmarks, 28/2/20
+\pdfstringdefDisableCommands{%
+ \def\eqref#1{(\ref{#1})}%
+}
+
%% Let's make sure footnotes in section headings don't break pdf bookmarks.
-\RequirePackage{etoolbox}
\robustify{\footnote}
\pdfstringdefDisableCommands{%
- \def\footnote#1{}%
+ \def\footnote#1{}%
}
%%% Create an optional argument for unnumbered sections and set pdf bookmark (thru \addcontentsline).
@@ -513,16 +523,16 @@
\let\svsection\section
\RenewDocumentCommand{\section}{s o m}{%
\IfBooleanTF {#1}
- {\svsection*{#3}\phantomsection
+ {\svsection*{#3}\phantomsection%
{\IfNoValueTF {#2}
- {\addcontentsline{toc}{section}{#3} }
- {\addcontentsline{toc}{section}{#2} }
- }
+ {\addcontentsline{toc}{section}{#3}}
+ {\addcontentsline{toc}{section}{#2}}% remove trailing space 28/2/20
+ }%
}
{\IfNoValueTF {#2}
{\svsection{#3}}
- {\svsection[#2]{#3}}
- }
+ {\svsection[#2]{#3}}%
+ }%
}
@@ -758,6 +768,14 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{iftex}%% can delete all this if desired.
+\ifpdftex
+ \pdfminorversion=7 % This selection is not required.
+\else
+ \relax
+\fi
+
+
\endinput
%%
%% End of file `asmejour.cls'.
diff --git a/macros/latex/contrib/babel-contrib/greek/Makefile b/macros/latex/contrib/babel-contrib/greek/Makefile
new file mode 100644
index 0000000000..af860da050
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/Makefile
@@ -0,0 +1,104 @@
+# This Makefile updates the source and documentation for the
+# babel-greek LateX package
+#
+# © 2019 Günter Milde
+#
+# SRCDIR (and the other variables) can be easily modified as parameters
+# while calling `make', e.g.
+#
+# make install SRCDIR=~/texmf/tex/latex/
+
+# Global variables
+# =================
+
+# for installation into a users local texmf tree
+DESTDIR = ~/texmf/tex/latex/greek/babel-greek
+DOCDIR = ~/texmf/doc/latex/greek/babel-greek
+
+CHDIR = cd
+COPY = cp -u
+SH = sh
+
+# programs
+PYLIT = pylit # text <-> source converter for literal programming
+RST2HTML = rst2html5 # text -> HTML converter, see docutils.sf.net
+RUBBER = rubber -f # wrapper around `latex`, run until references resolved
+LATEX = pdflatex -interaction batchmode # suppress logging to terminal
+
+# LaTeX source files
+# ==================
+
+.PHONY: all
+
+all: greek.ldf athnum.sty grmath.sty
+
+greek.ldf: babel-greek.dtx
+ tex babel-greek.ins
+
+athnum.sty: athnum.dtx
+ tex babel-greek.ins
+
+grmath.sty: athnum.dtx
+ tex babel-greek.ins
+
+# Documentation
+# =============
+
+.PHONY: doc html pdf
+
+doc: html pdf
+
+html: README.html
+
+README.html: README
+ $(RST2HTML) README README.html
+
+
+pdf: babel-greek.pdf athnum.pdf grmath.pdf usage.pdf\
+ test-greek.pdf test-unicode-greek.pdf test-unicode-lgr.pdf
+
+babel-greek.pdf: babel-greek.dtx
+ $(RUBBER) --pdf babel-greek.dtx
+
+athnum.pdf: athnum.dtx
+ $(RUBBER) --pdf athnum.dtx
+
+grmath.pdf: grmath.dtx
+ $(RUBBER) --pdf grmath.dtx
+
+usage.pdf: usage.tex greek.ldf
+ $(RUBBER) --pdf usage.tex
+
+test-greek.pdf: test-greek.tex greek.ldf
+ $(RUBBER) --pdf test-greek.tex
+
+test-unicode-greek.pdf: test-unicode-greek.tex greek.ldf
+ $(RUBBER) -m xelatex test-unicode-greek.tex
+
+test-unicode-lgr.pdf: test-unicode-lgr.tex greek.ldf
+ $(RUBBER) -m xelatex test-unicode-lgr.tex
+
+
+# Installation
+# =============
+
+install: all
+ $(COPY) *.ldf $(DESTDIR)
+ #$(COPY) *.sty $(DESTDIR)
+
+install-doc: doc
+ $(COPY) README $(DOCDIR)
+ $(COPY) *.html $(DOCDIR)
+ $(COPY) *.dtx $(DOCDIR)
+ $(COPY) *.ins $(DOCDIR)
+ $(COPY) *.tex $(DOCDIR)
+ $(COPY) *.pdf $(DOCDIR)
+ $(COPY) Makefile $(DOCDIR)
+
+# Cleanup
+# =======
+
+.PHONY: clean
+
+clean:
+ rm -f *.aux *.log *.toc *~
diff --git a/macros/latex/contrib/babel-contrib/greek/README b/macros/latex/contrib/babel-contrib/greek/README
index 86678690a9..1dc2b61686 100644
--- a/macros/latex/contrib/babel-contrib/greek/README
+++ b/macros/latex/contrib/babel-contrib/greek/README
@@ -61,7 +61,9 @@ News
(new in fontspec v2.5a).
1.9g 2016-09-07 Babel 3.9i deprecated ``\textlatin``
and fixed ``\latinencoding``.
-1.9.h 2019-07-11 Move breathing composite commands to textalpha_.
+1.9h 2019-07-11 Move breathing composite commands to textalpha_.
+1.9i 2020-02-28 Update test for Unicode fonts.
+ Fix accent in ``\seename`` and ``\alsoname``.
===== ============ ============================================================
diff --git a/macros/latex/contrib/babel-contrib/greek/README.html b/macros/latex/contrib/babel-contrib/greek/README.html
index 5eb279899e..481515c75b 100644
--- a/macros/latex/contrib/babel-contrib/greek/README.html
+++ b/macros/latex/contrib/babel-contrib/greek/README.html
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
-<meta name="generator" content="Docutils 0.15b.dev: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.17b.dev: http://docutils.sourceforge.net/" />
<title>babel-greek</title>
<meta name="dcterms.rights" content="© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 Günter Milde" />
<link rel="schema.dcterms" href="http://purl.org/dc/terms/">
@@ -42,10 +42,10 @@
h1.title, p.subtitle {
text-align: center;
}
-p.admonition-title,
p.topic-title,
p.sidebar-title,
p.rubric,
+p.admonition-title,
p.system-message-title {
font-weight: bold;
}
@@ -103,7 +103,7 @@ dl.simple > dd, dl.compact > dd {
}
/* Table of Contents */
-div.topic.contents { margin: 0; }
+div.topic.contents { margin: 0.5em 0; }
div.topic.contents ul {
list-style-type: none;
padding-left: 1.5em;
@@ -162,7 +162,7 @@ pre.address { font: inherit; }
dd.authors > p { margin: 0; }
/* Option Lists */
-dl.option-list { margin-left: 40px; }
+dl.option-list { margin-left: 1.5em; }
dl.option-list > dt { font-weight: normal; }
span.option { white-space: nowrap; }
@@ -192,45 +192,54 @@ div.line-block div.line-block {
/* Figures, Images, and Tables */
.figure.align-left,
+figure.align-left,
img.align-left,
object.align-left,
table.align-left {
margin-right: auto;
}
.figure.align-center,
+figure.align-center,
img.align-center,
-object.align-center {
- margin-left: auto;
- margin-right: auto;
- display: block;
-}
+object.align-center,
table.align-center {
margin-left: auto;
margin-right: auto;
}
.figure.align-right,
+figure.align-right,
img.align-right,
object.align-right,
table.align-right {
margin-left: auto;
}
+.figure.align-center, .figure.align-right,
+figure.align-center, figure.align-right,
+img.align-center, img.align-right,
+object.align-center, object.align-right {
+ display: block;
+}
/* reset inner alignment in figures and tables */
-/* div.align-left, div.align-center, div.align-right, */
-table.align-left, table.align-center, table.align-right
-{ text-align: inherit }
+.figure.align-left, .figure.align-right,
+figure.align-left, figure.align-right,
+table.align-left, table.align-center, table.align-right {
+ text-align: inherit;
+}
/* Admonitions and System Messages */
div.admonition,
div.system-message,
-div.sidebar{
- margin: 40px;
+aside.sidebar {
+ margin: 1em 1.5em;
border: medium outset;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
padding-right: 1em;
padding-left: 1em;
}
/* Sidebar */
-div.sidebar {
+aside.sidebar {
width: 30%;
max-width: 26em;
float: right;
@@ -245,7 +254,7 @@ pre.doctest-block,
pre.math,
pre.code {
margin-left: 1.5em;
- margin-right: 1.5em
+ margin-right: 1.5em;
}
pre.code .ln { color: gray; } /* line numbers */
@@ -271,14 +280,23 @@ table.borderless td, table.borderless th {
padding-right: 0.5em /* separate table cells */
}
+/* Document Header and Footer */
+header { border-bottom: 1px solid black; }
+footer { border-top: 1px solid black; }
+
+/* new HTML5 block elements: set display for older browsers */
+header, section, footer, aside, nav, main, article, figure {
+ display: block;
+}
+
</style>
<style type="text/css">
/* CSS31_ style sheet for the output of Docutils HTML writers. */
-/* Rules for easy reading and pre-defined style variants. */
+/* Rules for easy reading and pre-defined style variants. */
/* */
/* :Author: Günter Milde, based on html4css1.css by David Goodger */
-/* :Id: $Id$ */
+/* :Id: $Id$ */
/* :Copyright: © 2015 Günter Milde. */
/* :License: Released under the terms of the `2-Clause BSD license`_, */
/* in short: */
@@ -286,11 +304,11 @@ table.borderless td, table.borderless th {
/* Copying and distribution of this file, with or without modification, */
/* are permitted in any medium without royalty provided the copyright */
/* notice and this notice are preserved. */
-/* */
+/* */
/* This file is offered as-is, without any warranty. */
/* */
/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
-/* .. _CSS3: http://www.w3.org/TR/CSS3 */
+/* .. _CSS3: http://www.w3.org/TR/CSS3 */
/* Document Structure */
@@ -301,7 +319,8 @@ body {
margin: 0;
background-color: #dbdbdb;
}
-div.document {
+div.document,
+main {
line-height:1.3;
counter-reset: table;
/* counter-reset: figure; */
@@ -324,32 +343,35 @@ hr.docutils {
clear: both;
}
-/* Paragraphs */
-/* ========== */
+/* Paragraphs */
+/* ========== */
/* vertical space (parskip) */
-p, ol, ul, dl,
+p, ol, ul, dl, li, dd,
div.line-block,
-table{
+div.topic,
+table {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
+p:first-child { margin-top: 0; }
+/* (:last-child is new in CSS 3) */
+p:last-child { margin-bottom: 0; }
+
h1, h2, h3, h4, h5, h6,
dl > dd {
margin-bottom: 0.5em;
}
-/* Lists */
-/* ========== */
-
-/* Definition Lists */
+/* Lists */
+/* ===== */
-dl > dd > p:first-child { margin-top: 0; }
-/* :last-child is not part of CSS 2.1 (introduced in CSS 3) */
-dl > dd > p:last-child { margin-bottom: 0; }
+/* Separate list entries in compound lists */
+dl > dd, ol > li,
-/* lists nested in definition lists */
-/* :only-child is not part of CSS 2.1 (introduced in CSS 3) */
+/* Definition Lists */
+/* Indent lists nested in definition lists */
+/* (:only-child is new in CSS 3) */
dd > ul:only-child, dd > ol:only-child { padding-left: 1em; }
/* Description Lists */
@@ -398,12 +420,19 @@ span.fn-backref {
font-weight: normal;
}
-/* Text Blocks */
-/* ============ */
+/* Text Blocks */
+/* =========== */
-/* Literal Blocks */
+/* Literal Blocks */
-/* Block Quotes */
+pre.literal-block,
+pre.doctest-block,
+pre.math,
+pre.code {
+ font-family: monospace;
+}
+
+/* Block Quotes */
blockquote > table,
div.topic > table {
@@ -416,8 +445,8 @@ div.topic p.attribution {
margin-left: 20%;
}
-/* Tables */
-/* ====== */
+/* Tables */
+/* ====== */
/* th { vertical-align: bottom; } */
@@ -444,11 +473,11 @@ table.numbered > caption:before {
font-weight: bold;
}
-/* Explicit Markup Blocks */
-/* ====================== */
+/* Explicit Markup Blocks */
+/* ====================== */
-/* Footnotes and Citations */
-/* ----------------------- */
+/* Footnotes and Citations */
+/* ----------------------- */
/* line on the left */
dl.footnote {
@@ -457,47 +486,50 @@ dl.footnote {
border-left-width: thin;
}
-/* Directives */
-/* ---------- */
+/* Directives */
+/* ---------- */
-/* Body Elements */
-/* ~~~~~~~~~~~~~ */
+/* Body Elements */
+/* ~~~~~~~~~~~~~ */
/* Images and Figures */
/* let content flow to the side of aligned images and figures */
.figure.align-left,
+figure.align-left,
img.align-left,
object.align-left {
display: block;
clear: left;
float: left;
- margin-right: 1em
+ margin-right: 1em;
}
.figure.align-right,
+figure.align-right,
img.align-right,
object.align-right {
display: block;
clear: right;
float: right;
- margin-left: 1em
+ margin-left: 1em;
}
/* Stop floating sidebars, images and figures at section level 1,2,3 */
h1, h2, h3 { clear: both; }
/* Sidebar */
-/* Move into the margin. In a layout with fixed margins, */
-/* it can be moved into the margin completely. */
-div.sidebar {
+/* Move right. In a layout with fixed margins, */
+/* it can be moved into the margin. */
+div.sidebar,
+aside.sidebar {
width: 30%;
max-width: 26em;
margin-left: 1em;
- margin-right: -5.5%;
- background-color: #ffffee ;
+ margin-right: -2%;
+ background-color: #ffffee;
}
-/* Code */
+/* Code */
pre.code { padding: 0.7ex }
pre.code, code { background-color: #eeeeee }
@@ -511,55 +543,57 @@ pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
-/* Math */
+/* Math */
/* styled separately (see math.css for math-output=HTML) */
-/* Epigraph */
-/* Highlights */
-/* Pull-Quote */
-/* Compound Paragraph */
-/* Container */
-
-/* can be styled in a custom stylesheet */
+/* Epigraph */
+/* Highlights */
+/* Pull-Quote */
+/* Compound Paragraph */
+/* Container */
/* Document Header and Footer */
-div.footer, div.header {
- clear: both;
+footer, header {
font-size: smaller;
+ clear: both;
+ padding: 0.5em 2%;
+ background-color: #ebebee;
+ border: none;
}
-/* Inline Markup */
-/* ============= */
-
-/* Emphasis */
-/* em */
-/* Strong Emphasis */
-/* strong */
-/* Interpreted Text */
-/* span.interpreted */
-/* Title Reference */
-/* cite */
-/* Inline Literals */
+/* Inline Markup */
+/* ============= */
+
+/* Emphasis */
+/* em */
+/* Strong Emphasis */
+/* strong */
+/* Interpreted Text */
+/* span.interpreted */
+/* Title Reference */
+/* cite */
+
+/* Inline Literals */
/* possible values: normal, nowrap, pre, pre-wrap, pre-line */
-/* span.docutils.literal { white-space: pre-wrap; } */
+/* span.docutils.literal { white-space: pre-wrap; } */
-/* Hyperlink References */
+/* Hyperlink References */
a { text-decoration: none; }
-/* External Targets */
-/* span.target.external */
-/* Internal Targets */
-/* span.target.internal */
-/* Footnote References */
-/* a.footnote-reference */
-/* Citation References */
-/* a.citation-reference */
+/* External Targets */
+/* span.target.external */
+/* Internal Targets */
+/* span.target.internal */
+/* Footnote References */
+/* a.footnote-reference */
+/* Citation References */
+/* a.citation-reference */
</style>
</head>
<body>
-<div class="document" id="babel-greek">
+<main id="babel-greek">
<h1 class="title">babel-greek</h1>
<p class="subtitle" id="babel-support-for-the-greek-language-and-script">Babel support for the Greek language and script</p>
<dl class="docinfo simple">
@@ -573,7 +607,7 @@ version 1.3 of this license or any later version.</p>
</dd>
</dl>
<div class="abstract topic">
-<p class="topic-title first">Abstract</p>
+<p class="topic-title">Abstract</p>
<p>Babel-greek is a contributed package providing support for the
Greek language and script via the <a class="reference external" href="http://www.ctan.org/pkg/babel">Babel</a> system.</p>
<p>The file <span class="docutils literal">greek.ldf</span> provides options for the monotonic
@@ -582,7 +616,7 @@ orthography of the Greek language.</p>
<p>Since 2013-07-19, babel-greek supports also Unicode-aware TeX
engines (XeTeX/LuaTeX).</p>
</div>
-<div class="section" id="news">
+<section id="news">
<h1>News</h1>
<table class="borderless">
<colgroup>
@@ -709,14 +743,19 @@ This package is outdated and obsoleted by <a class="reference external" href="ht
<td><p>Babel 3.9i deprecated <span class="docutils literal">\textlatin</span>
and fixed <span class="docutils literal">\latinencoding</span>.</p></td>
</tr>
-<tr><td><p>1.9.h</p></td>
+<tr><td><p>1.9h</p></td>
<td><p>2019-07-11</p></td>
<td><p>Move breathing composite commands to <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">textalpha</a>.</p></td>
</tr>
+<tr><td><p>1.9i</p></td>
+<td><p>2020-02-28</p></td>
+<td><p>Update test for Unicode fonts.
+Fix accent in <span class="docutils literal">\seename</span> and <span class="docutils literal">\alsoname</span>.</p></td>
+</tr>
</tbody>
</table>
-</div>
-<div class="section" id="files">
+</section>
+<section id="files">
<h1>Files</h1>
<dl class="simple">
<dt><a class="reference external" href="babel-greek.ins">babel-greek.ins</a>; <a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a></dt>
@@ -741,16 +780,16 @@ and fixed <span class="docutils literal">\latinencoding</span>.</p></td>
<dd><p>Description of the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin transliteration</a>.</p>
</dd>
</dl>
-</div>
-<div class="section" id="requirements">
+</section>
+<section id="requirements">
<h1>Requirements</h1>
<p>The “babel-greek” package requires the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> base package and font
definition files from the <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package. The <a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a>
package is recommended when using 8-bit TeX engines.</p>
<p>Typesetting Greek texts requires <a class="reference internal" href="#greek-text-fonts">Greek text fonts</a>.</p>
<p>Plain TeX is currently not supported. Patches are welcome.</p>
-</div>
-<div class="section" id="installation">
+</section>
+<section id="installation">
<h1>Installation</h1>
<p>If possible, get this package from your distribution using its installation
manager.</p>
@@ -775,8 +814,8 @@ of these files you want to keep.</p>
<p>This is done by <a class="reference external" href="http://www.ctan.org/pkg/docstrip">docstrip</a>. Try <span class="docutils literal">texdoc docstrip</span> for details.</p>
</dd>
</dl>
-</div>
-<div class="section" id="usage">
+</section>
+<section id="usage">
<h1>Usage</h1>
<p>Use the “greek” document option or pass the “greek” option to babel:</p>
<pre class="literal-block">\usepackage[greek]{babel}</pre>
@@ -801,8 +840,8 @@ file, not the console output!</p>
<a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a> package or with XeTeX or LuaTeX) or the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin
transliteration</a>. See <a class="reference external" href="usage.pdf">usage.pdf</a> and the example files provided with
<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>.</p>
-</div>
-<div class="section" id="greek-text-fonts">
+</section>
+<section id="greek-text-fonts">
<h1>Greek text fonts</h1>
<p>A list of Greek text fonts for use with LaTeX is available at the CTAN
<a class="reference external" href="http://www.ctan.org/topic/font-greek">http://www.ctan.org/topic/font-greek</a></p>
@@ -816,8 +855,8 @@ that support Greek (e.g. <a class="reference external" href="http://dejavu-fonts
<a class="reference external" href="http://www.ctan.org/pkg/grtimes">grtimes</a> (Greek Times), <a class="reference external" href="http://www.ctan.org/pkg/kerkis">Kerkis</a> (matching URW Bookman), and the <a class="reference external" href="http://www.ctan.org/pkg/gfs">GFS font
collection</a>. Setup of these fonts as Greek variant to matching Latin fonts
is facilitated by the <a class="reference external" href="http://www.ctan.org/pkg/substitutefont">substitutefont</a> package.</p>
-</div>
-<div class="section" id="lgr-latin-transliteration">
+</section>
+<section id="lgr-latin-transliteration">
<h1>LGR Latin Transliteration</h1>
<p>The LGR font encoding allows input of Greek characters via an ASCII
transliteration. This enables simple input with a Latin keyboard. Characters
@@ -1030,7 +1069,7 @@ font-encoding comprising both Latin and Greek like the hypothetical T7 or
Unicode (with XeTeX or LuaTeX).</p>
<!-- References
- - - - - - - - - - -->
-</div>
-</div>
+</section>
+</main>
</body>
</html>
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
index 677eb4d480..38d9a23d50 100644
--- a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
@@ -26,7 +26,7 @@
% and covered by LPPL is defined by the unpacking script (babel-greek.ins)
% which is part of the package.
% \fi
-% \CheckSum{1552}
+% \CheckSum{1543}
%
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
@@ -37,7 +37,7 @@
%<code>\ProvidesLanguage{greek}
%\fi
%\ProvidesFile{babel-greek.dtx}
- [2016/09/07 v1.9h Greek support for the babel system]
+ [2020/02/27 v1.9i Greek support for the babel system]
%\iffalse
%% File `babel-greek.dtx'
%% Greek language Definition File
@@ -125,6 +125,8 @@
% and fixed latinencoding.}
% \changes{babel-greek-1.9h}{2019/07/11}{Move breathing composite commands
% to textalpha.}
+% \changes{babel-greek-1.9i}{2020/02/28}{Update test for Unicode fonts.
+% Fix accent in seename and alsoname.}
%
% \title{Babel support for the Greek language}
% \author{Apostolos Syropoulos, Günter Milde}
@@ -463,29 +465,21 @@
% \changes{greek-1.8}{2013/11/30}{Check for EU1/EU2 font encoding
% instead of engine}
% \changes{babel-greek-1.9f}{2016/02/04}{Check also for TU font encoding.}
+% \changes{babel-greek-1.9i}{2020/02/27}{Update check for Unicode fonts.}
%
% \DescribeMacro\greekfontencoding
% We test for available font encodings and set |\greekfontencoding|
% and the internal macro |\bbl@greek@fontencdef| with the name of the
% font definition file with Greek LICR macros. The fallback is LGR.
% \begin{macrocode}
-\@ifl@aded{def}{tuenc}{
- \providecommand*{\greekfontencoding}{TU}
+\ifdefined \UTFencname % set by "fontspec.sty"
+ \providecommand*{\greekfontencoding}{\UTFencname} % TU, EU1, or EU2
\providecommand*{\bbl@greek@fontencdef}{greek-euenc}
- \renewcommand*{\LastDeclaredEncoding}{TU}
-}{}
-\@ifl@aded{def}{eu1enc}{
- \providecommand*{\greekfontencoding}{EU1}
- \providecommand*{\bbl@greek@fontencdef}{greek-euenc}
- \renewcommand*{\LastDeclaredEncoding}{EU1}
-}{}
-\@ifl@aded{def}{eu2enc}{
- \providecommand*{\greekfontencoding}{EU2}
- \providecommand*{\bbl@greek@fontencdef}{greek-euenc}
- \renewcommand{\LastDeclaredEncoding}{EU2}
-}{}
-\providecommand*{\greekfontencoding}{LGR}
-\providecommand*{\bbl@greek@fontencdef}{lgrenc}
+ \renewcommand*{\LastDeclaredEncoding}{\UTFencname}
+\else
+ \providecommand*{\greekfontencoding}{LGR}
+ \providecommand*{\bbl@greek@fontencdef}{lgrenc}
+\fi
% \end{macrocode}
% Ensure that the Greek LICR macros are available:
% \begin{macrocode}
@@ -647,6 +641,7 @@
% \changes{greek-1.3h}{2000/09/20}{Added \cs{glossaryname}}
% \changes{greek-1.3i}{2000/10/02}{The final sigma in all names appears
% as `s' instead of `c'.}
+% \changes{babel-greek-1.9i}{2020/02/27}{Fix accent in seename and alsoname.}
% \begin{macrocode}
\addto\captionsgreek{%
\def\prefacename{\textPi\textrho\acctonos\textomicron\textlambda
@@ -765,8 +760,8 @@
\textomicron\acctonos\textiota\texteta\textsigma\textiota\textvarsigma}%
\def\headtoname{\textPi\textrho\accvaria\textomicron\textvarsigma}%
\def\pagename{\textSigma\textepsilon\textlambda\accvaria\textiota\textvarsigma}%
- \def\seename{\accdasiavaria\textomicron\textrho\textalpha}%
- \def\alsoname{\accdasiavaria\textomicron\textrho\textalpha{} \accdasia\textomega\textsigma
+ \def\seename{\accdasiaoxia\textomicron\textrho\textalpha}%
+ \def\alsoname{\accdasiaoxia\textomicron\textrho\textalpha{} \accdasia\textomega\textsigma
\textalpha\acctonos\textupsilon\texttau\textomega\textvarsigma}%
\def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron\textdelta\textepsilon
\textiota\textxi\textiota\textvarsigma}%
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
index d877d86834..cba57427b7 100644
--- a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf
index ac09a44166..0751ed7c9f 100644
--- a/macros/latex/contrib/babel-contrib/greek/test-greek.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-unicode-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-unicode-greek.pdf
index b243fcc3ed..4a0204a05c 100644
--- a/macros/latex/contrib/babel-contrib/greek/test-unicode-greek.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/test-unicode-greek.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-unicode-greek.tex b/macros/latex/contrib/babel-contrib/greek/test-unicode-greek.tex
index b794be139b..77afdcb872 100644
--- a/macros/latex/contrib/babel-contrib/greek/test-unicode-greek.tex
+++ b/macros/latex/contrib/babel-contrib/greek/test-unicode-greek.tex
@@ -32,9 +32,9 @@ defined in the file «greek.ldf» (source «greek.dtx»).
Typesetting Greek texts requires a font containing Greek letters. With the
XeTeX or LuaTeX engines, the user must ensure that the selected font
-contains the required glyphs (the default Latin Modern fonts miss them).
-Examples for suitable fonts are the «Deja Vu», «Linux Libertine», or
-«Free Serif» OpenType fonts.
+contains the required glyphs (the default Latin Modern fonts miss most of
+them). Examples for suitable fonts are the «Deja Vu», «Linux Libertine»,
+or «Free Serif» OpenType fonts.
\section{Language Switch}
@@ -55,9 +55,9 @@ specified as first argument. This is intended for short text parts like
Every language switch to \texttt{greek} calls the \verb|\extrasgreek|
command which in turn calls \verb|\greekscript| to ensure a Greek-supporting
-font encoding (LGR, TU, EU1, or EU2). Under XeTeX/LuaTeX the font encoding
-normally just remains Unicode (TU, EU1, or EU2). For customization, you can
-add to or redefine the \verb|\extrasgreek| command.
+font encoding (LGR, TU, EU1, or EU2). Under Xe/LuaTeX the font encoding
+normally just remains Unicode (TU). For customization, you can add to or
+redefine the \verb|\extrasgreek| command.
The LGR font encoding does not support Latin characters. Therefore, the
Babel core defines the declaration \verb|\latintext| and the command
@@ -70,7 +70,7 @@ command which in turn calls \verb|\latintext|.\\
For customization, you can
add to or redefine the \verb|\noextrasgreek| command.
-With the Unicode font encodings TU, EU1 (XeTeX), or EU2 (LuaTeX),
+With the Unicode font encoding TU, EU1, or EU2,
Latin characters can be used in Greek text parts and
input via the «LGR Latin transcription» is not possible.%
\footnote{%
@@ -88,7 +88,8 @@ input via the «LGR Latin transcription» is not possible.%
\section{LICR Macros}
Babel defines macros for several autogenerated strings so that they may
-appear in the choosen language. \emph{babel-greek} uses LICR macros in
+appear in the choosen language. \emph{babel-greek} uses LICR%
+\footnote{LaTeX internal character representation} macros in
order to let the string macros work independent of the font encoding.
If \emph{fontspec} is loaded, \emph{babel-greek} loads Greek LICR
diff --git a/macros/latex/contrib/babel-contrib/greek/test-unicode-lgr.pdf b/macros/latex/contrib/babel-contrib/greek/test-unicode-lgr.pdf
index fb7ebe0ecc..cdbfbb0fee 100644
--- a/macros/latex/contrib/babel-contrib/greek/test-unicode-lgr.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/test-unicode-lgr.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/usage.pdf b/macros/latex/contrib/babel-contrib/greek/usage.pdf
index 946f41514c..769d3ddb3a 100644
--- a/macros/latex/contrib/babel-contrib/greek/usage.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/usage.pdf
Binary files differ
diff --git a/macros/latex/contrib/curve2e/README.txt b/macros/latex/contrib/curve2e/README.txt
index 0e7a123185..66d32795f9 100644
--- a/macros/latex/contrib/curve2e/README.txt
+++ b/macros/latex/contrib/curve2e/README.txt
@@ -10,37 +10,54 @@
%% License information appended
%%
File README.txt for package curve2e
- [2020-02-24 v.2.2.2 Extension package for pict2e]
+ [2020-02-28 v.2.2.3 Extension package for pict2e]
The package bundle curve2e is composed of the following files
curve2e.dtx
-curve2e.pdf
-README.txt
curve2e-manual.tex
+
+The derived files are
+
+curve2e.sty
+curve2e-v161.sty
+curve2e.pdf
curve2e-manual.pdf
+README.txt
-curve2e.dtx is the documented TeX source file of file curve2e.sty; you
-get curve2e.sty, curve2e.pdf, and curve2e-v161.sty by running pdflatex
-on curve2e.dtx. The curve2e-manual files contain the user manual; in
+Compile curve2e.dtx and curve2e-manual.tex two or three times until
+all labels and citation keys are completely resolved.
+
+Move curve2e.dtx and curve2e-manual.tex to ROOT/source/latex/curve2e/
+Move curve2e.pdf and curve2e-manual.pdf to ROOT/doc/latex/curve2e/
+Move curve2e.sty and curve2e-v161.sty to ROOT/tex/latex/curve2e/
+Move README.txt to ROOT/doc/latex/curve2e/
+
+curve2e.dtx is the documented TeX source file of the derived files
+curve2e.sty, curve2e-v161.sty and README.txt.
+
+You get curve2e.sty, curve2e.pdf, curve2e-v161.sty, and README.txt
+by running pdflatex on curve2e.dtx.
+
+The curve2e-manual files contains the user manual; in
this way the long preliminary descriptive part has been transferred to
a shorter dedicated file, and the “normal” user should have enough
information to use the package. Th curve2e.pdf file, extracted from
the .dtx one, contains the code documentation and is intended for the
-developers, or for the curious advanced users.
+developers, or for the curious advanced users. For what concerns
+curve2e-v161.sty is a previous version of this package; see below why
+the older version might become necessary to the end user.
README.txt, this file, contains general information.
-
-This bundle contains also package curve2e-v161.sty that is a previous
-version of this package; see below why the older version might become
-necessary to the end user.
+This bundle contains also package curve2e-v161.sty, a roll-back
+version needed in certain rare cases.
Curve2e.sty is an extension of the package pict2e.sty which extends the
standard picture LaTeX environment according to what Leslie Lamport
specified in the second edition of his LaTeX manual (1994).
-This further extension curve2e.sty allows to draw lines and vectors
-with any non integer slope parameters, to draw dashed and dotted lines
-of any slope, to draw arcs and curved vectors, to draw curves where
+This further extension curve2e.sty to pict2e.sty allows to draw lines
+and vectorsith any non integer slope parameters, to draw dashed and dotted
+lines of any slope, to draw arcs and curved vectors, to draw curves where
just the interpolating nodes are specified together with the slopes at
such nodes; closed paths of any shape can be filled with color; all
coordinates are treated as ordered pairs, i.e. 'complex numbers';
@@ -48,9 +65,10 @@ coordinates may be expressed also in polar form. Coordinates may be
specified with macros, so that editing any drawing is rendered much
simpler: any point specified with a macro is modified only once in
its macro definition.
-Some of these features have been incorporated in the 2011 version of
+Some of these features have been incorporated in the 2009 version of
pict2e; therefore this package avoids any modification to the original
-pict2e commands.
+pict2e commands. In any case the version of curve2e is compatible with
+later versions of pict2e; see below.
Curve2e now accepts polar coordinates in addition to the usual cartesian
ones; several macros have been upgraded; a new macro for tracing cubic
@@ -59,7 +77,7 @@ available. The same applies to quadratic Bezier splines. The multiput
command has been completely modified in a backwards compatible way; the
new version allows to manipulate the increment components in a configurable
way. A new xmultiput command has been defined that is more configurable
-than the original one; both \multiput and \xmultiput are backwards
+than the original one; both commands multiput and xmultiput are backwards
compatible with the original picture environment definition.
Curve2e solves a conflict with package eso-pic.
@@ -80,8 +98,8 @@ have an older or a basic/incomplete installation of the TeX system,
such L3 functions might not be available. This is why this
package checks the presence of the developer interface; in case
such interface is not available it rolls back to the previous version
-renamed curve2e-v161.sty, which is part of this bundle; this other
-package name must not be modified in any way. The compatibility mentioned
+renamed curve2e-v161.sty, which is part of this bundle; this roll-back
+file name must not be modified in any way. The compatibility mentioned
above implies that the user macros remain the same, but their
implementation requires the L3 interface. Some macros and environments
rely totally on the xfp package functionalities, but legacy documents
@@ -95,7 +113,7 @@ as long as you fulfil the few conditions set forth by the Licence.
Nevertheless this package is an extension to the standard LaTeX
pict2e (2014) package. Therefore any change must be controlled on the
parent package pict2e, so as to avoid redefining or interfering with
-what is already contained in the official package.
+what is already contained in that package.
If you prefer sending me your modifications, as long as I will maintain
this package, I will possibly include every (documented) suggestion or
diff --git a/macros/latex/contrib/curve2e/curve2e-manual.pdf b/macros/latex/contrib/curve2e/curve2e-manual.pdf
index 5183f38d8c..389c3b74ae 100644
--- a/macros/latex/contrib/curve2e/curve2e-manual.pdf
+++ b/macros/latex/contrib/curve2e/curve2e-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/curve2e/curve2e-manual.tex b/macros/latex/contrib/curve2e/curve2e-manual.tex
index 36d4ae7d57..e2dc3de5a6 100644
--- a/macros/latex/contrib/curve2e/curve2e-manual.tex
+++ b/macros/latex/contrib/curve2e/curve2e-manual.tex
@@ -1,6 +1,6 @@
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
-\documentclass{article}
+\documentclass[a4paper]{article}
\hfuzz 10pt
\usepackage[utf8]{inputenc}
\usepackage{lmodern,textcomp}
diff --git a/macros/latex/contrib/curve2e/curve2e.dtx b/macros/latex/contrib/curve2e/curve2e.dtx
index 0b35ef2c19..2c4d727bda 100644
--- a/macros/latex/contrib/curve2e/curve2e.dtx
+++ b/macros/latex/contrib/curve2e/curve2e.dtx
@@ -46,7 +46,7 @@ README.txt and curve2e-v161.sty.
%<+package>\ProvidesPackage{curve2e}%
%<+readme>File README.txt for package curve2e
%<*package|readme>
- [2020-02-24 v.2.2.2 Extension package for pict2e]
+ [2020-02-28 v.2.2.3 Extension package for pict2e]
%</package|readme>
%<*driver>
\documentclass{ltxdoc}\errorcontextlines=9
@@ -77,6 +77,8 @@ README.txt and curve2e-v161.sty.
\renewcommand\parg[1]{\texttt{(\meta{#1})}}
\providecommand\Parg{}
\renewcommand\Parg[1]{\texttt{(#1)}}
+\providecommand\eTeX{}
+\renewcommand\eTeX{\lower0.5ex\hbox{$\varepsilon\!$}\TeX}
\providecommand\Pbox{}
\RenewDocumentCommand\Pbox{D(){0,0} O{cc} m O{0.5ex}}{%
@@ -179,7 +181,7 @@ README.txt and curve2e-v161.sty.
%</driver>
% \fi
%
-% \CheckSum{5582}
+% \CheckSum{5581}
% \begin{abstract}
% This file documents the |curve2e| extension package to the |pict2e|
% bundle implementation; the latter was described by Lamport
@@ -205,7 +207,7 @@ README.txt and curve2e-v161.sty.
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Package \texttt{pict2e} was announced in issue 15 of \texttt{latexnews}
-% around December 2003; it was declared that the new package would
+% around December 2003; it was specified that the new package would
% replace the dummy one that has been accompanying every release of
% \LaTeXe\ since its beginnings in 1994. The dummy package was just
% issuing an info message that simply announced the temporary
@@ -246,9 +248,9 @@ README.txt and curve2e-v161.sty.
% \begin{enumerate}
% \item Line and vector slopes are virtually unlimited; the only
% remaining limitation is that the direction coefficients must be
-% three-digit integer numbers; they need not be relatively prime; with
-% the 2009 upgrade even this limitation was removed and now slope
-% coefficients can be any fractional number whose magnitude does not
+% three-digit integer numbers (but see below); they need not be relatively
+% prime; with the 2009 upgrade even this limitation was removed and now
+% slope coefficients can be any fractional number whose magnitude does not
% exceed 16\,384, the maximum dimension in points that \TeX\ can handle.
%^^A
% \item Filled and unfilled circles can be of any size.
@@ -290,7 +292,7 @@ README.txt and curve2e-v161.sty.
% current origin of the axes is displaced — this is obvious and the
% purpose of nesting |\put| commands is exactly that. But if a segment
% is specified so that its ending point is at a specific distance and in
-% specific direction form its starting point, polar coordinates appear to
+% specific direction from its starting point, polar coordinates appear to
% be the most convenient to use; in this case, though, the origin of the
% axes become the stating point of the segment, therefore the segment
% might be drawn in a strange way. Attention has been
@@ -307,8 +309,8 @@ README.txt and curve2e-v161.sty.
% roto-amplification operators.
%^^A
% \item Commands for setting the line terminations were introduced; the
-% user can chose between square or rounded caps; the default is set to
-% rounded caps; now this feature is directly available with |pict2e|.
+% user can chose between square or round caps; the default is set to
+% round caps; now this feature is directly available with |pict2e|.
%^^A
% \item Commands for specifying the way two lines or curves join to one
% another.
@@ -317,9 +319,10 @@ README.txt and curve2e-v161.sty.
% (up to three digits) integer direction coefficients, but maintaining
% the same syntax as in the original \texttt{picture} environment; now
% |pict2e| removes the integer number limitations and allows fractional
-% values, initially implemented by |curve2e|.
+% values, initially implemented by |curve2e|, and then introduced directly
+% in |pict2e|.
% ^^A
-% \item A new macro |\Line| was originally by |curve2e| defined so as to
+% \item A new macro |\Line| was originally defined by |curve2e| so as to
% avoid the need to specify the horizontal projection of inclined lines;
% now this functionality is available directly with |pict2e|; but this
% |curve2e| macro name now conflicts with |pict2e| 2009 version;
@@ -336,7 +339,7 @@ README.txt and curve2e-v161.sty.
% \item A new macro |\DashLine| (alias: |\Dline|) is defined in order to
% draw dashed lines joining any two given points; the dash length and
% gap (equal to one another) get specified through one of the macro
-% arguments.The stating point mai be specified in cartesiano or polar
+% arguments. The starting point may be specified in cartesian or polar
% form; the end point in cartesian format specifies the desired end
% point; while if the second point is in polar form it is meant
% \emph{relative to the starting point}, not as an absolute end point.
@@ -345,7 +348,7 @@ README.txt and curve2e-v161.sty.
% \item A similar new macro |\Dotline| is defined in order to draw dotted
% straight lines as a sequence of equally spaced dots, where the gap can
% be specified by the user; such straight line may have any inclination,
-% as well as the above dashed lines.Polar coordinates for the second
+% as well as the above dashed lines. Polar coordinates for the second
% point have the same relative meaning as specified for the |\Dashline|
% macro.
% ^^A
@@ -360,13 +363,13 @@ README.txt and curve2e-v161.sty.
% number of them (available now also in |pict2e|); here it is redefined
% so as to allow an optional specification of the way segments for the
% polyline are joined to one another. Vertices may be specified with
-% polar coordinates and are always relative to the preceding point.
+% polar coordinates.
%^^A
% \item The |pict2e| |polygon| macro to draw closed polylines (in
% practice general polygons) has been redefined in such a way that it
-% can accept the various vertices specified with (relative) polar
-% coordinates. The |polygon*| macro produces a color filled polygon; the
-% default color is black, but a different color may be specified with the
+% can accept the various vertices specified with polar coordinates.
+% The |polygon*| macro produces a color filled polygon; the default
+% color is black, but a different color may be specified with the
% usual |\color| command given within the same group where |\polygon*| is
% enclosed.
%^^A
@@ -376,7 +379,7 @@ README.txt and curve2e-v161.sty.
% similar functionality is now achieved with the |\arc| macro of
% |pict2e|, which provides also the starred version |\arc*| that fills
% up the interior of the generated circular arc with the current color.
-% It must be noticed that the syntax is slightly different, so that it's
+% It must be noticed that the syntax is slightly different, so that it is
% reasonable that these commands, in spite of producing identical arcs,
% might be more comfortable with this or that syntax.
%^^A
@@ -389,9 +392,9 @@ README.txt and curve2e-v161.sty.
% node. The starred version fills up the interior of the curve with the
% current color.
%^^A
-% \item the above |\Curve| macro is a recursive macro that can draw an
+% \item The above |\Curve| macro is recursive and it can draw an
% unlimited (reasonably limited) number of connected Bézier spline arcs
-% with% continuous tangents except for cusps; these arcs require only the
+% with continuous tangents except for cusps; these arcs require only the
% specification of the tangent direction at the interpolation nodes.
% It is possible to use a lower level macro |\CbezierTo| that does the
% same but lets the user specify the control points of each arc; it is
@@ -412,7 +415,7 @@ README.txt and curve2e-v161.sty.
% |\lineto|, |\curveto|, |\closepath|, |\fillpath|, and |\strokepath|;
% of course these macros can be used by the end user, and sometimes they
% perform better than the macros defined in this package, because the
-% user has a better control on the position of eack Bézier-spline
+% user has a better control on the position of each Bézier-spline
% control points, while here the control points are sort of rigid. It
% would be very useful to resort to the |hobby| package, but its macros
% are compatible with those of the |tikz| and |pgf| packages, not with
@@ -426,7 +429,7 @@ README.txt and curve2e-v161.sty.
% coordinates, directions (unit vectors, also known as `versors'),
% rotations and the like. In the first versions of this package the
% trigonometric functions were also defined in a way that the author
-% believed to be more efficient than those defined by the \texttt{trig}
+% believed to be more efficient than those defined by the |trig|
% package; in any case the macro names were sufficiently different to
% accommodate both definition sets in the same \LaTeX\ run. With the
% progress of the \LaTeX\,3 language, the |xfp| has recently become
@@ -434,8 +437,8 @@ README.txt and curve2e-v161.sty.
% point decimal numbers; therefore the most common algebraic, irrational
% and transcendental functions can be computed in the background with the
% stable internal floating point facilities. We maintain some computation
-% with complex number algebra, but use the |xfp| functionalities for
-% other computations.
+% with complex number algebra, but use the |xfp| functionalities to
+% implement them and to make other calculations.
%
% Many aspects of this extension could be fine tuned for better
% performance; many new commands could be defined in order to further
@@ -466,8 +469,8 @@ README.txt and curve2e-v161.sty.
% a better real long division so as to get correctly the quotient
% fractional part and to avoid as much as possible any numeric overflow;
% many Josef's ideas are incorporated in the macro that was implemented
-% in the previous version of this package, although the macro used by
-% Josef was slightly different. Both versions aim/aimed at a better
+% in the previous versions of this package, although the macro used by
+% Josef was slightly different. Both versions aim/aimed at a better
% accuracy and at widening the operand ranges. In this version we
% abandoned our long division macro, and substituted it with the
% floating point division provided by the |xfp| package.
@@ -480,7 +483,7 @@ README.txt and curve2e-v161.sty.
% crucial modification in order to have \texttt{curve2e} work smoothly
% also with XeTeX (XeLaTeX). Actually if |pict2e|, version 0.2x or later,
% dated 2009/08/05 or later, is being used, such modification is not
-% necessary any more, but it's true that it becomes imperative when older
+% necessary any more, but it's true that it became imperative when older
% versions were used.
%
% \StopEventually{%
@@ -547,7 +550,7 @@ README.txt and curve2e-v161.sty.
% in our preamble, we add, if not already defined by the package, the two
% new commands that allow to make floating point tests, and to implement
% a “while” cycle\footnote{Thanks to Brian Dunn who spotted a bug in
-% the previous version definitions.}
+% the previous 2.0.x version definitions.}
% \begin{macrocode}
%
\ExplSyntaxOn
@@ -599,7 +602,10 @@ README.txt and curve2e-v161.sty.
% hide the space after the closed brace when you enter something such as
% |\linethickness{1mm}| followed by a space or a new
% line.\footnote{Thanks to Daniele
-% Degiorgi \texttt{degiorgi@inf.ethz.ch}).}
+% Degiorgi \texttt{degiorgi@inf.ethz.ch}).
+% This feature should have been eliminated
+% from the \LaTeXe\ <2020.0202> patch level 4
+% update.}
% \begin{macrocode}
\gdef\linethickness#1{%
\@wholewidth#1\@halfwidth.5\@wholewidth\ignorespaces}%
@@ -611,7 +617,7 @@ README.txt and curve2e-v161.sty.
% The |\ignorespaces| at the end of these macros is for avoiding spurious
% spaces to get into the picture that is being drawn, because
% these spaces introduce picture deformities often difficult to spot and
-% eliminate.
+% to eliminate.
%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Improved line and vector macros}
@@ -648,9 +654,9 @@ README.txt and curve2e-v161.sty.
% Notice that since |\polyline| accepts also the vertex coordinates in
% polar form, also|\segment| accepts the polar form. Please remember that
% the decimal separator is the decimal \emph{point}, while the
-% \emph{comma} acts as coordinate separator. This recommendation is
-% particularly important for non-English speaking users, since in all
-% other languages the comma is or must be used as the decimal separator.
+% \emph{comma} acts as cartesian coordinate separator. This recommendation
+% is particularly important for non-English speaking users, since in all
+% other languages the decimal separator is or must by a comma.
%
% The |\line| macro is redefined by making use of a division routine
% performed in floating point arithmetics; for this reason the \LaTeX\
@@ -661,8 +667,8 @@ README.txt and curve2e-v161.sty.
% Notice that this command |\line| should follow the same syntax as the
% original pre~1994 \LaTeX\ version; but the new definition accepts the
% direction coefficients in polar mode; that is, instead of specifying a
-% slope of $30^\circ$ with the actual sine and cosine (or values
-% proportional to such functions), for example |(0.5,0.866025)|, you may
+% slope of $30^\circ$ with its actual sine and cosine values (or values
+% proportional to such functions), for example, |(0.5,0.866025)|, you may
% specify it as |(30:1)|, i.e. as a unit vector with the required slope
% of $30^\circ$.
%
@@ -772,12 +778,12 @@ README.txt and curve2e-v161.sty.
% patterns is obtained by integer division of this number by 2 and
% increasing it by~1. Since the whole dashed or dotted line is put in
% position by an internal |\put| command, is is not necessary to enclose
-% the definitions within groups, because they remain interna to the
+% the definitions within groups, because they remain internal to the
% |\put| argument box.
%
-% Figure~\ref{fig:dashedlines} on page~\pageref{fig:dashedlines} shows
+% Figure~6 of the |curve2e-manual.pdf| user manual shows
% the effect of the slight changing of the dash length in order to
-% maintain approximately the same dash-space pattern along the line,
+% maintain \emph{approximately} the same dash-space pattern along the line,
% irrespective of the line length. The syntax is the following:
% \begin{flushleft}
% \cs{Dashline}\parg{first point}\parg{second point}\marg{dash length}
@@ -785,9 +791,8 @@ README.txt and curve2e-v161.sty.
% where \meta{first point} contains the coordinates of the starting point
% and \meta{second point} the absolute (cartesian) or relative (polar)
% coordinates of the ending point; of course the \meta{dash length},
-% which equals the dash gap, is mandatory. An optional asterisk used to
-% play a specific role with previous implementations;
-% it is maintained for backwards compatibility, but its use is now
+% which equals the dash gap, is mandatory. An optional asterisk is used to
+% be back compatible with previous implementations but its use is now
% superfluous; with the previous implementation of the code, in facts,
% if coordinates were specified in polar form, without the optional
% asterisk the dashed line was misplaced, while if the asterisk was
@@ -837,7 +842,7 @@ README.txt and curve2e-v161.sty.
\fi
% \end{macrocode}
%
-% A simpler |\Dotline| macro can draw a dotted line between two given
+% A simpler |\Dotline| macro draws a dotted line between two given
% points; the dots are rather small, therefore the inter dot distance is
% computed in such a way as to have the first and the last dot at the
% exact position of the dotted-line end-points; again the specified dot
@@ -845,13 +850,13 @@ README.txt and curve2e-v161.sty.
% that the first and last dots coincide with the line end points.
% Again if the second point coordinates are in polar form they are
% considered as relative to the first point.Since the dots must emerge
-% from the background of the drawing they should not be too small; they
-% must be seen; therefore their diameter cannot be tied to the unit
+% from the background of the drawing they should not be too small: they
+% must be seen; therefore their diameter cannot be tied to the unit
% length of the particular drawing, but must have at visible size; by
% default it is set to $0.5\,\mathrm{mm}$ (about 20 mills, in US units)
% but through an optional argument to the macro, it may be set to any
% desired size; remember that 1\,pt is about one third of a millimeter;
-% sometimes it might be too small; 1\,mm is a vary black dot, therefore
+% sometimes it might be too small; 1\,mm is a very black dot, therefore
% the user must pay attention when s/he specifies the dot diameter,
% so as not to exaggerate in either direction.
% The syntax is as follows:
@@ -876,11 +881,10 @@ README.txt and curve2e-v161.sty.
%
% Notice that vectors as complex numbers in their cartesian and polar
% forms always represent a point position referred to a local origin
-% of the axes; this is why in figures~\ref{fig:dashedlines} on
-% page~\pageref{fig:dashedlines} and~\ref{fig:dottedlines} on
-% page~\pageref{fig:dottedlines} the dashed and dotted lines that start
+% of the axes; this is why in figures~6 and~7 of the user manual
+% the dashed and dotted lines that start
% from the lower right corner of the graph grid, and that use polar
-% coordinates, are correctly put in their correct position thanks to the
+% coordinates, are put in their correct position thanks to the
% different behaviour obtained with the |\IsPolar| macro.
%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -895,7 +899,7 @@ README.txt and curve2e-v161.sty.
% |\SplitNod@| and its subsidiaries.
%
% Notice that package |eso-pic| uses |picture| macros in its definitions,
-% but its original macro |\LenToUnit| is incompatible with this
+% but its original macro |\LenToUnit| is incompatible with this
% |\GetCoord| macro; its function is to translate real lengths into
% coefficients to be used as multipliers of the current |\unitlength|; in
% case that the |eso-pic| had been loaded, at the |\begin{document}|
@@ -907,7 +911,7 @@ README.txt and curve2e-v161.sty.
\renewcommand\LenToUnit[1]{\strip@pt\dimexpr#1*\p@/\unitlength}}{}}%
% \end{macrocode}
% The above redefinition is delayed at |\AtBeginDocument| in order to
-% have the possibility to check the the |eso-pic| package had actually
+% have the possibility to check if the |eso-pic| package had actually
% been loaded. Nevertheless the code is defined here just because the
% original |eso-pic| macro was interfering with the algorithms of
% coordinate handling.
@@ -917,7 +921,7 @@ README.txt and curve2e-v161.sty.
% expanded arguments; expanding arguments allows to use macros to named
% points, instead of explicit coordinates; with this version of |curve2e|
% this facility is not fully exploited, but a creative user can use this
-% feature. Notice the usual trick to pass through a dummy macro that is
+% feature. Notice the usual trick to use a dummy macro that is
% defined within a group with expanded arguments, but where the group is
% closed by the macro itself, so that no traces remain behind after its
% expansion.
@@ -961,8 +965,8 @@ README.txt and curve2e-v161.sty.
% ordered pair or a polar form. We add also an optional argument to
% handle the increments outside the boxes.
% The new macro has the following syntax:\\[2ex]
-% \mbox{\cs{multiput}\oarg{displacement}\parg{initial}\texttt{(\meta{increment})}\marg{number}\marg{object}\oarg{handler}}\\[2ex]
-% where the optional \meta{displacement} is used to displace to whole
+% \mbox{\small\cs{multiput}\oarg{shift}\parg{initial}\texttt{(\meta{increment})}\marg{number}\marg{object}\oarg{handler}}\\[2ex]
+% where the optional \meta{shift} is used to displace to whole
% set of \meta{object}s from their original position;
% \meta{initial} contains the cartesian or polar coordinates
% of the initial point; \meta{increment} contains the cartesian or
@@ -973,7 +977,7 @@ README.txt and curve2e-v161.sty.
% used to control the current values of the horizontal and vertical
% increments.
% The new definition contains two |\put| commands where the second is
-% nested within a while-loop which in turn is within the argument of
+% nested within a while-loop which, in turn, is within the argument of
% the first |\put| command. Basically it is the same idea that the
% original macros, but now the increments are computed within the while
% loop, but outside the argument of the inner |\put| command. If the
@@ -985,7 +989,7 @@ README.txt and curve2e-v161.sty.
% function given by the |\xfp| package already loaded by |curve2e|. Of
% course it is the user responsibility to pay attention to the scales of
% the two axes and to write meaningful expressions; the figure and code
-% shown in the first part of this documentation show some examples:
+% shown in the user manual of this package display some examples:
% see the documentation |curve2e-manual.pdf| file.
% \begin{macrocode}
\RenewDocumentCommand{\multiput}{O{0,0} d() d() m m o }{%
@@ -1012,13 +1016,13 @@ README.txt and curve2e-v161.sty.
}
% \end{macrocode}
% And here it is the new |\xmultiput| command; remember: the internal
-% cycling \TeX\ counter |\@multicn| is now accessible as it was a
-% \LaTeX\ counter, in particular the user can access its contents
-% with a command such as |\value{multicnt}|. Such counter is stepped
-% up by one at each cycle, instead of being stepped down as in the
-% original |\multiput| command. The code is not so different from
-% the one used for the new version of |\multiput|, but it appears more
-% efficient and its code logically more readable.
+% cycling \TeX\ counter |\@multicnt| is now accessible with the name
+% |multicnt| as if it was a \LaTeX\ counter, in particular the user can
+% access its contents with a command such as |\value{multicnt}|. Such
+% counter is \emph{stepped up} at each cycle, instead of being
+% \emph{stepped down} as in the original |\multiput| command. The code is
+% not so different from the one used for the new version of |\multiput|,
+% but it appears more efficient and its code more easily readable.
% \begin{macrocode}
\NewDocumentCommand{\xmultiput}{O{0,0} d() d() m m o }{%
\IfNoValueTF{#2}{\PackageError{curve2e}{%
@@ -1045,17 +1049,18 @@ README.txt and curve2e-v161.sty.
% \end{macrocode}
% Notice that the internal macros |\R| and |\D|, (respectively the
% current point coordinates, in form of a complex number, where to put
-% the\meta{object}, and the current displacement to find the next point)
+% the \meta{object}, and the current displacement to find the next point)
% are accessible to the user both in the \meta{object} argument field and
% the \meta{handler} argument field. The code used in
-% page~\pageref{pag:orologio} shows how to create the hour marks of a
+% figure~18 if the user manual shows how to create the hour marks of a
% clock together with the rotated hour roman numerals.
+%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Vectors}
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The redefinitions and the new definitions for vectors are a little more
% complicated than with segments, because each vector is drawn as a
-% filled contour; the original \texttt{pict2e} 2004 macro checks if the
+% filled contour; the original \texttt{pict2e} 2004 macro checked if the
% slopes are corresponding to the limitations specified by Lamport
% (integer three digit signed numbers) and sets up a transformation in
% order to make it possible to draw each vector as an horizontal
@@ -1066,7 +1071,7 @@ README.txt and curve2e-v161.sty.
% contours that are eventually filled by the principal macro; each
% contour macro draws the vector with a \LaTeX\ or a PostScript styled
% arrow tip whose parameters are specified by default or may be taken
-% from the parameters taken from the|PSTricks| package if this one is
+% from the parameters taken from the |PSTricks| package if this one is
% loaded before |pict2e|; in any case we did not change the contour
% drawing macros because if they are modified the same modification is
% passed on to the arrows drawn with the |curve2e| package redefinitions.
@@ -1103,7 +1108,7 @@ README.txt and curve2e-v161.sty.
\DirOfVect\@Vect to\Dir@Vect
% \end{macrocode}
% In order to be compatible with the original \texttt{pict2e} we need to
-% transform the components of the vector direction in lengths with the
+% transform the components of the vector direction into lengths with the
% specific names |\@xdim| and |\@ydim|^^A--------! Really necessary?
% \begin{macrocode}
\YpartOfVect\Dir@Vect to\@ynum \@ydim=\@ynum\p@
@@ -1114,9 +1119,9 @@ README.txt and curve2e-v161.sty.
% of the vector inclination which is the real part of the vector
% direction.
% We use the floating point division function; since it yields a
-% ``factor''
-% We directly use it to scale the length of the vector. We finally
-% memorise the true vector length in the internal dimension |@tdB|
+% “factor” that we directly use to scale the length of the vector.
+% We finally memorise the true vector length in the internal dimension
+% |@tdB|
% \begin{macrocode}
\ifdim\d@mX\p@=\z@
\else\ifdim\d@mY\p@=\z@
@@ -1127,7 +1132,7 @@ README.txt and curve2e-v161.sty.
\fi
\@tdB=\@linelen
% \end{macrocode}
-% The remaining code is definitely similar to that of \texttt{pict2e};
+% The remaining code is definitely similar to that of |pict2e|;
% the real difference consists in the fact that the arrow is designed by
% itself without the stem; but it is placed at the vector end; therefore
% the first statement is just the transformation matrix used by the
@@ -1142,7 +1147,7 @@ README.txt and curve2e-v161.sty.
% \end{macrocode}
% Now we can restore the stem length that must be shortened by the
% dimension of the arrow; by examining the documentation of
-% \texttt{pict2e} we discover that we have to shorten it by an
+% |pict2e| we discover that we have to shorten it by an
% approximate amount of $AL$ (with the notations of \texttt{pict2e},
% figs~10 and~11); the arrow tip parameters are stored in certain
% variables with which we can determine the amount of the stem
@@ -1199,7 +1204,7 @@ README.txt and curve2e-v161.sty.
\VECTOR(\@tempb)(#2)\VECTOR(\@tempb)(#1)}\ignorespaces}
% \end{macrocode}
%
-% The \texttt{pict2e} documentation says that if the vector length is
+% The |pict2e| documentation says that if the vector length is
% zero the macro draws only the arrow tip; this may work with macro
% |\vector|, certainly not with |\Vector| and |\VECTOR|. This might be
% useful for adding an arrow tip to a circular arc. See the documentation
@@ -1210,9 +1215,9 @@ README.txt and curve2e-v161.sty.
% \subsection{Polylines and polygons}
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% We now define the polygonal line macro; its syntax is very simple:
-% \begin{flushleft}
-% \cs{polygonal}\oarg{join}\parg{$P_0$}\parg{$P_1$}\parg{$P_2$}%
-% \texttt{\dots}\parg{$P_n$}
+% \begin{flushleft}\ttfamily
+% \cs{polygonal}\oarg{join}\parg{$P_0$}\parg{$P_1$}\parg{$P_2$}...^^A
+%\parg{$P_n$}
% \end{flushleft}
% Remember: |\polyline| has been incorporated into |pict2e| 2009, but we
% redefine it so as to allow an optional argument to specify the line
@@ -1225,7 +1230,7 @@ README.txt and curve2e-v161.sty.
% \begin{macrocode}
\let\lp@r( \let\rp@r)
% \end{macrocode}
-% The first call to |\polyline|, besides setting the line joints,
+% The first call to |\polyline|, besides setting the line joins,
% examines the first point coordinates and moves the drawing position to
% this point; afterwards it looks for the second point coordinates; they
% start with a left parenthesis; if this is found the coordinates should
@@ -1326,12 +1331,12 @@ README.txt and curve2e-v161.sty.
% The next command is handy for debugging while editing one's
% drawing; it draws a red grid with square meshes that are ten drawing
% units apart; there is no graduation along the grid, since it is
-% supposed to be a debugging aid and the user should know what he/she is
+% supposed to be a debugging aid and the user should know what s/he is
% doing; nevertheless it is advisable to displace the grid by means of a
% |\put| command so that its grid lines coincide with graph
-% coordinates that are multiples of 10. Missing to do so the readings
+% coordinates that are multiples of~10. Missing to do so the readings
% become cumbersome. The |\RoundUp| macro provides to increase the
-% grid dimensions to integer multiples of ten.
+% grid dimensions to integer multiples of~ten.
% Actually the new definition of this command does not need a |put|
% command (although it is not prohibited to use it) because its syntax
% now is the following one
@@ -1342,7 +1347,7 @@ README.txt and curve2e-v161.sty.
% left corner is put at the origin of the canvas coordinates. Of course
% also the lower left corner offset is recommended to be specified with
% coordinates that are integer multiples of~10; this is particularly
-% important when the |picture| environment offset is specified wit non
+% important when the |picture| environment offset is specified with non
% integer multiple of~10 values.
% Actually, since both arguments are delimited with round parentheses,
% a single argument is assumed to contain the grid dimensions, while
@@ -1359,7 +1364,7 @@ README.txt and curve2e-v161.sty.
% and there is no need to repeat them to draw the grid. The new
% argument-less macro is named |\AutoGrid|, while the complete
% macro is |\GraphGrid| that requires its arguments as specified
-% before. The advantage of the availability of both commands,
+% above. The advantage of the availability of both commands,
% consists in the fact that |\AutoGrid| covers the whole canvas,
% while |\GraphGrid| may compose a grid that covers either the whole
% canvas or just a part of it. In both cases, though, it is necessary
@@ -1372,9 +1377,10 @@ README.txt and curve2e-v161.sty.
% The actual |\AutoGrid| command definition accepts two parenthesis
% delimited arguments, that are not being used in the macro expansion;
% in this way it is easier to replace |\GraphGrid| with |\AutoGrid| if
-% it is desired to do so. The opposite action, of corse is not so simple
+% it is desired to do so. The opposite action, of course is not so simple
% if the |\AutoGrid| command is not followed by one or two arguments
-% as |\GraphGrid| requires.
+% as |\GraphGrid| requires. Approximately |\AutoGrid| may be viewed as
+% a |\GraphGrid| version were both arguments are optional.
% \begin{macrocode}
\def\@picture(#1,#2)(#3,#4){%
\edef\pict@urcorner{#1,#2}% New statement
@@ -1404,10 +1410,9 @@ README.txt and curve2e-v161.sty.
% \end{macrocode}
% Rounding up is useful because also the grid margins fall on coordinates
-% multiples of 10.
+% multiples of~10.
% \begin{macrocode}
-\def\RoundUp#1modulo#2to#3{
-\edef#3{\fpeval{(ceil(#1/#2,0))*#2}}}%
+\def\RoundUp#1modulo#2to#3{\edef#3{\fpeval{(ceil(#1/#2,0))*#2}}}%
%
% \end{macrocode}
% The |\Integer| macro takes a possibly fractional number whose decimal
@@ -1417,7 +1422,10 @@ README.txt and curve2e-v161.sty.
% macro with a further point; if the argument is truly integer this point
% works as the delimiter of the integer part; if the argument being
% passed is fractional this extra point gets discarded as well as the
-% fractional part of the number.
+% fractional part of the number. This maro used to be used within the
+% definition of |\RoundUp|; with the |xfp| facilities the latter macro
+% does not need it any more, but it continues to be used in several other
+% macros.
% \begin{macrocode}
\def\Integer#1.#2??{#1}%
% \end{macrocode}
@@ -1426,41 +1434,41 @@ README.txt and curve2e-v161.sty.
% \section{Math operations on fractional operands}
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is not the place to complain about the fact that all programs of
-% the \TeX\ system used only integer arithmetics; now, with the 2018
+% the \TeX\ system use only integer arithmetics; now, with the 2018
% distribution of the modern \TeX\ system, package |xfp| is available:
-% this package resorts in the background to language \LaTeX\,3; this
-% language now can compute fractional number
-% operations coded in decimal, not in binary, and accepts also numbers
-% written in the usual way in computer science, that is as a fractional,
+% this package resorts in the background to language \LaTeX\,3; with this
+% language now it is possible to compute fractional number operations; the
+% numbers are coded in decimal, not in binary, and it is possible also to
+% use numbers written as in computer science, that is as a fractional,
% possibly signed, number followed by an expression that contains the
-% exponent to 10 necessary to (ideally) move the fractional separator
-% in one or the other direction according to the sign of the exponent of
-% 10; in other words the L3 library for floating point calculations
+% exponent of~10 necessary to (ideally) move the fractional separator
+% in one or the other direction according to the sign of the exponent
+% of~ 10; in other words the L3 library for floating point calculations
% accepts such expressions as \texttt{123.456}, \texttt{0.12345e3}, and
% \texttt{12345e-3}, and any other equivalent expression. If the first
% number is integer, it assumes that the decimal separator is to the
-% right of the rightmost digit of the digit string.
+% right of the rightmost digit of the numerical string.
%
% Floating point calculations may be done through the |\fpeval| L3
% function with a very simple syntax:
% \begin{flushleft}
% \cs{fpeval}\marg{mathematical expression}
% \end{flushleft}
-% where \meta{mathematical exression} can contain the usual algebraic
-% operation sings, |= - * / ** ^| and the function names of the most
+% where \meta{mathematical expression} can contain the usual algebraic
+% operation sings, |`+' - * / ** ^| and the function names of the most
% common algebraic, trigonometric, and transcendental functions; for
% direct and inverse trigonometric functions it accepts arguments in
% radians and in sexagesimal degrees; it accepts the group of
% rounding/truncating operators; it can perform several kinds of
% comparisons; as to now (Nov. 2019) the todo list includes the direct
% and inverse hyperbolic functions. The mantissa length of the floating
-% point operands amounts to 16 decimal digits. Further details may be
+% point operands amounts to~16 decimal digits. Further details may be
% read in the documentations of the |xfp| and |interface3| packages, just
% by typing into a command line window the command \texttt{texdoc
% \meta{document}}, where \meta{document} is just the name of the above
% named files without extension.
%
-% Furthermore we added a couple of more interface macros with the
+% Furthermore we added a couple of interface macros with the
% internal L3 floating point functions; |\fptest| and |\fpdowhile|.
% They have the following syntax:
%\begin{flushleft}\ttfamily\obeylines
@@ -1472,14 +1480,14 @@ README.txt and curve2e-v161.sty.
% be negated with the “not’ operator \texttt{!}; furthermore the logical
% results of these comparisons may be acted upon with the “and” operator
% \texttt{\&\&} and the “or” operator \texttt{||}. The \meta{true
-% code}, and \meta{code} are executed if or while the \meta{logical
-% expression} is true, while the \meta{false code} is executed if the
-% \meta{logical expression} is false
+% code}, and \meta{code} are executed if or while the
+% \meta{logical expression} is true, while the \meta{false code} is
+% executed if the \meta{logical expression} is false
%
% Before the availability of the |xfp| package, it was necessary to fake
% fractional number computations by means of the native e-\TeX\ commands
% |\dimexpr|, i.e. to multiply each fractional number by the unit |\p@|
-% (1\,pt) so as to get a length; operate un such lengths, and then
+% (1\,pt) so as to get a length; operate on such lengths, and then
% stripping off the `pt' component from the result; very error prone and
% with less precision as the one that the modern decimal floating point
% calculations can do. Of course it is not so important to use fractional
@@ -1489,10 +1497,10 @@ README.txt and curve2e-v161.sty.
% new floating point functionality, even if this maintains the |curve2e|
% functionality, but renders this package unusable with older \LaTeX\
% kernel installations. It has already been explained that the input of
-% this up to date version of |curve2e| is aborted if the |xfp| package is
-% not available, but the previous version 1.61 version is loaded; very
-% little functionality is lost, but, evidently, this new version performs
-% in a better way.
+% this up-to-date version of |curve2e| is aborted if the |xfp| package is
+% not available, but the previous version 1.61 version is loaded in its
+% place; very little functionality is lost, but, evidently, this new
+% version performs in a better way.
%
%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1507,7 +1515,7 @@ README.txt and curve2e-v161.sty.
\def\DividE#1by#2to#3{\edef#3{\fpeval{#1 / #2}}}
% \end{macrocode}
% In order to avoid problems with divisions by zero, or with numbers that
-% yield results to large to be used as multipliers of lengths, it would
+% yield results too large to be used as multipliers of lengths, it would
% be preferable that the above code be preceded or followed by some tests
% and possible messages. Actually we decided to avoid such tests and
% messages, because the internal L3 functions already provide some. This
@@ -1543,8 +1551,11 @@ README.txt and curve2e-v161.sty.
%
% The next macro uses the |\fpeval| macro to get
% the numerical value of a measure in points. One has to call |\Numero|
-% with a control sequence and a dimension; the dimension value in points
-% is assigned to the control sequence.
+% with a control sequence and a dimension, with the following syntax;
+% the dimension value in points is assigned to the control sequence.
+%\begin{flushleft}
+%\cs{Numero}\meta{control sequence}\meta{dimension}
+%\end{flushleft}
% \begin{macrocode}
\unless\ifdefined\Numero
\def\Numero#1#2{\edef#1{\fpeval{round(#2,6)}}\ignorespaces}%
@@ -1566,11 +1577,11 @@ README.txt and curve2e-v161.sty.
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% We now start with trigonometric functions. In previous versions of
% this package we defined the macros |\SinOf|, |\CosOf| and |\TanOf|
-% (|\CotOf| does not appear so essential) by means of the parametric
+% (|\CotOf| did not appear so essential) by means of the parametric
% formulas that require the knowledge of the tangent of the half angle.
% We wanted, and still want, to specify the angles in sexagesimal
% degrees, not in radians, so that accurate reductions to the main
-% quadrants are possible. The formulas are
+% quadrants are possible. The bisection formulas are
% \begin{eqnarray*}
% \sin\theta &=& \frac{2}{\cot x + \tan x}\\
% \cos\theta &=& \frac{\cot x - \tan x}{\cot x + \tan x}\\
@@ -1589,7 +1600,7 @@ README.txt and curve2e-v161.sty.
% Matter of facts, we compared the results (with 6 fractional digits) the
% computations executed with the \texttt{sind} function name, in order to
% use the angles in degrees, and a table of trigonometric functions with
-% the same number of fractional digits, and we di not find any
+% the same number of fractional digits, and we did not find any
% difference, not even one unit on the sixth decimal digit. Probably the
% |\fpeval| computations, without rounding before the sixteenth
% significant digit, are much more accurate, but it is useless to have a
@@ -1608,8 +1619,7 @@ README.txt and curve2e-v161.sty.
% \end{macrocode}
%
%
-% As of today the anomaly (angle) of a complex number may not be
-% necessary, but it might become useful in the future; therefore with
+% Sometimes tie argument of a complex number is necessary; therefore with
% macro \verb|\ArgOfVect| we calculate the four quadrant arctangent (in
% degrees) of the given vector taking into account the sings of the
% vector components. We use the |xfp| |atand| with two arguments, so
@@ -1620,23 +1630,22 @@ README.txt and curve2e-v161.sty.
%\mbox{if\quad } x + \mathrm{i}y = M\mathrm{e}^{\mathrm{i}\varphi}\mbox{\quad then\quad }
%\varphi = \mathtt{\string\fpeval\{atand(\mbox{$y$},\mbox{$x$})\}}
%\]
-% The |\ArgOfVect| macro receives on input a vector;
-% from the signs of the horizontal and vertical components it determines
-% the ratio and from this ratio the arctangent; but before doing this it
-% tests the components in order to determine the quadrant of the vector
-% tip; depending on signs it possibly adds what is necessary to determine
-% the angle in the range $-180^\circ < \varphi \le +180^\circ$. If both
-% components are zero, the angle is undefined, but for what concerns
-% |curve2e| it is assigned the angle $0^circ$.
+% The |\ArgOfVect| macro receives on input a vector and determines its
+% four quadrant argument; it only checks if both vector components are
+% zero, because in this case nothing is done, and the argument is
+% assigned the value zero.
% \begin{macrocode}
\def\ArgOfVect#1to#2{\GetCoord(#1){\t@X}{\t@Y}%
-\fptest{\t@X=\z@ && \t@Y=\z@}{\edef#2{0}}{%
+\fptest{\t@X=\z@ && \t@Y=\z@}{\edef#2{0}%
+\PackageWarning{curve2e}{Null vector}{Check your data\Messagebreak
+Computations go on, but the results may be meaningless}}{%
\edef#2{\fpeval{round(atand(\t@Y,\t@X),6)}}}\ignorespaces}
% \end{macrocode}
-% The anomaly of a null vector is meaningless, but we set it to zero in
-% case that input data are wrong. Computations go on anyway, but the
-% results my be worthless; such strange results are an indications that
-% some controls on the code should be done.
+% Since the argument of a null vector is meaningless, we
+% set it to zero in case that input data refer to such a null vector.
+% Computations go on anyway, but the results may be meaningless; such
+% strange results are an indications that some controls on the code
+% should be done by the user.
%
% It is worth examining the following table, where the angles of nine
% vectors $45^\circ$ degrees apart from one another are computed from
@@ -1687,7 +1696,7 @@ README.txt and curve2e-v161.sty.
% The difference between the |pict2e| |\arc| definition consists in a
% very different syntax:
%\begin{flushleft}
-%\cs{arc}\texttt{[}\meta{start angle}\texttt{,}\meta{end angle}\texttt{]}\marg{radius}
+%\cs{arc}\Oarg{\meta{start angle}\texttt{,}\meta{end angle}}\marg{radius}
%\end{flushleft}
% and the center is assumed to be at the coordinate established with a
% required |\put| command; moreover the difference in specifying angles
@@ -1727,7 +1736,7 @@ README.txt and curve2e-v161.sty.
%\]
% Even the imaginary unit is indicated with $\mathrm{i}$ by the
% mathematicians and with $\mathrm{j}$ by the engineers. In spite of
-% these differences, these objects, the \emph{complex numbers}, are used
+% these differences, such objects, the \emph{complex numbers}, are used
% without any problem by both mathematicians and engineers.
%
% The important point is that these objects can be summed, subtracted,
@@ -1746,8 +1755,8 @@ README.txt and curve2e-v161.sty.
% \mathrm{e}^{\mathrm{j}\phi} = \cos\phi+\mathrm{j}\sin\phi
% \]
%
-% The magnitude of a vector is determined by taking the square root of
-% a function of the real and the imaginary parts; see further on.
+% The magnitude of a vector is determined by taking the positive square
+% root of the sum of the squared real and the imaginary parts (often called \emph{Pitagorean sum}); see further on.
%
% It's better to represent each complex number with one control sequence;
% this implies frequent assembling and disassembling the pair of real
@@ -1782,6 +1791,7 @@ README.txt and curve2e-v161.sty.
% quadratic convergence, five iterations were more than sufficient. When
% one of the components was zero, the Newton iterative process was
% skipped.
+%
% With the availability of the |xfp| package and its floating point
% algorithms it is much easier to compute the magnitude of a complex
% number; since these algorithms allow to use very large numbers, it is
@@ -1850,8 +1860,8 @@ README.txt and curve2e-v161.sty.
\MakeVectorFrom\t@X\t@Y to#2\ignorespaces}%
% \end{macrocode}
%
-% Sometimes it is necessary to scale a vector by an arbitrary real
-% factor; this implies scaling both the real and imaginary part of the
+% Sometimes it is necessary to scale (multiply) a vector by an arbitrary
+% real factor; this implies scaling both the real and imaginary part of the
% input given vector.
% \begin{macrocode}
\def\ScaleVect#1by#2to#3{\GetCoord(#1)\t@X\t@Y
@@ -1893,7 +1903,7 @@ README.txt and curve2e-v161.sty.
% conjugate of the second operand; it would be nice if we could use the
% usual postfixed asterisk notation for the complex conjugate, but in the
% previous versions of this package we could not find a simple means for
-% doing so. Therefore the previous version contained e definition of the
+% doing so. Therefore the previous version contained a definition of the
% |\MultVect| macro that followed a simple syntax with an optional
% asterisk \emph{prefixed} to the second operand. Its syntax, therefore,
% allowed the following two forms:
@@ -1903,7 +1913,7 @@ README.txt and curve2e-v161.sty.
%\end{flushleft}
%
% With the availability of the |xparse| package and its special argument
-% descriptors for the arguments, we were able to define a different
+% descriptors for the arguments, we were able to define a different
% macro, |\Multvect|, with both optional positions for the asterisk:
% \emph{after} and \emph{before}; its syntax allows the following four
% forms:
@@ -1922,12 +1932,12 @@ README.txt and curve2e-v161.sty.
%
% First we define the new macro: it receives the three arguments, the
% first two as balanced texts; the last one must always be a macro,
-% therefore a single (complex) token and doe not require braces, even
+% therefore a single (complex) token that does not require braces, even
% if it is not forbidden to use them. Asterisks are optional.
-% The input arguments are transformed into couples of anomaly and
+% The input arguments are transformed into couples of argument and
% modulus; this makes multiplication much simpler as the output modulus
-% is just the product of the input moduli, while the output anomaly is
-% just the sum of input anomalies; eventually it is necessary to
+% is just the product of the input moduli, while the output argument is
+% just the sum of input arguments; eventually it is necessary to
% transform this polar version of the result into an ordered couple of
% cartesian values to be assigned to the output macro.
% In order to maintain the single macros pretty simple we need a couple
@@ -1938,7 +1948,7 @@ README.txt and curve2e-v161.sty.
%\cs{ModAndAngleOfVect}\meta{input vector} to \meta{output modulus} and \meta{output angle in degrees}
%\end{flushleft}
% The output quantities are always macros, so they do not need balanced
-% bracing; angles in degrees are always preferred because, on case of
+% bracing; angles in degrees are always preferred because, in case of
% necessity, they are easy to reduce to the range $-180^\circ < \alpha \leq +180^\circ$.
% \begin{macrocode}
\def\ModAndAngleOfVect#1to#2and#3{\ModOfVect#1to#2\relax
@@ -1947,14 +1957,13 @@ README.txt and curve2e-v161.sty.
% We name a counter in the upper range accessible with all the modern
% three typesetting engines, |pdfLaTeX|, |LuaLaTeX| and |XeLaTeX|.
% \begin{macrocode}
-\countdef\MV@C=2560\relax
+\newcount\MV@C
% \end{macrocode}
-% The user is warned; The counter register number is sort of casual,
-% but it is not excluded that its name or number get in conflict with
-% other macros from other packages. I would be grateful is such an event
-% takes place.
+% This \TeX\ counter definition uses the property of modern typesetting
+% engines that use the \eTeX\ extensions, that can define a very large
+% number of counters.
%
-% Nov comes the real macro\footnote{A warm thank-you to Enrico Gregorio,
+% Now comes the real macro\footnote{A warm thank-you to Enrico Gregorio,
% who kindly attracted my attention on the necessity of braces when using
% this kind of macro; being used to the syntax with delimited arguments
% I had taken the bad habit of avoiding braces. Braces are very
@@ -1986,9 +1995,9 @@ README.txt and curve2e-v161.sty.
\unless\ifx\MV@c\empty\Multvect{#1}{#2}*{#3}\else
\Multvect{#1}{#2}{#3}\fi}
% \end{macrocode}
-% Testing of both the new and the old macros show that they behave as
+% Testing of both the new and the old macros shows that they behave as
% expected, although, using real numbers for trigonometric functions,
-% some small rounding unit on the sixth decimal digit still remain;
+% some small rounding unit on the sixth decimal digit still remains;
% nothing to worry about with a package used for drawing.
%
%
@@ -2014,7 +2023,7 @@ README.txt and curve2e-v161.sty.
% possibly slightly more robust. They match the corresponding macros for
% multiplying two vectors.
%
-%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%>>>>>>>>>>>
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Arcs and curved vectors}
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% We are now in the position of really doing graphic work.
@@ -2076,13 +2085,12 @@ README.txt and curve2e-v161.sty.
\@@Arc\strokepath\ignorespaces}%
% \end{macrocode}
% And the new macro |\@@Arc| starts with moving the drawing point to the
-% first% point and does everything needed for drawing the requested arc,
-% except stroking it; we leave the \texttt{stroke} command to the
+% first point and does everything needed for drawing the requested arc,
+% except stroking it; we leave the |\strokepath| command to the
% completion of the calling macro and nobody forbids to use the |\@@Arc|
% macro for other purposes.
% \begin{macrocode}
-\def\@@Arc{%
-\pIIe@moveto{\@pPunX\unitlength}{\@pPunY\unitlength}%
+\def\@@Arc{\pIIe@moveto{\@pPunX\unitlength}{\@pPunY\unitlength}%
% \end{macrocode}
% If the aperture is larger than $180^\circ$ it traces a semicircle in
% the right direction and correspondingly reduces the overall aperture.
@@ -2111,7 +2119,7 @@ README.txt and curve2e-v161.sty.
% control points lay on the perpendicular to the vectors that join the
% arc center to the starting and end points respectively.
%
-% With reference to figure~11 of the documentation |curve2e-manual.pdf|
+% With reference to figure~11 of the user manual |curve2e-manual.pdf|
% file, the points $P_1$ and $P_2$
% are the arc end-points; $C_1$ and $C_2$ are the Bézier-spline
% control-points; $P$ is the arc mid-point, that should be distant from
@@ -2188,7 +2196,7 @@ README.txt and curve2e-v161.sty.
% specific option to the \texttt{pict2e} package.
%
% But the arc drawing done here shortens it so as not to overlap on the
-% arrow(s); the only arrow (or both ones) are also lightly tilted in
+% arrow tip(s); the only arrow tip (or both tips) are also lightly tilted in
% order to avoid the impression of a corner where the arc enters the
% arrow tip.
%
@@ -2197,7 +2205,7 @@ README.txt and curve2e-v161.sty.
% anything else but: (a) determining the end point and its direction;
% (b) determining the arrow length as an angular quantity, i.e. the arc
% amplitude that must be subtracted from the total arc to be drawn;
-% (c) the direction of the arrow should be corresponding to the tangent
+% (c) the direction of the arrow should correspond to the tangent
% to the arc at the point where the arrow tip is attached; (d) tilting
% the arrow tip by half its angular amplitude; (e) determining the
% resulting position and direction of the arrow tip so as to draw a zero
@@ -2223,7 +2231,7 @@ README.txt and curve2e-v161.sty.
\endgroup\ignorespaces}%
% \end{macrocode}
%
-% The single arrowed arc is defined with the following long macro where
+% The single arrow tiped arc is defined with the following long macro where
% all the described operations are performed more or less in the
% described succession; probably the macro requires a little cleaning,
% but since it works fine we did not try to optimise it for time or
@@ -2278,7 +2286,7 @@ README.txt and curve2e-v161.sty.
% \end{macrocode}
%
% The macro for the arc terminated with arrow tips at both ends is again
-% very similar, except it is necessary to repeat the arrow tip
+% very similar, but it is necessary to repeat the arrow tip
% positioning also at the starting point. The |\@@Arc| macro draws the
% curved stem.
% \begin{macrocode}
@@ -2335,7 +2343,7 @@ README.txt and curve2e-v161.sty.
% \end{macrocode}
%
% It must be understood that the curved vectors, the above circular arcs
-% terminated with an arrow tip at one or both ends, have a nice
+% terminated with an arrow tips at one or both ends, have a nice
% appearance only if the arc radius is not too small, or, said in a
% different way, if the arrow tip angular width does not exceed a
% maximum of a dozen degrees (and this is probably already too much); the
@@ -2347,18 +2355,18 @@ README.txt and curve2e-v161.sty.
% \subsection{General curves}
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The most used method to draw curved lines with computer programs is to
-% connect several simple curved lines, general ``arcs'', one to another
+% connect several simple curved lines, general “arcs”, one to another
% generally maintaining the same tangent at the junction. If the
% direction changes we are dealing with a cusp.
%
% The simple general arcs that are directly implemented in every program
-% that display typeset documents, are those drawn with the parametric
+% that displays typeset documents, are those drawn with the parametric
% curves called \emph{Béźier splines}; given a sequence of points in the
% $x,y$ plane, say $P_0, P_1, P_2, p_3, \dots$ (represented as coordinate
% pairs, i.e. by complex numbers), the most common Bézier splines are the
% following ones:
% \begin{align}
-% \mathcal{B}_1 &= P_0(1-t) + P_1t \label{equ:B-1} \\
+% \mathcal{B}_1 &= P_0(1-t) + P_1t \label{equ:B-1} \\
% \mathcal{B}_2 &= P_0(1-t)^2 + P_1 2(1-t)t + P_2t^2 \label{equ:B-2} \\
% \mathcal{B}_3 &= P_0(1-t)^3 + P_1 3(1-t)^2t +P_2 3(1-t)t^2 +P_3t^3
% \label{equ:B-3}
@@ -2383,7 +2391,8 @@ README.txt and curve2e-v161.sty.
% cubic splines as well as a set of quadratic splines (fonts are a good
% example: Adobe Type~1 fonts have their contours described by cubic
% splines, while TrueType fonts have their contours described with
-% quadratic splines; at naked eye it is impossible to notice the difference).
+% quadratic splines; at naked eye it is impossible to notice the
+% difference).
%
% Each program that processes the file to be displayed is capable of
% drawing first order Bézier splines (segments) and third order Bézier
@@ -2396,7 +2405,7 @@ README.txt and curve2e-v161.sty.
% arcs. At least with |pdftex|, quadratic arcs must be simulated with a
% clever use of third order Bézier splines.
%
-% Notice that \LaTeXe\ environment |picture| by itself is capable of
+% Notice that the \LaTeXe\ environment |picture| by itself is capable of
% drawing both cubic and quadratic Bézier splines as single arcs; but it
% resorts to ``poor man'' solutions. The |pict2e| package removes all the
% old limitations and implements the interface macros for sending the
@@ -2428,13 +2437,13 @@ README.txt and curve2e-v161.sty.
% Actually the above macro is a special case of concatenation of the
% triplet formed by macros |\StartCurve|, |\CurveTo| and|\CurveFinish|;
% the second macro can be repeated an arbitrary number of times.
-% In any case the directions specified with the direction arguments, both
-% here and with the more general macro|\Curve|, the angle between the
-% indicated tangent and the arc chord may give raise to some little
-% problems when they are very close to 90° in absolute value. Some
-% control is exercised on these values, but some tests might fail if the
-% angle derives from computations; this is a good place to use polar
-% forms for the direction vectors.
+% In any case the directions specified with the direction arguments
+% the angle between the indicated tangent and the arc chord may give
+% raise to some little problems when they are very close to 90° in
+% absolute value. Some control is exercised on these values, but some
+% tests might fail if the angle derives from other calculations; this
+% is a good place to use polar forms for the direction vectors. The
+% same comments apply also to the more general macro |\Curve|,
%
% The first macro initialises the drawing and the third one strokes it;
% the real work is done by the second macro. The first macro initialises
@@ -2448,8 +2457,8 @@ README.txt and curve2e-v161.sty.
% better than stroking the curve before the cusp and then starting
% another curve, because the curve joining point at the cusp is not
% stroked with the same command, therefore we get two superimposed curve
-% terminations. We therefore need another small macro |\ChangeDir| to
-% perform this task.
+% terminations. To avoid this imperfection, we need another small macro
+% |\ChangeDir| to perform this task.
%
% It is necessary to recall that the direction vectors point to the
% control points, but they do not define the control points themselves;
@@ -2535,14 +2544,14 @@ README.txt and curve2e-v161.sty.
% since the macro provides to normalise it to unity; \meta{$K_0$} and
% \meta{$K_1$} are the distances of the control points from their
% respective node points; they must be positive integers or fractional
-% numbers. If \meta{$K_1$} is a number must be enclosed in curly braces,
+% numbers. If \meta{$K_1$} is a number, it must be enclosed in curly braces,
% while if it is a macro name (containing the desired fractional or
% integer value) there is no need for braces.
%
-% This macro uses the input information to use the internal |pict2e|
-% macro |\pIIe@curveto| with the proper arguments, and to save the final
-% direction into the same |\@Dzero| macro for successive use of other
-% arc-drawing macros.
+% This macro uses the input information in order to activate the internal
+% |pict2e| macro |\pIIe@curveto| with the proper arguments, and to save
+% the final direction into the same |\@Dzero| macro for successive use
+% of other arc-drawing macros.
% \begin{macrocode}
\def\CbezierTo#1WithDir#2AndDists#3And#4{%
\GetCoord(#1)\@tX\@tY \MakeVectorFrom\@tX\@tY to\@Puno
@@ -2572,8 +2581,8 @@ README.txt and curve2e-v161.sty.
% \end{macrocode}
%
-% An example of use is shown in figure~13 of the |curve2e-manual.pdf| file;
-% notice that the tangents at the end points
+% An example of use is shown in figure~13 of the user manual
+% |curve2e-manual.pdf| file; notice that the tangents at the end points
% are the same for the black curve drawn with |\CurveBetween| and the
% five red curves drawn with |\CbezierBetween|; the five red curves
% differ only for the distance of their control point $C_0$ from the
@@ -2584,11 +2593,11 @@ README.txt and curve2e-v161.sty.
% distances of the control points are difficult to estimate and require a
% number of cut-and-try experiments.
%
-%
% The ``smarter'' curve macro comes next; it is supposed to determine the
% control points for joining the previous point (initial node) with the
-% specified direction to the next point with another specified direction
-% (final node).
+% specified direction to the next point (final node) with another
+% specified direction.
+
% Since the control points are along the specified directions, it is
% necessary to determine the distances from the adjacent curve nodes.
% This must work correctly even if nodes and directions imply an
@@ -2642,7 +2651,7 @@ README.txt and curve2e-v161.sty.
\def\strip@semicolon#1;{\def\@tempB{#1}}
% \end{macrocode}
% By changing the tension values we can achieve different results: see
-% figure~\ref{fig:tensions} on page~\pageref{fig:tensions}.
+% figure~14 in the user manual |curve2e-manual.pdf|.
%
% We use the formula we got for arcs~\eqref{equ:corda}, where the half
% chord is indicated with $s$, and we derive the necessary distances:
@@ -2750,9 +2759,9 @@ README.txt and curve2e-v161.sty.
{\@XCPuno\unitlength}{\@YCPuno\unitlength}%
{\@XPuno\unitlength}{\@YPuno\unitlength}\egroup
% \end{macrocode}
-% It does not have to stroke the curve because other Bézier splines
+% It does not have to stroke the curve because other Bézier splines
% might still be added to the path. On the opposite it memorises the
-% final point as the initial point of the next spline
+% final point to be used as the initial point of the next spline
% \begin{macrocode}
\CopyVect\@Puno to\@Pzero
\CopyVect\@Duno to\@Dzero
@@ -2764,7 +2773,7 @@ README.txt and curve2e-v161.sty.
% starred and unstarred; the former fills the curve path with the locally
% selected color, while the latter just strokes the path. Both
% recursively examine an arbitrary list of nodes and directions; node
-% coordinates are grouped within regular parentheses while direction
+% coordinates are grouped within round parentheses while direction
% components are grouped within angle brackets. The first call of the
% macro initialises the drawing process and checks for the next node and
% direction; if a second node is missing, it issues a warning message and
@@ -2820,14 +2829,14 @@ README.txt and curve2e-v161.sty.
% the control points, and even with this added information the macro
% approaches the sine wave with less accuracy. At the same time for many
% applications the |\Curve| recursive macro proves to be much easier to
-% use than with single arcs drawn with the |\CbezierBetween| macro.
+% use than single arcs drawn with the |\CbezierBetween| macro.
%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Quadratic splines}
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% We want to create a recursive macro with the same properties as the
% above described |\Curve| macro, but that uses quadratic splines; we
-% call it |\Qurve| so that the initial macro name letter reminds us of
+% call it |\Qurve| so that the macro name initial letter reminds us of
% the nature of the splines being used. For the rest they have an almost
% identical syntax; with quadratic splines it is not possible to specify
% the distance of the control points from the extrema, since quadratic
@@ -2867,12 +2876,12 @@ README.txt and curve2e-v161.sty.
% Notice that in case of long paths it might be better to use the single
% macros |\StartCurveAt|, |\QurveTo|, |\ChangeDir| and |\CurveFinish|
% (or |\FillCurve|), with their respective syntax, in such a way that a
-% long list % of node-direction specifications passed to |\Qurve| may be
+% long list of node-direction specifications passed to |\Qurve| may be
% split into shorter input lines in order to edit the input data in a
% more comfortable way.
%
%
-% The macro that does everything is |\QurveTo|. it starts with reading
+% The macro that does everything is |\QurveTo|. It starts by reading
% its arguments received through the calling macro |\@Qurve|
% \begin{macrocode}
\def\QurveTo#1WithDir#2{%
@@ -2911,10 +2920,9 @@ README.txt and curve2e-v161.sty.
% \end{macrocode}
% We check if the two directions point to the same half plane; this
% implies that these rotated directions point to different sides of the
-% chord vector; all this is equivalent that the two direction Y
-% components have opposite signs, so that their product is strictly
-% negative, while the two
-% X components product is not negative.
+% chord vector; all this is equivalent to the fact that the two direction
+% Y components have opposite signs, so that their product is strictly
+% negative, while the two X components product is not negative.
% \begin{macrocode}
\MultiplyFN\@DXpzero by\@DXpuno to\@XXD
\MultiplyFN\@DYpzero by\@DYpuno to\@YYD
@@ -2948,7 +2956,7 @@ README.txt and curve2e-v161.sty.
% lines.
%\begin{subequations}
%\begin{align}
-% t \cos\phi_0 - s \cos\phi_1 &= c\\
+% t \cos\phi_0 - s \cos\phi_1 &= c\\
% t \sin\phi_0 - s \sin\phi_1 &= 0
%\end{align}
%\end{subequations}
@@ -2977,7 +2985,7 @@ README.txt and curve2e-v161.sty.
\MultiplyFN\@tempC by\@SDzero to \@YC
\ModOfVect\@XC,\@YC to\@KC
% \end{macrocode}
-% Now we have the coordinates and the module of the intersection point
+% Now we have the coordinates and the module of the intersection point
% vector taking into account the rotation of the real axis; getting back
% to the original coordinates before rotation, we get:
% \begin{macrocode}
@@ -2987,14 +2995,14 @@ README.txt and curve2e-v161.sty.
\GetCoord(\@Puno)\@XPuno\@YPuno
\GetCoord(\@CP)\@XCP\@YCP
% \end{macrocode}
-% We have now the coordinates of the two extrema point of the quadratic
-% arc and of the control point. Keeping in mind that the symbols $P_0$,
-% $P_1$ and $C$ denote geometrical points but also their coordinates as
-% ordered pairs of real numbers (i.e. they are complex numbers) we have
+% We have now the coordinates of the two end points of the quadratic
+% arc and of the single control point. Keeping in mind that the symbols
+% $P_0$, $P_1$ and $C$ denote geometrical points but also their coordinates
+% as ordered pairs of real numbers (i.e. they are complex numbers) we have
% to determine the parameters of a cubic spline that with suitable
-% values get simplifications in its parametric equation so that it
+% values gets simplifications in its parametric equation so that it
% becomes a second degree function instead of a third degree one. It is
-% possible, in spite of the fact the it appears impossible that e cubic
+% possible, even if it appears impossible that e cubic
% form becomes a quadratic one; we should determine the values of $P_a$
% and $P_b$ such that:
%\[
@@ -3027,7 +3035,7 @@ README.txt and curve2e-v161.sty.
% the conditional statements with which we started these calculations;
% eventually we close the group we opened at the beginning and we copy
% the terminal node information (position and direction) into the
-% 0-labelled macros that indicate the starting point of the next arc.
+% zero-labelled macros that indicate the starting point of the next arc.
% \begin{macrocode}
\pIIe@curveto\@ovro\@ovri\@clnwd\@clnht\@xdim\@ydim
\fi\fi\egroup
@@ -3045,26 +3053,25 @@ README.txt and curve2e-v161.sty.
% specified position' \cs{Zbox} puts a symbol in math mode a little
% displaced in the proper direction relative to a specified position.
% They are just handy to label certain objects in a \texttt{picture}
-% diagram, but they are not part of the \texttt{curve2e} package.} in
-% figure~16 created with the code shown in the same page as the figure.
+% diagram, but they are not part of the \texttt{curve2e} package.}
+% created with the code shown in the same page as the figure.
%
% Notice also that the inflexed line is made with two arcs that meet at
% the inflection point; the same is true for the line that resembles
% a sine wave. The cusps of the inner border of the green area are
-% obtained with the usual optional star already used also with the
+% obtained with the usual optional argument already used also with the
% |\Curve| recursive macro.
%
-% The ``circle'' inside the square frame is visibly different from a real
+% The “circle” inside the square frame is visibly different from a real
% circle, in spite of the fact that the maximum deviation from the true
% circle is just about 6\% relative to the radius; a quarter circle
% obtained with a single parabola is definitely a poor approximation of a
% real quarter circle; possibly by splitting each quarter circle in three
% or four partial arcs the approximation of a real quarter circle would be
-% much better. On the right of figure~\ref{fig:quadratic-arcs} on
-% page~\pageref{fig:quadratic-arcs} it is possible to compare a “circle”
-% obtained with quadratic arcs with the the internal circle obtained with
-% cubic arcs; the difference is easily seen even without using measuring
-% instruments.
+% much better. On the right of figure~16 of the user manual it is possible
+% to compare a “circle” obtained with quadratic arcs with the the internal
+% circle obtained with cubic arcs; the difference is easily seen even
+% without using measuring instruments.
%
% With quadratic arcs we decided to avoid defining specific macros
% similar to |\CurveBetween| and |\CbezierBetween|; the first macro would
@@ -3080,11 +3087,15 @@ README.txt and curve2e-v161.sty.
% really help the user to draw his/her diagrams with more agility; it
% will be the accumulated experience to decide if this is true.
%
-% As a personal experience we found very comfortable to draw ellipses and
+% As a personal experience I found very comfortable to draw ellipses and
% to define macros to draw not only such shapes or filled elliptical
% areas, but also to create “legends” with coloured backgrounds and
-% borders. But this is an application of the functionality implemented in
-% this package.
+% borders. But this is just an application of the functionality
+% implemented in this package. In 2020 I added to CTAN another
+% specialized package, |euclideangeometry.sty| with its manual
+% |euclideangeometry-man.pdf| that uses the facilities of |curve2e|
+% to draw complex diagrams that plot curves and others that solve some
+% geometrical problems dealing with ellipses.
%
%\iffalse
%</package>
@@ -3104,54 +3115,73 @@ README.txt and curve2e-v161.sty.
The package bundle curve2e is composed of the following files
curve2e.dtx
-curve2e.pdf
-README.txt
curve2e-manual.tex
+
+The derived files are
+
+curve2e.sty
+curve2e-v161.sty
+curve2e.pdf
curve2e-manual.pdf
+README.txt
-curve2e.dtx is the documented TeX source file of file curve2e.sty; you
-get curve2e.sty, curve2e.pdf, and curve2e-v161.sty by running pdflatex
-on curve2e.dtx. The curve2e-manual files contain the user manual; in
-this way the long preliminary descriptive part has been transferred to
-a shorter dedicated file, and the “normal” user should have enough
-information to use the package. Th curve2e.pdf file, extracted from
-the .dtx one, contains the code documentation and is intended for the developers, or for the curious advanced users.
+Compile curve2e.dtx and curve2e-manual.tex two or three times until
+all labels and citation keys are completely resolved.
-README.txt, this file, contains general information.
+Move curve2e.dtx and curve2e-manual.tex to ROOT/source/latex/curve2e/
+Move curve2e.pdf and curve2e-manual.pdf to ROOT/doc/latex/curve2e/
+Move curve2e.sty and curve2e-v161.sty to ROOT/tex/latex/curve2e/
+Move README.txt to ROOT/doc/latex/curve2e/
+
+curve2e.dtx is the documented TeX source file of the derived files
+curve2e.sty, curve2e-v161.sty and README.txt.
+
+You get curve2e.sty, curve2e.pdf, curve2e-v161.sty, and README.txt
+by running pdflatex on curve2e.dtx.
-This bundle contains also package curve2e-v161.sty that is a previous
-version of this package; see below why the older version might become
-necessary to the end user.
+The curve2e-manual files contains the user manual; in
+this way the long preliminary descriptive part has been transferred to
+a shorter dedicated file, and the “normal” user should have enough
+information to use the package. Th curve2e.pdf file, extracted from
+the .dtx one, contains the code documentation and is intended for the
+developers, or for the curious advanced users. For what concerns
+curve2e-v161.sty is a previous version of this package; see below why
+the older version might become necessary to the end user.
+
+README.txt, this file, contains general information.
+This bundle contains also package curve2e-v161.sty, a roll-back
+version needed in certain rare cases.
Curve2e.sty is an extension of the package pict2e.sty which extends the
standard picture LaTeX environment according to what Leslie Lamport
specified in the second edition of his LaTeX manual (1994).
-This further extension curve2e.sty allows to draw lines and vectors
-with any non integer slope parameters, to draw dashed lines of any
-slope, to draw arcs and curved vectors, to draw curves where just
-the interpolating nodes are specified together with the slopes at
-such nodes; closed paths of any shape can be filled with color; all
-coordinates are treated as ordered pairs, i.e. 'complex numbers';
-coordinates may be expressed also in polar form. Coordinates may be
-specified with macros, so that editing any drawing is rendered much
-simpler: any point specified with a macro is modified only once in
+This further extension curve2e.sty to pict2e.sty allows to draw lines
+and vectorsith any non integer slope parameters, to draw dashed and dotted
+lines of any slope, to draw arcs and curved vectors, to draw curves where
+just the interpolating nodes are specified together with the slopes at
+such nodes; closed paths of any shape can be filled with color; all
+coordinates are treated as ordered pairs, i.e. 'complex numbers';
+coordinates may be expressed also in polar form. Coordinates may be
+specified with macros, so that editing any drawing is rendered much
+simpler: any point specified with a macro is modified only once in
its macro definition.
-Some of these features have been incorporated in the 2011 version of
+Some of these features have been incorporated in the 2009 version of
pict2e; therefore this package avoids any modification to the original
-pict2e commands.
+pict2e commands. In any case the version of curve2e is compatible with
+later versions of pict2e; see below.
Curve2e now accepts polar coordinates in addition to the usual cartesian
ones; several macros have been upgraded; a new macro for tracing cubic
Bezier splines with their control nodes specified in polar form is
available. The same applies to quadratic Bezier splines. The multiput
command has been completely modified in a backwards compatible way; the
-new version allows to manipulate the increment components in a configurable
-way. A new xmultiput command has been defined that is more configurable
-than the original one; both \multiput and \xmultiput are backwards
+new version allows to manipulate the increment components in a configurable
+way. A new xmultiput command has been defined that is more configurable
+than the original one; both commands multiput and xmultiput are backwards
compatible with the original picture environment definition.
-This version solves a conflict with package eso-pic.
+Curve2e solves a conflict with package eso-pic.
This version of curve2e is almost fully compatible with pict2e dated
2014/01/12 version 0.2z and later.
@@ -3162,18 +3192,18 @@ If you specify
the package pict2e is automatically invoked with the specified options.
-The -almost fully compatible- phrase is necessary to explain that this
-version of curve2e uses some `functions' of the LaTeX3 language that were
+The -almost fully compatible- phrase is necessary to explain that this
+version of curve2e uses some `functions' of the LaTeX3 language that were
made available to the LaTeX developers by mid October 2018. Should the user
have an older or a basic/incomplete installation of the TeX system,
such L3 functions might not be available. This is why this
package checks the presence of the developer interface; in case
such interface is not available it rolls back to the previous version
-renamed curve2e-v161.sty, which is part of this bundle; this other
-package name must not be modified in any way. The compatibility mentioned
-above implies that the user macros remain the same, but their
-implementation requires the L3 interface. Some macros and environments
-rely totally on the xfp package functionalities, but legacy documents
+renamed curve2e-v161.sty, which is part of this bundle; this roll-back
+file name must not be modified in any way. The compatibility mentioned
+above implies that the user macros remain the same, but their
+implementation requires the L3 interface. Some macros and environments
+rely totally on the xfp package functionalities, but legacy documents
source files should compile correctly.
The package has the LPPL status of maintained.
@@ -3184,7 +3214,7 @@ as long as you fulfil the few conditions set forth by the Licence.
Nevertheless this package is an extension to the standard LaTeX
pict2e (2014) package. Therefore any change must be controlled on the
parent package pict2e, so as to avoid redefining or interfering with
-what is already contained in the official package.
+what is already contained in that package.
If you prefer sending me your modifications, as long as I will maintain
this package, I will possibly include every (documented) suggestion or
@@ -3201,7 +3231,7 @@ claudio dot beccari at gmail dot com
%\iffalse
%<*v161>
%\fi
-% \section{The fall-back package version \texttt{curve2e-v161}}
+% \section{The roll-back package version \texttt{curve2e-v161}}
% this is the fall-back version of |curve2e-v161.sty| to which the main
% file |curve2e.sty| falls back in case the interface package |xfp| is
% not available.
diff --git a/macros/latex/contrib/curve2e/curve2e.pdf b/macros/latex/contrib/curve2e/curve2e.pdf
index eb283322f5..1141d91861 100644
--- a/macros/latex/contrib/curve2e/curve2e.pdf
+++ b/macros/latex/contrib/curve2e/curve2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/CHANGES b/macros/latex/contrib/glossaries-extra/CHANGES
index 72ab865c70..90ce1e53f5 100644
--- a/macros/latex/contrib/glossaries-extra/CHANGES
+++ b/macros/latex/contrib/glossaries-extra/CHANGES
@@ -1,3 +1,7 @@
+1.43 (2020-02-28):
+
+ Bug fix: corrected bug in \glsxtrentryfmt that caused an infinite loop
+
1.42 (2020-02-13):
* glossaries-extra.sty:
diff --git a/macros/latex/contrib/glossaries-extra/README b/macros/latex/contrib/glossaries-extra/README
index 618f8951da..d5f2c1f781 100644
--- a/macros/latex/contrib/glossaries-extra/README
+++ b/macros/latex/contrib/glossaries-extra/README
@@ -1,4 +1,4 @@
-LaTeX Package : glossaries-extra v1.42 (2020-02-13)
+LaTeX Package : glossaries-extra v1.43 (2020-02-28)
Author : Nicola Talbot
https://www.dickimaw-books.com/contact
diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdf b/macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdf
index 34dea1ecae..098f3ba4b9 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdf
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html
index a03a84c694..55a9a28769 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html
@@ -19,47 +19,47 @@
.cmr-17{font-size:170%;}
.cmr-12{font-size:120%;}
.cmr-8{font-size:80%;}
-.cmtt-12{font-size:120%;font-family: monospace;}
-.cmtt-12{font-family: monospace;}
-.cmtt-12{font-family: monospace;}
-.cmtt-12{font-family: monospace;}
-.cmtt-12{font-family: monospace;}
+.cmtt-12{font-size:120%;font-family: monospace,monospace;}
+.cmtt-12{font-family: monospace,monospace;}
+.cmtt-12{font-family: monospace,monospace;}
+.cmtt-12{font-family: monospace,monospace;}
+.cmtt-12{font-family: monospace,monospace;}
.cmbx-10{ font-weight: bold;}
.cmss-10{ font-family: sans-serif;}
.cmss-10{ font-family: sans-serif;}
.cmss-10{ font-family: sans-serif;}
.cmss-10{ font-family: sans-serif;}
-.cmtt-10{font-family: monospace;}
-.cmtt-10{font-family: monospace;}
-.cmtt-10{font-family: monospace;}
-.cmtt-10{font-family: monospace;}
-.cmtt-10{font-family: monospace;}
+.cmtt-10{font-family: monospace,monospace;}
+.cmtt-10{font-family: monospace,monospace;}
+.cmtt-10{font-family: monospace,monospace;}
+.cmtt-10{font-family: monospace,monospace;}
+.cmtt-10{font-family: monospace,monospace;}
.cmr-9{font-size:90%;}
.cmss-8{font-size:80%; font-family: sans-serif;}
.cmss-8{ font-family: sans-serif;}
.cmss-8{ font-family: sans-serif;}
.cmss-8{ font-family: sans-serif;}
-.cmtt-9{font-size:90%;font-family: monospace;}
-.cmtt-9{font-family: monospace;}
-.cmtt-9{font-family: monospace;}
-.cmtt-9{font-family: monospace;}
-.cmtt-9{font-family: monospace;}
+.cmtt-9{font-size:90%;font-family: monospace,monospace;}
+.cmtt-9{font-family: monospace,monospace;}
+.cmtt-9{font-family: monospace,monospace;}
+.cmtt-9{font-family: monospace,monospace;}
+.cmtt-9{font-family: monospace,monospace;}
.cmti-10{ font-style: italic;}
.cmssbx-10{ font-family: sans-serif; font-weight: bold;}
.cmssbx-10{ font-family: sans-serif; font-weight: bold;}
.cmssbx-10{ font-family: sans-serif; font-weight: bold;}
.cmssbx-10{ font-family: sans-serif; font-weight: bold;}
-.cmitt-10{font-family: monospace; font-style: italic;}
+.cmitt-10{font-family: monospace,monospace; font-style: italic;}
.cmmi-9{font-size:90%;font-style: italic;}
.cmssi-10{ font-family: sans-serif; font-style: oblique;}
.cmssi-10{ font-family: sans-serif; font-style: oblique;}
.cmssi-10{ font-family: sans-serif; font-style: oblique;}
.cmssi-10{ font-family: sans-serif; font-style: oblique;}
-.cmtt-8{font-size:80%;font-family: monospace;}
-.cmtt-8{font-family: monospace;}
-.cmtt-8{font-family: monospace;}
-.cmtt-8{font-family: monospace;}
-.cmtt-8{font-family: monospace;}
+.cmtt-8{font-size:80%;font-family: monospace,monospace;}
+.cmtt-8{font-family: monospace,monospace;}
+.cmtt-8{font-family: monospace,monospace;}
+.cmtt-8{font-family: monospace,monospace;}
+.cmtt-8{font-family: monospace,monospace;}
.cmti-8{font-size:80%; font-style: italic;}
p{margin-top:0;margin-bottom:0}
p.indent{text-indent:0;}
@@ -127,11 +127,6 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
.hline td, .cline td{ padding: 0; }
.hline hr, .cline hr{border:none;border-top:1px solid black;}
.tabbing-right {text-align:right;}
-span.TEX {letter-spacing: -0.125em; }
-span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}
-a span.TEX span.E {text-decoration: none; }
-span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;}
-span.LATEX span.TEX{ position:relative; left: -0.4em; }
div.float, div.figure {margin-left: auto; margin-right: auto;}
div.float img {text-align:center;}
div.figure img {text-align:center;}
@@ -224,7 +219,7 @@ a span.HoLogo-TeX span.HoLogo-e{text-decoration:none;}
>
<!--l. 235--><p class="noindent" >
</p><!--l. 235--><p class="noindent" ><span
-class="cmr-17">glossaries-extra.sty v1.42: an extension to the</span>
+class="cmr-17">glossaries-extra.sty v1.43: an extension to the</span>
<span
class="cmr-17">glossaries package</span>
</p>
@@ -248,7 +243,7 @@ href="http://www.dickimaw-books.com/" class="url" ><span
class="cmtt-12">http://www.dickimaw-books.com/</span></a></td></tr></table>
</div>
<!--l. 235--><p class="noindent" ><span
-class="cmr-12">2020-02-13</span></p></div>
+class="cmr-12">2020-02-28</span></p></div>
<div
class="abstract"
>
@@ -312,16 +307,11 @@ class="cmss-10">datatool-base</span><a
id="dx1-9"></a> and <span
class="cmss-10">amsgen</span><a
id="dx1-10"></a>. These packages are all available in the
-current <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;Live and Mik<span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;distributions. If any of them are missing, please
-update your <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;distribution using your update manager. (For help on this see, for
+current TeX&#x2002;Live and MikTeX&#x2002;distributions. If any of them are missing, please
+update your TeX&#x2002;distribution using your update manager. (For help on this see, for
example, <a
-href="http://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution" >How do I update my <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;distribution?</a> or <a
-href="http://tex.stackexchange.com/questions/14925/updating-tex-on-linux" >Updating <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;on Linux</a>.)
+href="http://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution" >How do I update my TeX&#x2002;distribution?</a> or <a
+href="http://tex.stackexchange.com/questions/14925/updating-tex-on-linux" >Updating TeX&#x2002;on Linux</a>.)
</div>
</p><!--l. 268--><p class="noindent" >
</p><!--l. 270--><p class="indent" > Additional resources: </p>
@@ -361,74 +351,74 @@ class="cmss-10">glossaries</span></a> package.</li></ul>
<div class="tableofcontents">
<span class="chapterToc" >1 <a
href="#sec:intro" id="QQ2-1-2">Introduction</a></span>
-<br /> &#x00A0;<span class="sectionToc" >1.1 <a
+<br /> &#x2002;<span class="sectionToc" >1.1 <a
href="#sec:defaults" id="QQ2-1-3">Package Defaults</a></span>
-<br /> &#x00A0;<span class="sectionToc" >1.2 <a
+<br /> &#x2002;<span class="sectionToc" >1.2 <a
href="#sec:pkgopts" id="QQ2-1-4">New or Modified Package Options</a></span>
<br /> <span class="chapterToc" >2 <a
href="#sec:modifications" id="QQ2-1-5">Modifications to Existing Commands and Styles</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.1 <a
+<br /> &#x2002;<span class="sectionToc" >2.1 <a
href="#definingentries" id="QQ2-1-6">Defining Entries</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.2 <a
+<br /> &#x2002;<span class="sectionToc" >2.2 <a
href="#sec:wrglossary" id="QQ2-1-7">Entry Indexing</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.3 <a
+<br /> &#x2002;<span class="sectionToc" >2.3 <a
href="#sec:see" id="QQ2-1-8">Cross-References (&#8220;see&#8221; and &#8220;see also&#8221;)</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.4 <a
+<br /> &#x2002;<span class="sectionToc" >2.4 <a
href="#sec:entryfmtmods" id="QQ2-1-9">Entry Display Style Modifications</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.5 <a
+<br /> &#x2002;<span class="sectionToc" >2.5 <a
href="#sec:entrycountmods" id="QQ2-1-10">Entry Counting Modifications</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.6 <a
+<br /> &#x2002;<span class="sectionToc" >2.6 <a
href="#sec:glsunset" id="QQ2-1-11">First Use Flag</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.7 <a
+<br /> &#x2002;<span class="sectionToc" >2.7 <a
href="#plurals" id="QQ2-1-12">Plurals</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.8 <a
+<br /> &#x2002;<span class="sectionToc" >2.8 <a
href="#sec:nested" id="QQ2-1-13">Nested Links</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.9 <a
+<br /> &#x2002;<span class="sectionToc" >2.9 <a
href="#sec:acronymmods" id="QQ2-1-14">Acronym Style Modifications</a></span>
-<br /> &#x00A0;<span class="sectionToc" >2.10 <a
+<br /> &#x2002;<span class="sectionToc" >2.10 <a
href="#glossaries" id="QQ2-1-16">Glossaries</a></span>
-<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >2.10.1 <a
+<br /> &#x2002;&#x2002;<span class="subsectionToc" >2.10.1 <a
href="#sec:glosstylemods" id="QQ2-1-17">Glossary Style Modifications</a></span>
<br /> <span class="chapterToc" >3 <a
href="#newglossarystyles" id="QQ2-1-21">New Glossary Styles</a></span>
-<br /> &#x00A0;<span class="sectionToc" >3.1 <a
+<br /> &#x2002;<span class="sectionToc" >3.1 <a
href="#x1-210003.1" id="QQ2-1-22"><span
class="cmss-10">glossary-bookindex </span>package</a></span>
-<br /> &#x00A0;<span class="sectionToc" >3.2 <a
+<br /> &#x2002;<span class="sectionToc" >3.2 <a
href="#x1-220003.2" id="QQ2-1-23"><span
class="cmss-10">glossary-longextra </span>package</a></span>
-<br /> &#x00A0;<span class="sectionToc" >3.3 <a
+<br /> &#x2002;<span class="sectionToc" >3.3 <a
href="#x1-230003.3" id="QQ2-1-24"><span
class="cmss-10">glossary-topic </span>package</a></span>
<br /> <span class="chapterToc" >4 <a
href="#sec:abbreviations" id="QQ2-1-25">Abbreviations</a></span>
-<br /> &#x00A0;<span class="sectionToc" >4.1 <a
+<br /> &#x2002;<span class="sectionToc" >4.1 <a
href="#sec:tagging" id="QQ2-1-26">Tagging Initials</a></span>
-<br /> &#x00A0;<span class="sectionToc" >4.2 <a
+<br /> &#x2002;<span class="sectionToc" >4.2 <a
href="#sec:abbrstyle" id="QQ2-1-27">Abbreviation Styles</a></span>
-<br /> &#x00A0;<span class="sectionToc" >4.3 <a
+<br /> &#x2002;<span class="sectionToc" >4.3 <a
href="#sec:abbrshortcuts" id="QQ2-1-28">Shortcut Commands</a></span>
-<br /> &#x00A0;<span class="sectionToc" >4.4 <a
+<br /> &#x2002;<span class="sectionToc" >4.4 <a
href="#sec:predefabbrvstyles" id="QQ2-1-30">Predefined Abbreviation Styles</a></span>
-<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >4.4.1 <a
+<br /> &#x2002;&#x2002;<span class="subsectionToc" >4.4.1 <a
href="#sec:predefregabbrvstyles" id="QQ2-1-31">Predefined Abbreviation Styles that Set the Regular Attribute</a></span>
-<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >4.4.2 <a
+<br /> &#x2002;&#x2002;<span class="subsectionToc" >4.4.2 <a
href="#sec:predefnonregabbrvstyles" id="QQ2-1-32">Predefined Abbreviation Styles that Don&#8217;t Set the Regular Attribute</a></span>
-<br /> &#x00A0;<span class="sectionToc" >4.5 <a
+<br /> &#x2002;<span class="sectionToc" >4.5 <a
href="#sec:newabbrvstyle" id="QQ2-1-33">Defining New Abbreviation Styles</a></span>
<br /> <span class="chapterToc" >5 <a
href="#sec:headtitle" id="QQ2-1-34">Entries in Sectioning Titles, Headers, Captions and Contents</a></span>
-<br /> &#x00A0;<span class="sectionToc" >5.1 <a
+<br /> &#x2002;<span class="sectionToc" >5.1 <a
href="#simplisticapproach" id="QQ2-1-35">Simplistic Approach</a></span>
-<br /> &#x00A0;<span class="sectionToc" >5.2 <a
+<br /> &#x2002;<span class="sectionToc" >5.2 <a
href="#newcommandsdesignedforchaptersectionheadings" id="QQ2-1-36">New Commands Designed for Chapter/Section Headings</a></span>
<br /> <span class="chapterToc" >6 <a
href="#sec:categories" id="QQ2-1-37">Categories</a></span>
<br /> <span class="chapterToc" >7 <a
href="#sec:countref" id="QQ2-1-38">Counting References</a></span>
-<br /> &#x00A0;<span class="sectionToc" >7.1 <a
+<br /> &#x2002;<span class="sectionToc" >7.1 <a
href="#sec:entrycount" id="QQ2-1-39">Entry Counting (First Use Flag)</a></span>
-<br /> &#x00A0;<span class="sectionToc" >7.2 <a
+<br /> &#x2002;<span class="sectionToc" >7.2 <a
href="#sec:linkcount" id="QQ2-1-40">Link Counting</a></span>
<br /> <span class="chapterToc" >8 <a
href="#sec:autoindex" id="QQ2-1-41">Auto-Indexing</a></span>
@@ -438,40 +428,40 @@ href="#sec:autoindex" id="QQ2-1-41">Auto-Indexing</a></span>
<br /> <span class="chapterToc" >9 <a
href="#sec:bib2gls" id="QQ2-1-42"><span
class="cmtt-10">bib2gls</span>: Managing Reference Databases</a></span>
-<br /> &#x00A0;<span class="sectionToc" >9.1 <a
+<br /> &#x2002;<span class="sectionToc" >9.1 <a
href="#selection" id="QQ2-1-43">Selection</a></span>
-<br /> &#x00A0;<span class="sectionToc" >9.2 <a
+<br /> &#x2002;<span class="sectionToc" >9.2 <a
href="#sortinganddisplayingtheglossary" id="QQ2-1-44">Sorting and Displaying the Glossary</a></span>
-<br /> &#x00A0;<span class="sectionToc" >9.3 <a
+<br /> &#x2002;<span class="sectionToc" >9.3 <a
href="#x1-430009.3" id="QQ2-1-45">The <span
class="cmss-10">glossaries-extra-bib2gls </span>package</a></span>
-<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >9.3.1 <a
+<br /> &#x2002;&#x2002;<span class="subsectionToc" >9.3.1 <a
href="#sec:supplocations" id="QQ2-1-46">Supplemental Locations</a></span>
-<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >9.3.2 <a
+<br /> &#x2002;&#x2002;<span class="subsectionToc" >9.3.2 <a
href="#sec:recordnameref" id="QQ2-1-47">Nameref Record</a></span>
-<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >9.3.3 <a
+<br /> &#x2002;&#x2002;<span class="subsectionToc" >9.3.3 <a
href="#sec:resourcecommands" id="QQ2-1-48">Helper Commands for Resource Options</a></span>
-<br /> &#x00A0;<span class="sectionToc" >9.4 <a
+<br /> &#x2002;<span class="sectionToc" >9.4 <a
href="#supplementarycommands" id="QQ2-1-49">Supplementary Commands</a></span>
-<br /> &#x00A0;<span class="sectionToc" >9.5 <a
+<br /> &#x2002;<span class="sectionToc" >9.5 <a
href="#sec:recordcount" id="QQ2-1-50">Record Counting</a></span>
<br /> <span class="chapterToc" >10 <a
href="#sec:miscnew" id="QQ2-1-51">Miscellaneous New Commands</a></span>
-<br /> &#x00A0;<span class="sectionToc" >10.1 <a
+<br /> &#x2002;<span class="sectionToc" >10.1 <a
href="#sec:fields" id="QQ2-1-52">Entry Fields</a></span>
-<br /> &#x00A0;<span class="sectionToc" >10.2 <a
+<br /> &#x2002;<span class="sectionToc" >10.2 <a
href="#sec:printunsrt" id="QQ2-1-53">Display All Entries Without Sorting or Indexing</a></span>
-<br /> &#x00A0;<span class="sectionToc" >10.3 <a
+<br /> &#x2002;<span class="sectionToc" >10.3 <a
href="#sec:glossentry" id="QQ2-1-54">Standalone Entry Items</a></span>
-<br /> &#x00A0;<span class="sectionToc" >10.4 <a
+<br /> &#x2002;<span class="sectionToc" >10.4 <a
href="#sec:alias" id="QQ2-1-55">Entry Aliases</a></span>
<br /> <span class="chapterToc" >11 <a
href="#sec:onthefly" id="QQ2-1-56">On-the-Fly Document Definitions</a></span>
<br /> <span class="chapterToc" >12 <a
href="#sec:supplemental" id="QQ2-1-57">Supplemental Packages</a></span>
-<br /> &#x00A0;<span class="sectionToc" >12.1 <a
+<br /> &#x2002;<span class="sectionToc" >12.1 <a
href="#sec:prefix" id="QQ2-1-58">Prefixes or Determiners</a></span>
-<br /> &#x00A0;<span class="sectionToc" >12.2 <a
+<br /> &#x2002;<span class="sectionToc" >12.2 <a
href="#sec:accsupp" id="QQ2-1-59">Accessibility Support</a></span>
<br /> <span class="chapterToc" >13 <a
href="#sec:samples" id="QQ2-1-60">Sample Files</a></span>
@@ -597,7 +587,7 @@ class="cmss-10">glossaries-extra</span>. There may be other differences resultin
modifications to commands provided by <span
class="cmss-10">glossaries </span>(see <a
href="#sec:modifications"><span
-class="cmsy-10">&sect;</span>2 </a><a
+class="tcrm-1000">&sect;</span>2 </a><a
href="#sec:modifications">Modifications to Existing
Commands and Styles<!--tex4ht:ref: sec:modifications --></a>).
</p><!--l. 362--><p class="indent" >
@@ -721,8 +711,8 @@ following:
\documentclass{article}
&#x00A0;<br />\usepackage[acronym]{glossaries}
&#x00A0;<br />\makeglossaries
-&#x00A0;<br />\newacronym{laser}{laser}{light&#x00A0;amplification&#x00A0;by&#x00A0;stimulated
-&#x00A0;<br />emission&#x00A0;of&#x00A0;radiation}
+&#x00A0;<br />\newacronym{laser}{laser}{light&#x2002;amplification&#x2002;by&#x2002;stimulated
+&#x00A0;<br />emission&#x2002;of&#x2002;radiation}
&#x00A0;<br />\begin{document}
&#x00A0;<br />\gls{laser}
&#x00A0;<br />\printglossaries
@@ -744,10 +734,10 @@ class="cmtt-10">makeglossaries</span></a>, you&#8217;ll get the warning message:
</p>
<div class="verbatim" id="verbatim-10">
-Warning:&#x00A0;File&#x00A0;'test.glo'&#x00A0;is&#x00A0;empty.
-&#x00A0;<br />Have&#x00A0;you&#x00A0;used&#x00A0;any&#x00A0;entries&#x00A0;defined&#x00A0;in&#x00A0;glossary&#x00A0;'main'?
-&#x00A0;<br />Remember&#x00A0;to&#x00A0;use&#x00A0;package&#x00A0;option&#x00A0;'nomain'&#x00A0;if&#x00A0;you
-&#x00A0;<br />don't&#x00A0;want&#x00A0;to&#x00A0;use&#x00A0;the&#x00A0;main&#x00A0;glossary.
+Warning:&#x2002;File&#x2002;'test.glo'&#x2002;is&#x2002;empty.
+&#x00A0;<br />Have&#x2002;you&#x2002;used&#x2002;any&#x2002;entries&#x2002;defined&#x2002;in&#x2002;glossary&#x2002;'main'?
+&#x00A0;<br />Remember&#x2002;to&#x2002;use&#x2002;package&#x2002;option&#x2002;'nomain'&#x2002;if&#x2002;you
+&#x00A0;<br />don't&#x2002;want&#x2002;to&#x2002;use&#x2002;the&#x2002;main&#x2002;glossary.
</div>
<!--l. 460--><p class="nopar" > (where the original file is called <span
class="cmtt-10">test.tex</span>) but if you simply call <a
@@ -763,7 +753,7 @@ transcript file will always contain the message:
</p>
<div class="verbatim" id="verbatim-11">
-No&#x00A0;file&#x00A0;test.gls.
+No&#x2002;file&#x2002;test.gls.
</div>
<!--l. 467--><p class="nopar" > This doesn&#8217;t occur with <a
id="dx1-3029"></a><a
@@ -800,8 +790,8 @@ class="cmss-10">nomain</span></a><a
&#x00A0;<br />\usepackage[nomain,acronym,postdot]{glossaries-extra}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\setabbreviationstyle[acronym]{long-short}
-&#x00A0;<br />\newacronym{laser}{laser}{light&#x00A0;amplification&#x00A0;by&#x00A0;stimulated
-&#x00A0;<br />emission&#x00A0;of&#x00A0;radiation}
+&#x00A0;<br />\newacronym{laser}{laser}{light&#x2002;amplification&#x2002;by&#x2002;stimulated
+&#x00A0;<br />emission&#x2002;of&#x2002;radiation}
&#x00A0;<br />\begin{document}
&#x00A0;<br />\gls{laser}
&#x00A0;<br />\printglossaries
@@ -812,7 +802,7 @@ class="cmtt-10">\setabbreviationstyle </span>before
<span
class="cmtt-10">\newacronym</span>. See <a
href="#sec:abbreviations"><span
-class="cmsy-10">&sect;</span>4 </a><a
+class="tcrm-1000">&sect;</span>4 </a><a
href="#sec:abbreviations">Abbreviations<!--tex4ht:ref: sec:abbreviations --></a> for further details.)
</p><!--l. 505--><p class="noindent" >
</p>
@@ -981,7 +971,7 @@ class="cmss-10">=dot</span><a
<div class="verbatim" id="verbatim-15">
- \renewcommand{\glspostdescription}{.\spacefactor\sfcode`\.&#x00A0;}
+ \renewcommand{\glspostdescription}{.\spacefactor\sfcode`\.&#x2002;}
</div>
<!--l. 577--><p class="nopar" >
</p></dd><dt class="description">
@@ -1007,7 +997,7 @@ class="cmss-10">=none</span><a
</p>
<div class="verbatim" id="verbatim-17">
\newcommand*{\glspostdescription}{%
- &#x00A0;<br />&#x00A0;&#x00A0;\ifglsnopostdot\else.\spacefactor\sfcode`\.&#x00A0;\fi
+ &#x00A0;<br />&#x2002;&#x2002;\ifglsnopostdot\else.\spacefactor\sfcode`\.&#x2002;\fi
&#x00A0;<br />}
</div>
<!--l. 590--><p class="nopar" > where the conditional is determined by the <a
@@ -1111,7 +1101,7 @@ class="cmtt-10">\glsaccess</span>&#x27E8;<span
class="cmitt-10">xxx</span>&#x27E9; commands will add the
accessibility information. (See <a
href="#sec:accsupp"><span
-class="cmsy-10">&sect;</span>12.2 </a><a
+class="tcrm-1000">&sect;</span>12.2 </a><a
href="#sec:accsupp">Accessibility Support<!--tex4ht:ref: sec:accsupp --></a> for further
details.)
</p><!--l. 635--><p class="noindent" >Note that the <a
@@ -1140,7 +1130,7 @@ class="cmss-10">glossaries-extra-stylemods</span><a
class="cmti-10">value</span>&#x27E9; if it contains any commas.) The value may
be omitted if no options need to be passed. See <a
href="#sec:glosstylemods"><span
-class="cmsy-10">&sect;</span>2.10.1 </a><a
+class="tcrm-1000">&sect;</span>2.10.1 </a><a
href="#sec:glosstylemods">Glossary Style
Modifications<!--tex4ht:ref: sec:glosstylemods --></a> for further details. There are two special keyword values:
<a
@@ -1198,7 +1188,7 @@ class="cmss-10">=warn</span><a
variable doesn&#8217;t exist and so is neither true nor false. (There will also
be a warning in the transcript.) See <a
href="#sec:glsunset"><span
-class="cmsy-10">&sect;</span>2.6 </a><a
+class="tcrm-1000">&sect;</span>2.6 </a><a
href="#sec:glsunset">First Use Flag<!--tex4ht:ref: sec:glsunset --></a> for further
details.
</p></dd><dt class="description">
@@ -1335,7 +1325,7 @@ class="cmti-10">value</span>&#x27E9; option provided for the benefit of
href="#glo:bib2gls"><span
class="cmtt-10">bib2gls</span></a> (see <a
href="#sec:bib2gls"><span
-class="cmsy-10">&sect;</span>9 </a><a
+class="tcrm-1000">&sect;</span>9 </a><a
href="#sec:bib2gls"><span
class="cmtt-10">bib2gls</span>: Managing Reference Databases<!--tex4ht:ref: sec:bib2gls --></a>).
<!--l. 735--><p class="noindent" >The option may only be set in the preamble and can&#8217;t be used after
@@ -1365,7 +1355,7 @@ class="description">The indexing is performed by <a
id="dx1-4078"></a><span
class="cmtt-10">bib2gls </span>(see <a
href="#sec:bib2gls"><span
-class="cmsy-10">&sect;</span>9 </a><a
+class="tcrm-1000">&sect;</span>9 </a><a
href="#sec:bib2gls"><span
class="cmtt-10">bib2gls</span>:
Managing Reference Databases<!--tex4ht:ref: sec:bib2gls --></a>). Neither <span
@@ -1394,9 +1384,9 @@ class="cmtt-10">myDoc.tex</span>):
</p>
<div class="verbatim" id="verbatim-22">
- pdflatex&#x00A0;myDoc
- &#x00A0;<br />bib2gls&#x00A0;myDoc
- &#x00A0;<br />pdflatex&#x00A0;myDoc
+ pdflatex&#x2002;myDoc
+ &#x00A0;<br />bib2gls&#x2002;myDoc
+ &#x00A0;<br />pdflatex&#x2002;myDoc
</div>
<!--l. 759--><p class="nopar" >
</p><!--l. 761--><p class="noindent" >Note that <a
@@ -1466,7 +1456,7 @@ class="cmss-10">indexcounter</span></a><a
id="dx1-4093"></a> option increments the associated counter every time an entry
is indexed, which affects this option. See <a
href="#sec:recordnameref"><span
-class="cmsy-10">&sect;</span>9.3.2 </a><a
+class="tcrm-1000">&sect;</span>9.3.2 </a><a
href="#sec:recordnameref">Nameref Record<!--tex4ht:ref: sec:recordnameref --></a> for further
details.
<!--l. 785--><p class="noindent" >This option is best used with <a
@@ -1544,11 +1534,11 @@ class="cmtt-10">myDoc.tex</span>):
</p>
<div class="verbatim" id="verbatim-23">
- pdflatex&#x00A0;myDoc
- &#x00A0;<br />bib2gls&#x00A0;myDoc
- &#x00A0;<br />pdflatex&#x00A0;myDoc
- &#x00A0;<br />makeglossaries&#x00A0;myDoc
- &#x00A0;<br />pdflatex&#x00A0;myDoc
+ pdflatex&#x2002;myDoc
+ &#x00A0;<br />bib2gls&#x2002;myDoc
+ &#x00A0;<br />pdflatex&#x2002;myDoc
+ &#x00A0;<br />makeglossaries&#x2002;myDoc
+ &#x00A0;<br />pdflatex&#x2002;myDoc
</div>
<!--l. 815--><p class="nopar" ></p></dd></dl>
<!--l. 818--><p class="noindent" >With the recording on (<a
@@ -1578,7 +1568,7 @@ class="cmtt-10">\glsxtr@record </span>entry to the
<span
class="cmtt-10">.aux </span>file.) See <a
href="#sec:bib2gls"><span
-class="cmsy-10">&sect;</span>9 </a><a
+class="tcrm-1000">&sect;</span>9 </a><a
href="#sec:bib2gls"><span
class="cmtt-10">bib2gls</span>: Managing Reference Databases<!--tex4ht:ref: sec:bib2gls --></a> for further
details.
@@ -1632,7 +1622,7 @@ class="cmtt-10">\refstepcounter</span>, so indexing before the caption will
class="cmtt-10">\glsfmttext </span>and <span
class="cmtt-10">\glsfmtshort</span>, don&#8217;t index. (See <a
href="#sec:headtitle"><span
-class="cmsy-10">&sect;</span>5
+class="tcrm-1000">&sect;</span>5
</a><a
href="#sec:headtitle">Entries in Sectioning Titles, Headers, Captions and Contents<!--tex4ht:ref: sec:headtitle --></a>). You may
want to consider using <span
@@ -1643,10 +1633,10 @@ class="cmtt-10">\glsadd </span>after the caption (not before). For
<div class="verbatim" id="verbatim-24">
\begin{figure}[htbp]
- &#x00A0;<br />&#x00A0;&#x00A0;\centering
- &#x00A0;<br />&#x00A0;&#x00A0;\includegraphics{example-image}
- &#x00A0;<br />&#x00A0;&#x00A0;\caption{Sample&#x00A0;\glsfmttext{foobar}&#x00A0;figure}
- &#x00A0;<br />&#x00A0;&#x00A0;\glsadd{foobar}
+ &#x00A0;<br />&#x2002;&#x2002;\centering
+ &#x00A0;<br />&#x2002;&#x2002;\includegraphics{example-image}
+ &#x00A0;<br />&#x2002;&#x2002;\caption{Sample&#x2002;\glsfmttext{foobar}&#x2002;figure}
+ &#x00A0;<br />&#x2002;&#x2002;\glsadd{foobar}
&#x00A0;<br />\end{figure}
</div>
<!--l. 854--><p class="nopar" >
@@ -1705,9 +1695,9 @@ class="cmss-10">equation</span><a
</p>
<div class="verbatim" id="verbatim-25">
\renewcommand{\glslinkpresetkeys}{%
- &#x00A0;<br />&#x00A0;\ifmmode&#x00A0;\setkeys{glslink}{counter=equation}\fi}
+ &#x00A0;<br />&#x2002;\ifmmode&#x2002;\setkeys{glslink}{counter=equation}\fi}
&#x00A0;<br />\renewcommand{\glsaddpresetkeys}{%
- &#x00A0;<br />&#x00A0;\ifmmode&#x00A0;\setkeys{glossadd}{counter=equation}\fi}
+ &#x00A0;<br />&#x2002;\ifmmode&#x2002;\setkeys{glossadd}{counter=equation}\fi}
</div>
<!--l. 878--><p class="nopar" > </div>
</p><!--l. 879--><p class="noindent" >
@@ -1820,20 +1810,18 @@ class="cmss-10">document</span><a
id="dx1-4163"></a> environment, it
uses the <span
class="cmtt-10">.glsdefs </span>temporary file to store the entry definitions so
- that on the next <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run the entries are defined at the beginning
+ that on the next LaTeX&#x2002;run the entries are defined at the beginning
of the <span
class="cmss-10">document</span><a
id="dx1-4164"></a><a
id="dx1-4165"></a> environment. This allows the entry information
to be referenced in the glossary, even if the glossary occurs before
<span
-class="cmtt-10">\newglossaryentry</span>. (For example, when the glossary is displayed in
- the front matter.) This method of saving the definitions for the next
- <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run has drawbacks that are detailed in the <span
-class="cmss-10">glossaries </span>user
- manual.
+class="cmtt-10">\newglossaryentry</span>. (For example, when the glossary is displayed
+ in the front matter.) This method of saving the definitions for the
+ next LaTeX&#x2002;run has drawbacks that are detailed in the <span
+class="cmss-10">glossaries</span>
+ user manual.
<!--l. 942--><p class="noindent" >Remember that if <span
class="cmtt-10">\newglossaryentry </span>wouldn&#8217;t be allowed in the
<span
@@ -1965,7 +1953,7 @@ class="cmtt-10">\newglossaryentry</span>, such as
<span
class="cmtt-10">\newabbreviation</span>, but not the &#8220;on-the-fly&#8221; commands described in <a
href="#sec:onthefly"><span
-class="cmsy-10">&sect;</span>11
+class="tcrm-1000">&sect;</span>11
</a><a
href="#sec:onthefly">On-the-Fly Document Definitions<!--tex4ht:ref: sec:onthefly --></a>.
</p></dd><dt class="description">
@@ -2043,7 +2031,7 @@ class="cmss-10">babel</span><a
id="dx1-4202"></a> it&#8217;s likely you
will need to change this. (See <a
href="#sec:lang"><span
-class="cmsy-10">&sect;</span>14 </a><a
+class="tcrm-1000">&sect;</span>14 </a><a
href="#sec:lang">Multi-Lingual Support<!--tex4ht:ref: sec:lang --></a> for further
details.)
</p><!--l. 1047--><p class="noindent" ><div class="important" title="Important Note"> If you don&#8217;t use the <a
@@ -2121,7 +2109,7 @@ class="cmtt-10">name={</span>&#x27E8;<span
class="cmitt-10">symbol</span>&#x27E9;<span
class="cmtt-10">},</span>
<br /><span
-class="cmtt-10">&#x00A0;sort={</span>&#x27E8;<span
+class="cmtt-10">&#x2002;sort={</span>&#x27E8;<span
class="cmitt-10">label</span>&#x27E9;<span
class="cmtt-10">},type=symbols,category=symbol,</span>&#x27E8;<span
class="cmitt-10">options</span>&#x27E9;<span
@@ -2172,7 +2160,7 @@ class="cmtt-10">name={</span>&#x27E8;<span
class="cmitt-10">number</span>&#x27E9;<span
class="cmtt-10">},</span>
<br /><span
-class="cmtt-10">&#x00A0;sort={</span>&#x27E8;<span
+class="cmtt-10">&#x2002;sort={</span>&#x27E8;<span
class="cmitt-10">label</span>&#x27E9;<span
class="cmtt-10">},type=numbers,category=number,</span>&#x27E8;<span
class="cmitt-10">options</span>&#x27E9;<span
@@ -2313,7 +2301,7 @@ class="cmss-10">=abbr</span><a
set the abbreviation shortcuts provided by <span
class="cmss-10">glossaries-extra</span>. (See <a
href="#sec:abbrshortcuts"><span
-class="cmsy-10">&sect;</span>4.3
+class="tcrm-1000">&sect;</span>4.3
</a><a
href="#sec:abbrshortcuts">Shortcut Commands<!--tex4ht:ref: sec:abbrshortcuts --></a>.) These settings don&#8217;t switch on the acronym
shortcuts provided by the <span
@@ -2461,7 +2449,7 @@ entries that use <span
class="cmtt-10">\glsxtractivatenopost </span>and <span
class="cmtt-10">\glspostdescription</span>, see <a
href="#sec:glossentry"><span
-class="cmsy-10">&sect;</span>10.3
+class="tcrm-1000">&sect;</span>10.3
</a><a
href="#sec:glossentry">Standalone Entry Items<!--tex4ht:ref: sec:glossentry --></a>).
</p><!--l. 1217--><p class="indent" > The commands used by <span
@@ -2482,14 +2470,14 @@ class="cmss-10">category</span><a
is <span
class="cmtt-10">general</span>. See <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6 </a><a
+class="tcrm-1000">&sect;</span>6 </a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a> for further information about categories.
</li>
<li class="itemize"><span
class="cmss-10">alias</span><a
id="dx1-6008"></a>, which allows an entry to be alias to another entry. See <a
href="#sec:alias"><span
-class="cmsy-10">&sect;</span>10.4 </a><a
+class="tcrm-1000">&sect;</span>10.4 </a><a
href="#sec:alias">Entry
Aliases<!--tex4ht:ref: sec:alias --></a> for further details.
</li>
@@ -2500,7 +2488,7 @@ class="cmss-10">see</span><a
id="dx1-6010"></a>, but allows for separate &#8220;see&#8221; and
&#8220;see also&#8221; treatment. See <a
href="#sec:see"><span
-class="cmsy-10">&sect;</span>2.3 </a><a
+class="tcrm-1000">&sect;</span>2.3 </a><a
href="#sec:see">Cross-References (&#8220;see&#8221; and &#8220;see also&#8221;)<!--tex4ht:ref: sec:see --></a> for
further details.</li></ul>
<!--l. 1233--><p class="noindent" >This apply to all entry defining commands (such as <span
@@ -2603,7 +2591,7 @@ class="cmtt-10">\newacronym</span><a
to use the new abbreviation interface provided by <span
class="cmss-10">glossaries-extra</span>. (See <a
href="#sec:abbreviations"><span
-class="cmsy-10">&sect;</span>4
+class="tcrm-1000">&sect;</span>4
</a><a
href="#sec:abbreviations">Abbreviations<!--tex4ht:ref: sec:abbreviations --></a>.)
</p><!--l. 1294--><p class="indent" > The <span
@@ -2805,7 +2793,7 @@ href="#catattr.indexonlyfirst"><span
class="cmss-10">indexonlyfirst</span></a><a
id="dx1-7007"></a> attribute, see <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6 </a><a
+class="tcrm-1000">&sect;</span>6 </a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a> for further details.)
Note that the <span
class="cmss-10">noindex</span><a
@@ -2848,13 +2836,13 @@ class="cmtt-10">\glsxtrinitwrgloss </span></div><hr>
</p>
<div class="verbatim" id="verbatim-33">
\newcommand*{\glsxtrinitwrgloss}{%
- &#x00A0;<br />&#x00A0;\glsifattribute{\glslabel}{wrgloss}{after}%
- &#x00A0;<br />&#x00A0;{%
- &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\glsxtrinitwrglossbeforefalse
- &#x00A0;<br />&#x00A0;}%
- &#x00A0;<br />&#x00A0;{%
- &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\glsxtrinitwrglossbeforetrue
- &#x00A0;<br />&#x00A0;}%
+ &#x00A0;<br />&#x2002;\glsifattribute{\glslabel}{wrgloss}{after}%
+ &#x00A0;<br />&#x2002;{%
+ &#x00A0;<br />&#x2002;&#x2002;&#x2002;\glsxtrinitwrglossbeforefalse
+ &#x00A0;<br />&#x2002;}%
+ &#x00A0;<br />&#x2002;{%
+ &#x00A0;<br />&#x2002;&#x2002;&#x2002;\glsxtrinitwrglossbeforetrue
+ &#x00A0;<br />&#x2002;}%
&#x00A0;<br />}
</div>
<!--l. 1423--><p class="nopar" > This sets the conditional
@@ -2894,7 +2882,7 @@ class="cmtt-10">}</span><span
class="cmsy-10">{</span><span
class="cmtt-10">\glstextformat{</span>&#x27E8;<span
class="cmitt-10">link</span><span
-class="cmitt-10">&#x00A0;text</span>&#x27E9;<span
+class="cmitt-10">&#x2002;text</span>&#x27E9;<span
class="cmtt-10">}</span><span
class="cmsy-10">}</span>
</div>
@@ -2913,7 +2901,7 @@ class="cmtt-10">\hyperlink{</span>&#x27E8;<span
class="cmitt-10">target</span>&#x27E9;<span
class="cmtt-10">}{</span>&#x27E8;<span
class="cmitt-10">link</span><span
-class="cmitt-10">&#x00A0;text</span>&#x27E9;<span
+class="cmitt-10">&#x2002;text</span>&#x27E9;<span
class="cmtt-10">}</span><span
class="cmsy-10">}</span>
</div>
@@ -2956,7 +2944,7 @@ class="cmtt-10">\hyperlink{</span>&#x27E8;<span
class="cmitt-10">target</span>&#x27E9;<span
class="cmtt-10">}{</span>&#x27E8;<span
class="cmitt-10">link</span><span
-class="cmitt-10">&#x00A0;text</span>&#x27E9;<span
+class="cmitt-10">&#x2002;text</span>&#x27E9;<span
class="cmtt-10">}</span><span
class="cmsy-10">}</span>
</div>
@@ -2980,7 +2968,7 @@ class="cmtt-10">\glstextformat</span>. See the <span
class="cmss-10">soul</span><a
id="dx1-7024"></a> example in <a
href="#sec:glsunset"><span
-class="cmsy-10">&sect;</span>2.6 </a><a
+class="tcrm-1000">&sect;</span>2.6 </a><a
href="#sec:glsunset">First Use
Flag<!--tex4ht:ref: sec:glsunset --></a>.
</dd><dt class="description">
@@ -3089,7 +3077,7 @@ class="cmti-10">char</span>&#x27E9; is the character used as the modifier and &#
class="cmti-10">options</span>&#x27E9; is the default set of
options (which may be overridden). Note that &#x27E8;<span
class="cmti-10">char</span>&#x27E9; must be a single character (not a
-UTF-8 character, unless you are using <span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x00A0;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>).
+UTF-8 character, unless you are using <span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x2002;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>).
</p><!--l. 1541--><p class="indent" > <div class="important" title="Important Note"> When choosing the character &#x27E8;<span
class="cmti-10">char</span>&#x27E9; take care of any changes in category code.
</div>
@@ -3164,9 +3152,9 @@ class="cmss-10">equation</span><a
</p>
<div class="verbatim" id="verbatim-40">
\renewcommand{\glslinkpresetkeys}{%
-&#x00A0;<br />&#x00A0;\ifmmode&#x00A0;\setkeys{glslink}{counter=equation}\fi}
+&#x00A0;<br />&#x2002;\ifmmode&#x2002;\setkeys{glslink}{counter=equation}\fi}
&#x00A0;<br />\renewcommand{\glsaddpresetkeys}{%
-&#x00A0;<br />&#x00A0;\ifmmode&#x00A0;\setkeys{glossadd}{counter=equation}\fi}
+&#x00A0;<br />&#x2002;\ifmmode&#x2002;\setkeys{glossadd}{counter=equation}\fi}
</div>
<!--l. 1595--><p class="nopar" > In this case, the counter can be overridden with an explicit use of <span
class="cmss-10">counter</span><a
@@ -3185,9 +3173,9 @@ class="cmss-10">equations</span></a><a
</p>
<div class="verbatim" id="verbatim-41">
\renewcommand{\glslinkpostsetkeys}{%
-&#x00A0;<br />&#x00A0;\ifmmode&#x00A0;\setkeys{glslink}{counter=equation}\fi}
+&#x00A0;<br />&#x2002;\ifmmode&#x2002;\setkeys{glslink}{counter=equation}\fi}
&#x00A0;<br />\renewcommand{\glsaddpostsetkeys}{%
-&#x00A0;<br />&#x00A0;\ifmmode&#x00A0;\setkeys{glossadd}{counter=equation}\fi}
+&#x00A0;<br />&#x2002;\ifmmode&#x2002;\setkeys{glossadd}{counter=equation}\fi}
</div>
<!--l. 1608--><p class="nopar" >
</p><!--l. 1610--><p class="indent" > As from version 1.14, there are two new keys for <span
@@ -3230,7 +3218,7 @@ class="cmti-10">num</span>&#x27E9;&#x27E8;<span
class="cmti-10">sep</span>&#x27E9;]*&#x27E8;<span
class="cmti-10">num</span>&#x27E9;
where &#x27E8;<span
-class="cmti-10">num</span>&#x27E9; is an arabic number (0, 1, &#x2026;), roman numeral (i, ii, &#x2026;&#x00A0;or I, II, &#x2026;) or a
+class="cmti-10">num</span>&#x27E9; is an arabic number (0, 1, &#x2026;), roman numeral (i, ii, &#x2026;&#x2002;or I, II, &#x2026;) or a
character from a, &#x2026;, z or A, &#x2026;, Z, and [&#x27E8;<span
class="cmti-10">num</span>&#x27E9;&#x27E8;<span
class="cmti-10">sep</span>&#x27E9;]* indicates zero or more
@@ -3245,7 +3233,7 @@ example,
</p>
<div class="verbatim" id="verbatim-42">
-\glsadd[thevalue={Supplementary&#x00A0;Material}]{sample}
+\glsadd[thevalue={Supplementary&#x2002;Material}]{sample}
</div>
<!--l. 1642--><p class="nopar" > This location value will be accepted by <a
id="dx1-7055"></a><a
@@ -3271,10 +3259,10 @@ class="cmtt-10">suppl.tex </span>contains:
<div class="verbatim" id="verbatim-43">
\documentclass{article}
&#x00A0;<br />\usepackage{glossaries-extra}
-&#x00A0;<br />\newglossaryentry{sample}{name={sample},description={an&#x00A0;example}}
+&#x00A0;<br />\newglossaryentry{sample}{name={sample},description={an&#x2002;example}}
&#x00A0;<br />\renewcommand{\thepage}{S.\arabic{page}}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />First&#x00A0;page.
+&#x00A0;<br />First&#x2002;page.
&#x00A0;<br />\newpage
&#x00A0;<br />\gls{sample}.
&#x00A0;<br />\end{document}
@@ -3293,9 +3281,9 @@ example:
\documentclass{article}
&#x00A0;<br />\usepackage{glossaries-extra}
&#x00A0;<br />\makeglossaries
-&#x00A0;<br />\newglossaryentry{sample}{name={sample},description={an&#x00A0;example}}
+&#x00A0;<br />\newglossaryentry{sample}{name={sample},description={an&#x2002;example}}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />Some&#x00A0;\gls{sample}&#x00A0;text.
+&#x00A0;<br />Some&#x2002;\gls{sample}&#x2002;text.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\glsadd[thevalue={S.2}]{sample}
&#x00A0;<br />\end{document}
@@ -3318,7 +3306,7 @@ class="cmss-10">externallocation</span></a><a
<div class="verbatim" id="verbatim-45">
\glssetcategoryattribute{supplemental}{externallocation}{suppl.pdf}
&#x00A0;<br />\newglossaryentry{sample}{category=supplemental,
-&#x00A0;<br />&#x00A0;name={sample},description={an&#x00A0;example}}
+&#x00A0;<br />&#x2002;name={sample},description={an&#x2002;example}}
</div>
<!--l. 1697--><p class="nopar" > Next you need to add <span
class="cmtt-10">glsxtrsupphypernumber </span>as the format:
@@ -3539,7 +3527,7 @@ class="cmtt-10">\glsseeitemformat</span><a
class="cmss-10">glossaries-extra</span><a
id="dx1-8032"></a>, as described in <a
href="#sec:modifications"><span
-class="cmsy-10">&sect;</span>2
+class="tcrm-1000">&sect;</span>2
</a><a
href="#sec:modifications">Modifications to Existing Commands and Styles<!--tex4ht:ref: sec:modifications --></a>. This now displays the value of the
<span
@@ -3607,7 +3595,7 @@ as:
</p>
<div class="verbatim" id="verbatim-48">
\renewcommand*{\glsseeitemformat}[1]{%
-&#x00A0;<br />&#x00A0;\ifglshasshort{\glslabel}{\glsfmttext{#1}}{\glsfmtname{#1}}%
+&#x00A0;<br />&#x2002;\ifglshasshort{\glslabel}{\glsfmttext{#1}}{\glsfmtname{#1}}%
&#x00A0;<br />}
</div>
<!--l. 1840--><p class="nopar" > (Note that as from <span
@@ -3743,9 +3731,9 @@ example:
</p>
<div class="verbatim" id="verbatim-50">
\renewcommand*{\glsxtrpostdescgeneral}{%
-&#x00A0;<br />&#x00A0;\ifglshasfield{see}{\glscurrententrylabel}
-&#x00A0;<br />&#x00A0;{,&#x00A0;\glsxtrusesee{\glscurrententrylabel}}%
-&#x00A0;<br />&#x00A0;{}%
+&#x00A0;<br />&#x2002;\ifglshasfield{see}{\glscurrententrylabel}
+&#x00A0;<br />&#x2002;{,&#x2002;\glsxtrusesee{\glscurrententrylabel}}%
+&#x00A0;<br />&#x2002;{}%
&#x00A0;<br />}
</div>
<!--l. 1920--><p class="nopar" > Now the cross-references can appear even though the <a
@@ -3797,12 +3785,12 @@ For example:
</p>
<div class="verbatim" id="verbatim-51">
\renewcommand*{\glsxtrpostdescgeneral}{%
-&#x00A0;<br />&#x00A0;\ifglshasfield{see}{\glscurrententrylabel}
-&#x00A0;<br />&#x00A0;{,&#x00A0;\glsxtrusesee{\glscurrententrylabel}}%
-&#x00A0;<br />&#x00A0;{}%
-&#x00A0;<br />&#x00A0;\ifglshasfield{seealso}{\glscurrententrylabel}
-&#x00A0;<br />&#x00A0;{&#x00A0;(\glsxtruseseealso{\glscurrententrylabel})}%
-&#x00A0;<br />&#x00A0;{}%
+&#x00A0;<br />&#x2002;\ifglshasfield{see}{\glscurrententrylabel}
+&#x00A0;<br />&#x2002;{,&#x2002;\glsxtrusesee{\glscurrententrylabel}}%
+&#x00A0;<br />&#x2002;{}%
+&#x00A0;<br />&#x2002;\ifglshasfield{seealso}{\glscurrententrylabel}
+&#x00A0;<br />&#x2002;{&#x2002;(\glsxtruseseealso{\glscurrententrylabel})}%
+&#x00A0;<br />&#x2002;{}%
&#x00A0;<br />}
</div>
<!--l. 1952--><p class="nopar" >
@@ -3881,7 +3869,7 @@ class="cmtt-10">\glssee[\seealsoname]{</span>&#x27E8;<span
class="cmitt-10">label</span>&#x27E9;<span
class="cmtt-10">}{</span>&#x27E8;<span
class="cmitt-10">xr</span><span
-class="cmitt-10">&#x00A0;list</span>&#x27E9;<span
+class="cmitt-10">&#x2002;list</span>&#x27E9;<span
class="cmtt-10">}</span>
@@ -3964,7 +3952,7 @@ href="#catattr.regular"><span
class="cmss-10">regular</span></a><a
id="dx1-9010"></a> attribute set (see <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6
+class="tcrm-1000">&sect;</span>6
</a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a>), the entry is considered a&#x00A0;regular entry, even if it has a&#x00A0;value
for the <span
@@ -4017,7 +4005,7 @@ class="cmtt-10">\glsxtrgenabbrvfmt</span><a
<span
class="cmss-10">glossaries-extra</span>) which is governed by the abbreviation style (see <a
href="#sec:abbrstyle"><span
-class="cmsy-10">&sect;</span>4.2
+class="tcrm-1000">&sect;</span>4.2
</a><a
href="#sec:abbrstyle">Abbreviation Styles<!--tex4ht:ref: sec:abbrstyle --></a>).
</li></ul>
@@ -4064,7 +4052,7 @@ category:
</p>
<div class="verbatim" id="verbatim-53">
\renewcommand*{\glsxtrregularfont}[1]{%
-&#x00A0;<br />&#x00A0;\glsifcategory{\glslabel}{general}{\textsf{#1}}{#1}}
+&#x00A0;<br />&#x2002;\glsifcategory{\glslabel}{general}{\textsf{#1}}{#1}}
</div>
<!--l. 2077--><p class="nopar" > or query the category attribute, for example, provide a custom attribute called
<span
@@ -4076,7 +4064,7 @@ class="cmtt-10">font</span>:
<div class="verbatim" id="verbatim-54">
\glssetcategoryattribute{general}{font}{sf}
&#x00A0;<br />\renewcommand*{\glsxtrregularfont}[1]{%
-&#x00A0;<br />&#x00A0;\glsifattribute{\glslabel}{font}{sf}{\textsf{#1}}{#1}}
+&#x00A0;<br />&#x2002;\glsifattribute{\glslabel}{font}{sf}{\textsf{#1}}{#1}}
</div>
<!--l. 2085--><p class="nopar" > As from version 1.21, it&#8217;s simpler to just do, for example:
@@ -4163,7 +4151,7 @@ class="cmtt-10">\glsentrytext</span>, <span
class="cmtt-10">\glsaccesstext </span>or <span
class="cmtt-10">\glsxtrp </span>(<a
href="#sec:nested"><span
-class="cmsy-10">&sect;</span>2.8 </a><a
+class="tcrm-1000">&sect;</span>2.8 </a><a
href="#sec:nested">Nested Links<!--tex4ht:ref: sec:nested --></a>) instead.
</div>
</p><!--l. 2139--><p class="noindent" >
@@ -4171,7 +4159,7 @@ href="#sec:nested">Nested Links<!--tex4ht:ref: sec:nested --></a>) instead.
class="cmtt-10">\glsxtrpostlink </span>just does <span
class="cmtt-10">\glsxtrpostlink</span>&#x27E8;<span
class="cmti-10">category</span>&#x27E9;<a
- id="dx1-9036"></a>&#x00A0;if
+ id="dx1-9036"></a>&#x2002;if
it exists, where &#x27E8;<span
class="cmti-10">category</span>&#x27E9; is the category label for the current entry. (For
example, for the <span
@@ -4188,7 +4176,7 @@ example:
</p>
<div class="verbatim" id="verbatim-57">
\newcommand*{\glsxtrpostlinkgeneral}{%
-&#x00A0;<br />&#x00A0;\glsxtrpostlinkAddDescOnFirstUse
+&#x00A0;<br />&#x2002;\glsxtrpostlinkAddDescOnFirstUse
&#x00A0;<br />}
</div>
<!--l. 2152--><p class="nopar" > or, as from v1.31, you can use
@@ -4217,12 +4205,12 @@ class="cmtt-10">}</span>
<span
class="cmtt-10">\glsxtrpostlink</span>&#x27E8;<span
class="cmti-10">category</span>&#x27E9;<a
- id="dx1-9039"></a>&#x00A0;is defined the hook will do that and then insert a
+ id="dx1-9039"></a>&#x2002;is defined the hook will do that and then insert a
full stop with the space factor adjusted to match the end of sentence. If
<span
class="cmtt-10">\glsxtrpostlink</span>&#x27E8;<span
class="cmti-10">category</span>&#x27E9;<a
- id="dx1-9040"></a>&#x00A0;hasn&#8217;t been defined, the space factor is adjusted to match
+ id="dx1-9040"></a>&#x2002;hasn&#8217;t been defined, the space factor is adjusted to match
the end of sentence. This means that if you have, for example, an entry that ends
with a full stop, a redundant following full stop will be discarded and the space factor
adjusted (in case the entry is in uppercase) unless the entry is followed by additional
@@ -4250,7 +4238,7 @@ class="cmss-10">symbol</span><a
</p>
<div class="verbatim" id="verbatim-58">
\newcommand*{\glsxtrpostlinksymbol}{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrpostlinkAddDescOnFirstUse
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrpostlinkAddDescOnFirstUse
&#x00A0;<br />}
</div>
<!--l. 2191--><p class="nopar" >
@@ -4337,7 +4325,7 @@ class="cmss-10">general</span><a
</p>
<div class="verbatim" id="verbatim-59">
\newcommand*{\glsxtrpostlinkgeneral}{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrifwasfirstuse{\footnote{\glsentrydesc{\glslabel}}}{}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrifwasfirstuse{\footnote{\glsentrydesc{\glslabel}}}{}%
&#x00A0;<br />}
</div>
<!--l. 2237--><p class="nopar" >
@@ -4359,7 +4347,7 @@ href="#glo:bib2gls"><span
class="cmtt-10">bib2gls</span></a> you may find it more convenient to use the record
count commands described in <a
href="#sec:bib2gls"><span
-class="cmsy-10">&sect;</span>9 </a><a
+class="tcrm-1000">&sect;</span>9 </a><a
href="#sec:bib2gls"><span
class="cmtt-10">bib2gls</span>: Managing Reference Databases<!--tex4ht:ref: sec:bib2gls --></a>
instead.
@@ -4373,7 +4361,7 @@ attribute. This means that you not only need to enable entry counting with
<span
class="cmtt-10">\glsenableentrycount</span>, but you also need to set the appropriate attribute (see <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6
+class="tcrm-1000">&sect;</span>6
</a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a>).
</p><!--l. 2257--><p class="indent" > For example, instead of just doing:
@@ -4400,7 +4388,7 @@ entries assigned to other categories will be unchanged.
</p><!--l. 2270--><p class="indent" > Further information about entry counting, including the new per-unit feature, is
described in <a
href="#sec:entrycount"><span
-class="cmsy-10">&sect;</span>7.1 </a><a
+class="tcrm-1000">&sect;</span>7.1 </a><a
href="#sec:entrycount">Entry Counting (First Use Flag)<!--tex4ht:ref: sec:entrycount --></a>.
</p><!--l. 2273--><p class="noindent" >
</p>
@@ -4475,7 +4463,7 @@ href="#glo:firstuseflag">first use flag</a> will have already been unset before
class="cmtt-10">\glsxtrifwasfirstuse</span><a
id="dx1-11009"></a> should be used, see <a
href="#sec:entryfmtmods"><span
-class="cmsy-10">&sect;</span>2.4 </a><a
+class="tcrm-1000">&sect;</span>2.4 </a><a
href="#sec:entryfmtmods">Entry Display Style
Modifications<!--tex4ht:ref: sec:entryfmtmods --></a>.)
</p><!--l. 2305--><p class="indent" > There are two new commands provided with version 1.31+:
@@ -4513,7 +4501,7 @@ the commands provided with the <a
</p>
<div class="verbatim" id="verbatim-62">
-\ul{Some&#x00A0;text&#x00A0;about&#x00A0;\gls{html}.}
+\ul{Some&#x2002;text&#x2002;about&#x2002;\gls{html}.}
</div>
<!--l. 2325--><p class="nopar" > This causes the confusing error:
@@ -4521,7 +4509,7 @@ the commands provided with the <a
</p>
<div class="verbatim" id="verbatim-63">
-Glossary&#x00A0;entry&#x00A0;`{html}'&#x00A0;has&#x00A0;not&#x00A0;been&#x00A0;defined.
+Glossary&#x2002;entry&#x2002;`{html}'&#x2002;has&#x2002;not&#x2002;been&#x2002;defined.
</div>
<!--l. 2329--><p class="nopar" > The simplest workaround is to put <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">\gls{html}</span></span></span> inside the argument of <span
@@ -4532,7 +4520,7 @@ example:
</p>
<div class="verbatim" id="verbatim-64">
-\ul{Some&#x00A0;text&#x00A0;about&#x00A0;\mbox{\gls{html}}.}
+\ul{Some&#x2002;text&#x2002;about&#x2002;\mbox{\gls{html}}.}
</div>
<!--l. 2334--><p class="nopar" > This can work provided it&#8217;s not the first use of this entry. It if is, then unsetting the
first use flag causes a problem and results in the error:
@@ -4541,7 +4529,7 @@ first use flag causes a problem and results in the error:
</p>
<div class="verbatim" id="verbatim-65">
-!&#x00A0;Package&#x00A0;soul&#x00A0;Error:&#x00A0;Reconstruction&#x00A0;failed.
+!&#x2002;Package&#x2002;soul&#x2002;Error:&#x2002;Reconstruction&#x2002;failed.
</div>
<!--l. 2340--><p class="nopar" > The <span
class="cmss-10">glossaries-extra </span>package provides a way of temporarily switching off <span
@@ -4578,12 +4566,12 @@ example:
&#x00A0;<br />\usepackage[T1]{fontenc}
&#x00A0;<br />\usepackage{soul}
&#x00A0;<br />\usepackage{glossaries-extra}
-&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x00A0;markup&#x00A0;language}
+&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x2002;markup&#x2002;language}
&#x00A0;<br />\begin{document}
&#x00A0;<br />\GlsXtrStartUnsetBuffering
-&#x00A0;<br />\ul{Some&#x00A0;text&#x00A0;about&#x00A0;\mbox{\gls{html}}.}
+&#x00A0;<br />\ul{Some&#x2002;text&#x2002;about&#x2002;\mbox{\gls{html}}.}
&#x00A0;<br />\GlsXtrStopUnsetBuffering
-&#x00A0;<br />Next&#x00A0;use:&#x00A0;\gls{html}.
+&#x00A0;<br />Next&#x2002;use:&#x2002;\gls{html}.
&#x00A0;<br />\end{document}
</div>
<!--l. 2377--><p class="nopar" > Before you stop the unset buffering, you can iterate over the current buffer
@@ -4624,7 +4612,7 @@ class="cmtt-10">\protect</span>:
</p>
<div class="verbatim" id="verbatim-67">
\GlsXtrStartUnsetBuffering
-&#x00A0;<br />\ul{Some&#x00A0;text&#x00A0;about&#x00A0;\protect\gls{html}.}
+&#x00A0;<br />\ul{Some&#x2002;text&#x2002;about&#x2002;\protect\gls{html}.}
&#x00A0;<br />\GlsXtrStopUnsetBuffering
</div>
<!--l. 2410--><p class="nopar" > but the formatting (underlining in this example) won&#8217;t be applied. Another
@@ -4637,17 +4625,17 @@ possibility is:
\usepackage[T1]{fontenc}
&#x00A0;<br />\usepackage{soul}
&#x00A0;<br />\usepackage{glossaries-extra}
-&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x00A0;markup&#x00A0;language}
+&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x2002;markup&#x2002;language}
&#x00A0;<br />\newrobustcmd{\gul}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\def\glsxtrabbreviationfont##1{\GlsXtrExpandedFmt{\ul}{##1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\def\glsxtrregularfont##1{\GlsXtrExpandedFmt{\ul}{##1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;#1%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\def\glsxtrabbreviationfont##1{\GlsXtrExpandedFmt{\ul}{##1}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\def\glsxtrregularfont##1{\GlsXtrExpandedFmt{\ul}{##1}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;#1%
+&#x00A0;<br />&#x2002;&#x2002;}%
&#x00A0;<br />}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />\ul{Some&#x00A0;text&#x00A0;about&#x00A0;}\gls[textformat=gul]{html}.
-&#x00A0;<br />Next&#x00A0;use:&#x00A0;\gls{html}.
+&#x00A0;<br />\ul{Some&#x2002;text&#x2002;about&#x2002;}\gls[textformat=gul]{html}.
+&#x00A0;<br />Next&#x2002;use:&#x2002;\gls{html}.
&#x00A0;<br />\end{document}
</div>
<!--l. 2433--><p class="nopar" > This moves <span
@@ -4877,9 +4865,9 @@ class="cmss-10">glossaries </span>package:
</p>
<div class="verbatim" id="verbatim-70">
-\newacronym{ssi}{SSI}{Server&#x00A0;Side&#x00A0;Includes}
-&#x00A0;<br />\newacronym{html}{HTML}{Hypertext&#x00A0;Markup&#x00A0;Language}
-&#x00A0;<br />\newacronym{shtml}{S\gls{html}}{\gls{ssi}&#x00A0;enabled&#x00A0;\gls{html}}
+\newacronym{ssi}{SSI}{Server&#x2002;Side&#x2002;Includes}
+&#x00A0;<br />\newacronym{html}{HTML}{Hypertext&#x2002;Markup&#x2002;Language}
+&#x00A0;<br />\newacronym{shtml}{S\gls{html}}{\gls{ssi}&#x2002;enabled&#x2002;\gls{html}}
</div>
<!--l. 2552--><p class="nopar" >
</p><!--l. 2554--><p class="indent" > The main problems are:
@@ -4899,7 +4887,7 @@ href="#glo:firstuse">first use</a> if the long form is displayed before the shor
<div class="verbatim" id="verbatim-71">
- \gls{\uppercase&#x00A0;ssi}&#x00A0;enabled&#x00A0;\gls{html}
+ \gls{\uppercase&#x2002;ssi}&#x2002;enabled&#x2002;\gls{html}
</div>
<!--l. 2562--><p class="nopar" > which just doesn&#8217;t work. Grouping the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">\gls{ssi}</span></span></span> doesn&#8217;t work either as this
@@ -4909,7 +4897,7 @@ class="cmtt-10">\gls{ssi}</span></span></span> doesn&#8217;t work either as this
</p>
<div class="verbatim" id="verbatim-72">
- \uppercase{\gls{ssi}}&#x00A0;enabled&#x00A0;\gls{html}
+ \uppercase{\gls{ssi}}&#x2002;enabled&#x2002;\gls{html}
</div>
<!--l. 2567--><p class="nopar" > This will upper case the label <span
class="cmtt-10">ssi </span>so the entry won&#8217;t be recognised.
@@ -4950,7 +4938,7 @@ class="cmtt-10">shtml</span>. For example:
<div class="verbatim" id="verbatim-73">
- This&#x00A0;section&#x00A0;discusses&#x00A0;\gls{ssi},&#x00A0;\gls{html}&#x00A0;and&#x00A0;\gls{shtml}.
+ This&#x2002;section&#x2002;discusses&#x2002;\gls{ssi},&#x2002;\gls{html}&#x2002;and&#x2002;\gls{shtml}.
</div>
<!--l. 2586--><p class="nopar" > This produces:
</p><div class="quote">
@@ -4971,8 +4959,8 @@ class="cmtt-10">shtml </span>entry, for example:
</p>
<div class="verbatim" id="verbatim-74">
- The&#x00A0;sample&#x00A0;files&#x00A0;are&#x00A0;either&#x00A0;\gls{html}&#x00A0;or&#x00A0;\gls{shtml},&#x00A0;but&#x00A0;let's
- &#x00A0;<br />first&#x00A0;discuss&#x00A0;\gls{ssi}.
+ The&#x2002;sample&#x2002;files&#x2002;are&#x2002;either&#x2002;\gls{html}&#x2002;or&#x2002;\gls{shtml},&#x2002;but&#x2002;let's
+ &#x00A0;<br />first&#x2002;discuss&#x2002;\gls{ssi}.
</div>
<!--l. 2601--><p class="nopar" > This produces:
</p><div class="quote">
@@ -4992,7 +4980,7 @@ class="cmtt-10">shtml </span>entry is used before (or without) the other two
</p>
<div class="verbatim" id="verbatim-75">
- This&#x00A0;article&#x00A0;is&#x00A0;an&#x00A0;introduction&#x00A0;to&#x00A0;\gls{shtml}.
+ This&#x2002;article&#x2002;is&#x2002;an&#x2002;introduction&#x2002;to&#x2002;\gls{shtml}.
</div>
<!--l. 2617--><p class="nopar" > This produces:
</p><div class="quote">
@@ -5036,7 +5024,7 @@ class="cmtt-10">shtml</span>
</p>
<div class="verbatim" id="verbatim-77">
- \gls{shtml}&#x00A0;...&#x00A0;\glsreset{html}\gls{shtml}
+ \gls{shtml}&#x2002;...&#x2002;\glsreset{html}\gls{shtml}
</div>
<!--l. 2644--><p class="nopar" > The next use of <span
class="cmtt-10">shtml </span>produces &#8220;Shypertext markup language (HTML)&#8221;,
@@ -5088,8 +5076,8 @@ like:
</p>
<div class="verbatim" id="verbatim-78">
\newacronym
-&#x00A0;<br />&#x00A0;[description={\acrshort{ssi}&#x00A0;enabled&#x00A0;\acrshort{html}}]
-&#x00A0;<br />&#x00A0;{shtml}{SHTML}{SSI&#x00A0;enabled&#x00A0;HTML}
+&#x00A0;<br />&#x2002;[description={\acrshort{ssi}&#x2002;enabled&#x2002;\acrshort{html}}]
+&#x00A0;<br />&#x2002;{shtml}{SHTML}{SSI&#x2002;enabled&#x2002;HTML}
</div>
<!--l. 2677--><p class="nopar" > with <span
class="cmss-10">glossaries </span>or:
@@ -5099,8 +5087,8 @@ class="cmss-10">glossaries </span>or:
</p>
<div class="verbatim" id="verbatim-79">
\newabbreviation
-&#x00A0;<br />&#x00A0;[description={\glsxtrshort{ssi}&#x00A0;enabled&#x00A0;\glsxtrshort{html}}]
-&#x00A0;<br />&#x00A0;{shtml}{SHTML}{SSI&#x00A0;enabled&#x00A0;HTML}
+&#x00A0;<br />&#x2002;[description={\glsxtrshort{ssi}&#x2002;enabled&#x2002;\glsxtrshort{html}}]
+&#x00A0;<br />&#x2002;{shtml}{SHTML}{SSI&#x2002;enabled&#x2002;HTML}
</div>
<!--l. 2683--><p class="nopar" > with <span
class="cmss-10">glossaries-extra</span>. This fixes all the above listed problems (as long as you don&#8217;t
@@ -5122,9 +5110,9 @@ class="cmtt-10">\glsabbrvfont</span>:
</p>
<div class="verbatim" id="verbatim-80">
\setabbreviationstyle{long-short-sc}
-&#x00A0;<br />\newabbreviation{ssi}{ssi}{server-side&#x00A0;includes}
-&#x00A0;<br />\newabbreviation{html}{html}{hypertext&#x00A0;markup&#x00A0;language}
-&#x00A0;<br />\newabbreviation{shtml}{shtml}{\glsabbrvfont{ssi}&#x00A0;enabled
+&#x00A0;<br />\newabbreviation{ssi}{ssi}{server-side&#x2002;includes}
+&#x00A0;<br />\newabbreviation{html}{html}{hypertext&#x2002;markup&#x2002;language}
+&#x00A0;<br />\newabbreviation{shtml}{shtml}{\glsabbrvfont{ssi}&#x2002;enabled
&#x00A0;<br />\glsabbrvfont{html}}
</div>
<!--l. 2699--><p class="nopar" > This will pick up the font style setting of the outer entry (shtml, in the above case).
@@ -5152,7 +5140,7 @@ form
</p>
<div class="verbatim" id="verbatim-81">
-\gls{ssi}&#x00A0;enabled&#x00A0;\gls{html}
+\gls{ssi}&#x2002;enabled&#x2002;\gls{html}
</div>
<!--l. 2715--><p class="nopar" > is treated as
@@ -5160,7 +5148,7 @@ form
</p>
<div class="verbatim" id="verbatim-82">
-{\glstext[hyper=false,noindex]{ssi}}&#x00A0;enabled
+{\glstext[hyper=false,noindex]{ssi}}&#x2002;enabled
&#x00A0;<br />{\glstext[hyper=false,noindex]{html}}
</div>
<!--l. 2720--><p class="nopar" > This overcomes problems&#x00A0;<a
@@ -5215,7 +5203,7 @@ class="cmtt-10">shtml </span>entry had instead been defined as:
<div class="verbatim" id="verbatim-83">
-\newacronym{shtml}{SHTML}{\acrshort{ssi}&#x00A0;enabled&#x00A0;\acrshort{html}}
+\newacronym{shtml}{SHTML}{\acrshort{ssi}&#x2002;enabled&#x2002;\acrshort{html}}
</div>
<!--l. 2744--><p class="nopar" > then (using the <a
href="#abbrstyle.long-short"><span
@@ -5228,8 +5216,8 @@ href="#glo:firstuse">first use</a> will be like
</p>
<div class="verbatim" id="verbatim-84">
-{\acronymfont{\glsentryshort{ssi}}}&#x00A0;enabled
-&#x00A0;<br />{\acronymfont{\glsentryshort{html}}}&#x00A0;(SHTML)
+{\acronymfont{\glsentryshort{ssi}}}&#x2002;enabled
+&#x00A0;<br />{\acronymfont{\glsentryshort{html}}}&#x2002;(SHTML)
</div>
<!--l. 2750--><p class="nopar" > whereas if the entry is defined as:
@@ -5237,7 +5225,7 @@ href="#glo:firstuse">first use</a> will be like
</p>
<div class="verbatim" id="verbatim-85">
-\newabbreviation{shtml}{SHTML}{\glsxtrshort{ssi}&#x00A0;enabled
+\newabbreviation{shtml}{SHTML}{\glsxtrshort{ssi}&#x2002;enabled
&#x00A0;<br />\glsxtrshort{html}}
</div>
<!--l. 2755--><p class="nopar" > then the <a
@@ -5248,8 +5236,8 @@ href="#glo:firstuse">first use</a> will be like:
</p>
<div class="verbatim" id="verbatim-86">
-{\glsabbrvfont{\glsentryshort{ssi}}}&#x00A0;enabled
-&#x00A0;<br />{\glsabbrvfont{\glsentryshort{html}}}&#x00A0;(SHTML)
+{\glsabbrvfont{\glsentryshort{ssi}}}&#x2002;enabled
+&#x00A0;<br />{\glsabbrvfont{\glsentryshort{html}}}&#x2002;(SHTML)
</div>
<!--l. 2760--><p class="nopar" > Note that the first optional argument of <span
class="cmtt-10">\acrshort </span>or <span
@@ -5275,10 +5263,10 @@ where &#x27E8;<span
class="cmti-10">field</span>&#x27E9; is the field label and corresponds to a command in the form <span
class="cmtt-10">\gls</span>&#x27E8;<span
class="cmti-10">field</span>&#x27E9;
-(e.g.&#x00A0;<span
+(e.g.&#x2002;<span
class="cmtt-10">\glstext</span>) or in the form <span
class="cmtt-10">\glsxtr</span>&#x27E8;<span
-class="cmti-10">field</span>&#x27E9; (e.g.&#x00A0;<span
+class="cmti-10">field</span>&#x27E9; (e.g.&#x2002;<span
class="cmtt-10">\glsxtrshort</span>).
</p><!--l. 2776--><p class="indent" > There&#8217;s a shortcut command for the most common fields:
</p><!--l. 2777--><p class="indent" > <hr><div title="Definition"><a
@@ -5309,7 +5297,7 @@ class="cmtt-10">\glsfmt</span>&#x27E8;<span
class="cmti-10">field</span>&#x27E9; commands described
in <a
href="#sec:headtitle"><span
-class="cmsy-10">&sect;</span>5 </a><a
+class="tcrm-1000">&sect;</span>5 </a><a
href="#sec:headtitle">Entries in Sectioning Titles, Headers, Captions and Contents<!--tex4ht:ref: sec:headtitle --></a> but the post-link
hook is also suppressed and extra grouping is added. It automatically sets
<span
@@ -5377,7 +5365,7 @@ glossary. For example:
</p>
<div class="verbatim" id="verbatim-91">
{\let\glspostlinkhook\relax
-&#x00A0;<br />&#x00A0;\glsxtrshort[hyper=false,noindex]{ssi}[]%
+&#x00A0;<br />&#x2002;\glsxtrshort[hyper=false,noindex]{ssi}[]%
&#x00A0;<br />}
</div>
<!--l. 2828--><p class="nopar" > in the main body of the document or
@@ -5387,7 +5375,7 @@ glossary. For example:
</p>
<div class="verbatim" id="verbatim-92">
{\let\glspostlinkhook\relax
-&#x00A0;<br />&#x00A0;\glsxtrshort[noindex]{ssi}[]%
+&#x00A0;<br />&#x2002;\glsxtrshort[noindex]{ssi}[]%
&#x00A0;<br />}
</div>
<!--l. 2834--><p class="nopar" > inside the glossary. (Note the post-link hook is locally disabled.)
@@ -5458,7 +5446,7 @@ class="cmti-10">really need </span>nested commands, the safest method is
</p>
<div class="verbatim" id="verbatim-94">
-\newabbreviation{shtml}{shtml}{{}\glsxtrp{short}{ssi}&#x00A0;enabled
+\newabbreviation{shtml}{shtml}{{}\glsxtrp{short}{ssi}&#x2002;enabled
&#x00A0;<br />\glsxtrp{short}{html}}
</div>
<!--l. 2876--><p class="nopar" > but be aware that it may have some unexpected results occasionally.
@@ -5476,19 +5464,19 @@ class="cmti-10">really need </span>nested commands, the safest method is
&#x00A0;<br />\usepackage[nopostdot=false]{glossaries-extra}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\setabbreviationstyle{long-short-sc}
-&#x00A0;<br />\newabbreviation{ssi}{ssi}{server-side&#x00A0;includes}
-&#x00A0;<br />\newabbreviation{html}{html}{hypertext&#x00A0;markup&#x00A0;language}
-&#x00A0;<br />\newabbreviation{shtml}{shtml}{{}\glsps{ssi}&#x00A0;enabled&#x00A0;{}\glsps{html}}
+&#x00A0;<br />\newabbreviation{ssi}{ssi}{server-side&#x2002;includes}
+&#x00A0;<br />\newabbreviation{html}{html}{hypertext&#x2002;markup&#x2002;language}
+&#x00A0;<br />\newabbreviation{shtml}{shtml}{{}\glsps{ssi}&#x2002;enabled&#x2002;{}\glsps{html}}
&#x00A0;<br />\pagestyle{headings}
&#x00A0;<br />\glssetcategoryattribute{abbreviation}{headuc}{true}
&#x00A0;<br />\glssetcategoryattribute{abbreviation}{glossdesc}{title}
&#x00A0;<br />\begin{document}
&#x00A0;<br />\tableofcontents
&#x00A0;<br />\chapter{\glsfmtfull{shtml}}
-&#x00A0;<br />First&#x00A0;use:&#x00A0;\gls{shtml},&#x00A0;\gls{ssi}&#x00A0;and&#x00A0;\gls{html}.
-&#x00A0;<br />Next&#x00A0;use:&#x00A0;\gls{shtml},&#x00A0;\gls{ssi}&#x00A0;and&#x00A0;\gls{html}.
+&#x00A0;<br />First&#x2002;use:&#x2002;\gls{shtml},&#x2002;\gls{ssi}&#x2002;and&#x2002;\gls{html}.
+&#x00A0;<br />Next&#x2002;use:&#x2002;\gls{shtml},&#x2002;\gls{ssi}&#x2002;and&#x2002;\gls{html}.
&#x00A0;<br />\newpage
-&#x00A0;<br />Next&#x00A0;page.
+&#x00A0;<br />Next&#x2002;page.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\end{document}
</div>
@@ -5508,7 +5496,7 @@ class="cmtt-10">\newacronym</span><a
id="dx1-14001"></a> to use <span
class="cmtt-10">\newabbreviation </span>(see <a
href="#sec:abbreviations"><span
-class="cmsy-10">&sect;</span>4 </a><a
+class="tcrm-1000">&sect;</span>4 </a><a
href="#sec:abbreviations">Abbreviations<!--tex4ht:ref: sec:abbreviations --></a>). The
simplest way to update a document that uses <span
class="cmtt-10">\newacronym </span>from <span
@@ -5567,7 +5555,7 @@ class="cmss-10">glossaries</span>
&#x00A0;<br />\usepackage[acronym,nopostdot,toc]{glossaries}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\setacronymstyle{long-short}
-&#x00A0;<br />\newacronym{html}{HTML}{hypertext&#x00A0;markup&#x00A0;language}
+&#x00A0;<br />\newacronym{html}{HTML}{hypertext&#x2002;markup&#x2002;language}
&#x00A0;<br />\begin{document}
&#x00A0;<br />\gls{html}
&#x00A0;<br />\printglossaries
@@ -5584,7 +5572,7 @@ class="cmss-10">glossaries-extra</span>:
&#x00A0;<br />\usepackage[acronym]{glossaries-extra}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\setabbreviationstyle[acronym]{long-short}
-&#x00A0;<br />\newacronym{html}{HTML}{hypertext&#x00A0;markup&#x00A0;language}
+&#x00A0;<br />\newacronym{html}{HTML}{hypertext&#x2002;markup&#x2002;language}
&#x00A0;<br />\begin{document}
&#x00A0;<br />\gls{html}
&#x00A0;<br />\printglossaries
@@ -5597,7 +5585,7 @@ predefined acronym styles provided by <span
class="cmss-10">glossaries</span>, but note that the new styles use
different formatting commands. See <a
href="#sec:predefabbrvstyles"><span
-class="cmsy-10">&sect;</span>4.4 </a><a
+class="tcrm-1000">&sect;</span>4.4 </a><a
href="#sec:predefabbrvstyles">Predefined Abbreviation Styles<!--tex4ht:ref: sec:predefabbrvstyles --></a> for further
details.
</p>
@@ -5898,7 +5886,7 @@ class="cmss-10">glossaries </span>for that document or define an equivalent abbr
class="cmtt-10">\newabbreviationstyle</span><a
id="dx1-14063"></a>. (See <a
href="#sec:newabbrvstyle"><span
-class="cmsy-10">&sect;</span>4.5 </a><a
+class="tcrm-1000">&sect;</span>4.5 </a><a
href="#sec:newabbrvstyle">Defining New Abbreviation Styles<!--tex4ht:ref: sec:newabbrvstyle --></a> for further
details.)
</p><!--l. 3039--><p class="indent" > <hr><div title="Definition"><a
@@ -5977,7 +5965,7 @@ href="#catattr.targeturl"><span
class="cmss-10">targeturl</span></a><a
id="dx1-15002"></a> attribute to create a link to an external URL. (See <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6
+class="tcrm-1000">&sect;</span>6
</a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a> for further details.) As from v1.12 both the starred and unstarred version
check that the glossary doesn&#8217;t already exist. (The <span
@@ -6076,7 +6064,7 @@ provided with the <span
class="cmss-10">glossaries </span>package. These modifications are described in more detail
in <a
href="#x1-190002.10.1"><span
-class="cmsy-10">&sect;</span>2.10.1 </a><a
+class="tcrm-1000">&sect;</span>2.10.1 </a><a
href="#x1-190002.10.1">The <span
class="cmss-10">glossaries-extra-stylemods </span>Package<!--tex4ht:ref: sec:stylemods --></a>.
</p><!--l. 3137--><p class="indent" > The <span
@@ -6114,7 +6102,7 @@ For example:
</p>
<div class="verbatim" id="verbatim-100">
-\glsxtrsetgrouptitle{A}{A&#x00A0;(a)}
+\glsxtrsetgrouptitle{A}{A&#x2002;(a)}
</div>
<!--l. 3155--><p class="nopar" > This uses a global assignment. If you need to scope the change you can
use
@@ -6149,7 +6137,7 @@ class="cmss-10">glossdescfont</span></a><a
id="dx1-17006"></a> attributes
(see <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6 </a><a
+class="tcrm-1000">&sect;</span>6 </a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a>). This means you can make simple font or case-changing
modifications to the name and description without defining a new glossary
style.
@@ -6172,22 +6160,16 @@ class="cmtt-10">\glossentrysymbol</span><a
<span
class="cmtt-10">\texorpdfstring</span><a
id="dx1-17011"></a><span
-class="cmtt-10">{</span>&#x27E8;<span class="TEX"><span
-class="cmitt-10">T</span><span
-class="E"><span
-class="cmitt-10">E</span></span><span
-class="cmitt-10">X</span></span><span
-class="cmitt-10">&#x00A0;code</span>&#x27E9;<span
+class="cmtt-10">{</span>&#x27E8;<span
+class="cmitt-10">TeX</span><span
+class="cmitt-10">&#x2002;code</span>&#x27E9;<span
class="cmtt-10">}{</span>&#x27E8;<span
class="cmitt-10">PDF</span>&#x27E9;<span
class="cmtt-10">}</span>
</div>
-</div> The &#x27E8;<span class="TEX"><span
-class="cmti-10">T</span><span
-class="E"><span
-class="cmti-10">E</span></span><span
-class="cmti-10">X</span></span><span
-class="cmti-10">&#x00A0;code</span>&#x27E9; part is robust and deals with the actual typesetting of the symbol.
+</div> The &#x27E8;<span
+class="cmti-10">TeX</span><span
+class="cmti-10">&#x2002;code</span>&#x27E9; part is robust and deals with the actual typesetting of the symbol.
The &#x27E8;<span
class="cmti-10">PDF</span>&#x27E9; part is simply:
<!--l. 3185--><p class="indent" > <hr><div title="Definition"><a
@@ -6222,8 +6204,7 @@ field:
<!--l. 3198--><p class="nopar" > Alternatively, if you are using <a
id="dx1-17016"></a><a
href="#glo:bib2gls"><span
-class="cmtt-10">bib2gls</span></a> you can use the <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;parser library to
+class="cmtt-10">bib2gls</span></a> you can use the TeX&#x2002;parser library to
interpret a copy of the <span
class="cmss-10">symbol</span><a
id="dx1-17017"></a> field and use that. For example, with the resource
@@ -6233,8 +6214,8 @@ options:
</p>
<div class="verbatim" id="verbatim-102">
-&#x00A0;&#x00A0;replicate-fields={symbol=user1},
-&#x00A0;<br />&#x00A0;&#x00A0;interpret-fields={user1}
+&#x2002;&#x2002;replicate-fields={symbol=user1},
+&#x00A0;<br />&#x2002;&#x2002;interpret-fields={user1}
</div>
<!--l. 3205--><p class="nopar" > This stores the interpreted value of the symbol in the <span
class="cmss-10">user1</span><a
@@ -6247,7 +6228,7 @@ do:
<div class="verbatim" id="verbatim-103">
\renewcommand{\glsentrypdfsymbol}[1]{\glsentryuseri{#1}}
</div>
-<!--l. 3210--><p class="nopar" > (You may need <span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x00A0;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>&#x00A0;with this method.) This allows
+<!--l. 3210--><p class="nopar" > (You may need <span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x2002;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>&#x2002;with this method.) This allows
<span
class="cmtt-10">\glossentrysymbol </span>to be used in a section heading with standalone definitions.
</p><!--l. 3215--><p class="indent" > If you want to adapt a style to use another field instead of <span
@@ -6311,7 +6292,7 @@ class="cmsy-10">} </span></div><hr>
</p><!--l. 3238--><p class="noindent" >
See <a
href="#sec:autoindex"><span
-class="cmsy-10">&sect;</span>8 </a><a
+class="tcrm-1000">&sect;</span>8 </a><a
href="#sec:autoindex">Auto-Indexing<!--tex4ht:ref: sec:autoindex --></a> for further details.
</p><!--l. 3242--><p class="indent" > As from version 1.04, the post-name hook <span
class="cmtt-10">\glsxtrpostnamehook </span>will also use
@@ -6330,7 +6311,7 @@ category:
</p>
<div class="verbatim" id="verbatim-104">
\newcommand*{\glsxtrpostnamesymbol}{\space
-&#x00A0;<br />&#x00A0;(\glsentrysymbol{\glscurrententrylabel})}
+&#x00A0;<br />&#x2002;(\glsentrysymbol{\glscurrententrylabel})}
</div>
<!--l. 3253--><p class="nopar" > For convenience, as from v1.31, you can use
</p><!--l. 3255--><p class="indent" > <hr><div title="Definition"><a
@@ -6436,7 +6417,7 @@ do:
</p>
<div class="verbatim" id="verbatim-105">
\renewcommand{\glsxtrpostdescgeneral}{\space
-&#x00A0;<br />&#x00A0;(plural:&#x00A0;\glsentryplural{\glscurrententrylabel})}
+&#x00A0;<br />&#x2002;(plural:&#x2002;\glsentryplural{\glscurrententrylabel})}
</div>
<!--l. 3311--><p class="nopar" > This means you don&#8217;t have to define a custom glossary style, which you may find
more complicated. (It also allows more flexibility if you decide to change the
@@ -6453,7 +6434,7 @@ href="#styopt.nopostdot"><span
class="cmss-10">nopostdot</span></a><a
id="dx1-17039"></a> option to suppress the terminating full stop.) See <a
href="#x1-190002.10.1"><span
-class="cmsy-10">&sect;</span>2.10.1 </a><a
+class="tcrm-1000">&sect;</span>2.10.1 </a><a
href="#x1-190002.10.1">The
<span
class="cmss-10">glossaries-extra-stylemods </span>Package<!--tex4ht:ref: sec:stylemods --></a> to patch the predefined styles provided by <span
@@ -6522,7 +6503,7 @@ class="cmti-10">pages</span>&#x27E9; is the text to display otherwise. For examp
</p>
<div class="verbatim" id="verbatim-106">
-\GlsXtrEnablePreLocationTag{Page:&#x00A0;}{Pages:&#x00A0;}
+\GlsXtrEnablePreLocationTag{Page:&#x2002;}{Pages:&#x2002;}
</div>
<!--l. 3362--><p class="nopar" > An extra run is required when using this command.
</p><!--l. 3365--><p class="indent" > <div class="important" title="Important Note"> Use <span
@@ -6960,7 +6941,7 @@ then:
</p>
<div class="verbatim" id="verbatim-115">
\renewcommand{\glstreePreHeader}[2]{%
-&#x00A0;<br />&#x00A0;\pdfbookmark[1]{#2}{\currentglossary.#1}%
+&#x00A0;<br />&#x2002;\pdfbookmark[1]{#2}{\currentglossary.#1}%
&#x00A0;<br />}
</div>
<!--l. 3611--><p class="nopar" > will insert section-level bookmarks. The use of <span
@@ -7208,8 +7189,7 @@ guaranteed to work as it may depend on fonts or commands that <a
class="cmtt-10">bib2gls</span>
can&#8217;t replicate, but it should be suitable for names that just consist of text,
and can be more efficient than iterating over all the defined entries using
-<span class="TEX">T<span
-class="E">E</span>X</span>.
+TeX.
</p><!--l. 3754--><p class="indent" > The command <span
class="cmtt-10">\glsfindwidesttoplevelname </span>provided by <span
class="cmss-10">glossary-tree</span><a
@@ -7537,8 +7517,8 @@ default. For example, if you want the symbol to be included:
</p>
<div class="verbatim" id="verbatim-119">
\renewcommand*{\glsxtrbookindexname}[1]{%
-&#x00A0;<br />&#x00A0;\glossentryname{#1}%
-&#x00A0;<br />&#x00A0;\ifglshassymbol{#1}{\space&#x00A0;(\glossentrysymbol{#1})}{}%
+&#x00A0;<br />&#x2002;\glossentryname{#1}%
+&#x00A0;<br />&#x2002;\ifglshassymbol{#1}{\space&#x2002;(\glossentrysymbol{#1})}{}%
&#x00A0;<br />}
</div>
<!--l. 3942--><p class="nopar" > or if you want the description (if set):
@@ -7548,8 +7528,8 @@ default. For example, if you want the symbol to be included:
</p>
<div class="verbatim" id="verbatim-120">
\renewcommand*{\glsxtrbookindexname}[1]{%
-&#x00A0;<br />&#x00A0;\glossentryname{#1}%
-&#x00A0;<br />&#x00A0;\ifglshasdesc{#1}{\space&#x00A0;\glossentrydesc{#1}\glspostdescription}{}%
+&#x00A0;<br />&#x2002;\glossentryname{#1}%
+&#x00A0;<br />&#x2002;\ifglshasdesc{#1}{\space&#x2002;\glossentrydesc{#1}\glspostdescription}{}%
&#x00A0;<br />}
</div>
<!--l. 3949--><p class="nopar" > (which picks up the post-description hook).
@@ -7721,23 +7701,23 @@ appended after the child entries using:
</p>
<div class="verbatim" id="verbatim-122">
\renewcommand{\glsxtrbookindexatendgroup}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrifhasfield{seealso}{#1}{\glstreesubitem\glsxtruseseealso{#1}}{}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrifhasfield{seealso}{#1}{\glstreesubitem\glsxtruseseealso{#1}}{}%
&#x00A0;<br />}
&#x00A0;<br />\renewcommand{\glsxtrbookindexbetween}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrbookindexatendgroup{#1}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrbookindexatendgroup{#1}%
&#x00A0;<br />}%
&#x00A0;<br />\renewcommand{\glsxtrbookindexsubatendgroup}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrifhasfield{seealso}{#1}{\glstreesubsubitem\glsxtruseseealso{#1}}{}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrifhasfield{seealso}{#1}{\glstreesubsubitem\glsxtruseseealso{#1}}{}%
&#x00A0;<br />}
&#x00A0;<br />\renewcommand{\glsxtrbookindexsubbetween}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrbookindexsubatendgroup{#1}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrbookindexsubatendgroup{#1}%
&#x00A0;<br />}
&#x00A0;<br />\renewcommand{\glsxtrbookindexsubsubatendgroup}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrifhasfield{seealso}{#1}%
-&#x00A0;<br />&#x00A0;&#x00A0;{\glstreeitem\hspace*{40pt}\glsxtruseseealso{#1}}{}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrifhasfield{seealso}{#1}%
+&#x00A0;<br />&#x2002;&#x2002;{\glstreeitem\hspace*{40pt}\glsxtruseseealso{#1}}{}%
&#x00A0;<br />}
&#x00A0;<br />\renewcommand{\glsxtrbookindexsubsubbetween}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrbookindexsubsubatendgroup{#1}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrbookindexsubsubatendgroup{#1}%
&#x00A0;<br />}
</div>
<!--l. 4073--><p class="nopar" > This uses <span
@@ -7792,7 +7772,7 @@ which is defined as
</p>
<div class="verbatim" id="verbatim-123">
\newcommand*{\glsxtrbookindexformatheader}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\par{\centering\glstreegroupheaderfmt{#1}\par}%
+&#x00A0;<br />&#x2002;&#x2002;\par{\centering\glstreegroupheaderfmt{#1}\par}%
&#x00A0;<br />}
</div>
<!--l. 4106--><p class="nopar" > where <span
@@ -7856,8 +7836,8 @@ current entry:
</p>
<div class="verbatim" id="verbatim-124">
\renewcommand{\glsxtrbookindexname}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrbookindexmarkentry{#1}%
-&#x00A0;<br />&#x00A0;&#x00A0;\glossentryname{#1}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrbookindexmarkentry{#1}%
+&#x00A0;<br />&#x2002;&#x2002;\glossentryname{#1}%
&#x00A0;<br />}
</div>
<!--l. 4155--><p class="nopar" > If you only want to mark the top-level entries, remember to redefine
@@ -7870,7 +7850,7 @@ class="cmtt-10">\glsxtrbookindexname</span>:
</p>
<div class="verbatim" id="verbatim-125">
\renewcommand{\glsxtrbookindexsubname}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glossentryname{#1}%
+&#x00A0;<br />&#x2002;&#x2002;\glossentryname{#1}%
&#x00A0;<br />}
</div>
<!--l. 4163--><p class="nopar" >
@@ -7883,11 +7863,11 @@ entry for the current page with:
</p>
<div class="verbatim" id="verbatim-126">
-&#x00A0;&#x00A0;\pagestyle{fancy}%
-&#x00A0;<br />&#x00A0;&#x00A0;\lhead{\thepage}%
-&#x00A0;<br />&#x00A0;&#x00A0;\lfoot{\glsxtrbookindexfirstmark}%
-&#x00A0;<br />&#x00A0;&#x00A0;\cfoot{}%
-&#x00A0;<br />&#x00A0;&#x00A0;\rfoot{\glsxtrbookindexlastmark}%
+&#x2002;&#x2002;\pagestyle{fancy}%
+&#x00A0;<br />&#x2002;&#x2002;\lhead{\thepage}%
+&#x00A0;<br />&#x2002;&#x2002;\lfoot{\glsxtrbookindexfirstmark}%
+&#x00A0;<br />&#x2002;&#x2002;\cfoot{}%
+&#x00A0;<br />&#x2002;&#x2002;\rfoot{\glsxtrbookindexlastmark}%
</div>
<!--l. 4173--><p class="nopar" >
</p><!--l. 4175--><p class="noindent" >
@@ -8115,7 +8095,7 @@ to redefine this command:
</p>
<div class="verbatim" id="verbatim-131">
\renewcommand{\glslongextraUpdateWidestChild}[2]{%
-&#x00A0;<br />&#x00A0;\glslongextraUpdateWidest{#2}%
+&#x00A0;<br />&#x2002;\glslongextraUpdateWidest{#2}%
&#x00A0;<br />}
</div>
<!--l. 4298--><p class="nopar" >
@@ -8128,7 +8108,7 @@ class="cmtt-10">\glslongextraSetDescWidth</span>. For example:
</p>
<div class="verbatim" id="verbatim-132">
\renewcommand{\glslongextraSetDescWidth}{%
-&#x00A0;<br />&#x00A0;&#x00A0;\setlength{\glsdescwidth}{0.6\linewidth}%
+&#x00A0;<br />&#x2002;&#x2002;\setlength{\glsdescwidth}{0.6\linewidth}%
&#x00A0;<br />}
</div>
<!--l. 4307--><p class="nopar" >
@@ -8152,8 +8132,8 @@ you can redefine this command. For example:
</p>
<div class="verbatim" id="verbatim-133">
\renewcommand{\glslongextraSymSetDescWidth}{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glslongextraSetDescWidth
-&#x00A0;<br />&#x00A0;&#x00A0;\addtolength{\glsdescwidth}{-3cm}%
+&#x00A0;<br />&#x2002;&#x2002;\glslongextraSetDescWidth
+&#x00A0;<br />&#x2002;&#x2002;\addtolength{\glsdescwidth}{-3cm}%
&#x00A0;<br />}
</div>
<!--l. 4324--><p class="nopar" > or
@@ -8163,7 +8143,7 @@ you can redefine this command. For example:
</p>
<div class="verbatim" id="verbatim-134">
\renewcommand{\glslongextraSymSetDescWidth}{%
-&#x00A0;<br />&#x00A0;&#x00A0;\setlength{\glsdescwidth}{.5\linewidth}%
+&#x00A0;<br />&#x2002;&#x2002;\setlength{\glsdescwidth}{.5\linewidth}%
&#x00A0;<br />}
</div>
<!--l. 4330--><p class="nopar" >
@@ -8340,10 +8320,10 @@ happen to be the same).
</p>
<div class="verbatim" id="verbatim-135">
\renewcommand*{\glslongextraGroupHeading}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrgetgrouptitle{#2}{\thisgrptitle}%
-&#x00A0;<br />&#x00A0;&#x00A0;\glslongextraHeaderFmt{\thisgrptitle}%
-&#x00A0;<br />&#x00A0;&#x00A0;\tabularnewline
-&#x00A0;<br />&#x00A0;&#x00A0;\noalign{\vskip\normalbaselineskip}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrgetgrouptitle{#2}{\thisgrptitle}%
+&#x00A0;<br />&#x2002;&#x2002;\glslongextraHeaderFmt{\thisgrptitle}%
+&#x00A0;<br />&#x2002;&#x2002;\tabularnewline
+&#x00A0;<br />&#x2002;&#x2002;\noalign{\vskip\normalbaselineskip}%
&#x00A0;<br />}
</div>
<!--l. 4426--><p class="nopar" > This ignores the first argument and just puts the group title in the first column
@@ -8870,8 +8850,8 @@ example:
</p>
<div class="verbatim" id="verbatim-140">
\renewcommand*{\glstopicGroupHeading}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrgetgrouptitle{#1}{\thisgrptitle}%
-&#x00A0;<br />&#x00A0;&#x00A0;\section*{\thisgrptitle}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrgetgrouptitle{#1}{\thisgrptitle}%
+&#x00A0;<br />&#x2002;&#x2002;\section*{\thisgrptitle}%
&#x00A0;<br />}
</div>
<!--l. 4740--><p class="nopar" > Remember that if you use <a
@@ -9092,7 +9072,7 @@ document:
&#x00A0;<br />\setabbreviationstyle{footnote}
&#x00A0;<br />\newabbreviation{ex}{EX}{Example}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />Compare&#x00A0;\gls{ex}['s]&#x00A0;with&#x00A0;\glsfirst{ex}['s].
+&#x00A0;<br />Compare&#x2002;\gls{ex}['s]&#x2002;with&#x2002;\glsfirst{ex}['s].
&#x00A0;<br />\end{document}
</div>
<!--l. 4882--><p class="nopar" > The <a
@@ -9173,12 +9153,12 @@ class="cmss-10">shortplural</span><a
id="dx1-24015"></a> key to just &#x27E8;<span
class="cmti-10">short</span>&#x27E9; (without appending the plural suffix). See <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6
+class="tcrm-1000">&sect;</span>6
</a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a> for further details.
</p><!--l. 4927--><p class="indent" > See <a
href="#sec:nested"><span
-class="cmsy-10">&sect;</span>2.8 </a><a
+class="tcrm-1000">&sect;</span>2.8 </a><a
href="#sec:nested">Nested Links<!--tex4ht:ref: sec:nested --></a> regarding the pitfalls of using commands like <span
class="cmtt-10">\gls</span><a
id="dx1-24016"></a> or
@@ -9205,7 +9185,7 @@ class="cmss-10">category</span><a
class="cmtt-10">acronym </span>(see also
<a
href="#sec:acronymmods"><span
-class="cmsy-10">&sect;</span>2.9 </a><a
+class="tcrm-1000">&sect;</span>2.9 </a><a
href="#sec:acronymmods">Acronym Style Modifications<!--tex4ht:ref: sec:acronymmods --></a>) so
</p><!--l. 4940--><p class="indent" > <hr><div title="Definition"><a
id="dx1-24020"></a> <span
@@ -9338,7 +9318,7 @@ replace <span
class="cmtt-10">\setacronymstyle</span>, <span
class="cmtt-10">\acrshort </span>etc are described in <a
href="#sec:abbrstyle"><span
-class="cmsy-10">&sect;</span>4.2 </a><a
+class="tcrm-1000">&sect;</span>4.2 </a><a
href="#sec:abbrstyle">Abbreviation Styles<!--tex4ht:ref: sec:abbrstyle --></a>.
The <a
href="#styopt.acronymlists"><span
@@ -9410,7 +9390,7 @@ class="cmss-10">tagging</span></a><a
id="dx1-25005"></a> attribute will automatically be set for those
categories. You can later set this attribute for other categories (see <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6 </a><a
+class="tcrm-1000">&sect;</span>6 </a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a>) but
this must be done before the glossary is displayed.
</p><!--l. 5043--><p class="indent" > The accompanying sample file <span
@@ -9436,15 +9416,15 @@ example:
</p>
<div class="verbatim" id="verbatim-143">
\newacronym
-&#x00A0;<br />&#x00A0;[description={a&#x00A0;system&#x00A0;for&#x00A0;detecting&#x00A0;the&#x00A0;location&#x00A0;and
-&#x00A0;<br />&#x00A0;speed&#x00A0;of&#x00A0;ships,&#x00A0;aircraft,&#x00A0;etc,&#x00A0;through&#x00A0;the&#x00A0;use&#x00A0;of&#x00A0;radio
-&#x00A0;<br />&#x00A0;waves}%&#x00A0;description&#x00A0;of&#x00A0;this&#x00A0;term
-&#x00A0;<br />&#x00A0;]
-&#x00A0;<br />&#x00A0;{radar}%&#x00A0;identifying&#x00A0;label
-&#x00A0;<br />&#x00A0;{radar}%&#x00A0;short&#x00A0;form&#x00A0;(i.e.&#x00A0;the&#x00A0;word)
-&#x00A0;<br />&#x00A0;{\itag{ra}dio&#x00A0;\itag{d}etection&#x00A0;\itag{a}nd&#x00A0;\itag{r}anging}
+&#x00A0;<br />&#x2002;[description={a&#x2002;system&#x2002;for&#x2002;detecting&#x2002;the&#x2002;location&#x2002;and
+&#x00A0;<br />&#x2002;speed&#x2002;of&#x2002;ships,&#x2002;aircraft,&#x2002;etc,&#x2002;through&#x2002;the&#x2002;use&#x2002;of&#x2002;radio
+&#x00A0;<br />&#x2002;waves}%&#x2002;description&#x2002;of&#x2002;this&#x2002;term
+&#x00A0;<br />&#x2002;]
+&#x00A0;<br />&#x2002;{radar}%&#x2002;identifying&#x2002;label
+&#x00A0;<br />&#x2002;{radar}%&#x2002;short&#x2002;form&#x2002;(i.e.&#x2002;the&#x2002;word)
+&#x00A0;<br />&#x2002;{\itag{ra}dio&#x2002;\itag{d}etection&#x2002;\itag{a}nd&#x2002;\itag{r}anging}
&#x00A0;<br />\newabbreviation{xml}{XML}
-&#x00A0;<br />&#x00A0;{e\itag{x}tensible&#x00A0;\itag{m}arkup&#x00A0;\itag{l}anguage}
+&#x00A0;<br />&#x2002;{e\itag{x}tensible&#x2002;\itag{m}arkup&#x2002;\itag{l}anguage}
</div>
<!--l. 5063--><p class="nopar" > The underlining of the tagged letters only occurs in the glossary and then only for
entries with the <a
@@ -9508,7 +9488,7 @@ class="cmtt-10">\RestoreAcronyms</span><a
id="dx1-26006"></a> (see
<a
href="#sec:acronymmods"><span
-class="cmsy-10">&sect;</span>2.9 </a><a
+class="tcrm-1000">&sect;</span>2.9 </a><a
href="#sec:acronymmods">Acronym Style Modifications<!--tex4ht:ref: sec:acronymmods --></a>). However the original acronym interface is
incompatible with all the commands described here.
<!--l. 5102--><p class="indent" > Abbreviations can be used with the standard <span
@@ -9586,7 +9566,7 @@ short form in parentheses.
</p><!--l. 5137--><p class="indent" > <div class="important" title="Important Note"> If you want to use an abbreviation in a chapter or section title, use the
commands described in <a
href="#sec:headtitle"><span
-class="cmsy-10">&sect;</span>5 </a><a
+class="tcrm-1000">&sect;</span>5 </a><a
href="#sec:headtitle">Entries in Sectioning Titles, Headers, Captions and
Contents<!--tex4ht:ref: sec:headtitle --></a> instead. </div>
</p><!--l. 5141--><p class="noindent" >
@@ -10347,7 +10327,7 @@ class="cmss-10">noshortplural</span></a><a
id="dx1-28048"></a>
attributes. See <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6 </a><a
+class="tcrm-1000">&sect;</span>6 </a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a> for further details.)
</p><!--l. 5388--><p class="indent" > The small styles, such as <a
href="#abbrstyle.long-short-sm"><span
@@ -11664,23 +11644,20 @@ class="cmss-10">short-long-user</span></a><a
</p>
<div class="verbatim" id="verbatim-150">
\setabbreviationstyle[acronym]{long-short-user}
- &#x00A0;<br />\newacronym{tug}{TUG}{\TeX\&#x00A0;User&#x00A0;Group}
+ &#x00A0;<br />\newacronym{tug}{TUG}{\TeX\&#x2002;User&#x2002;Group}
&#x00A0;<br />\newacronym
- &#x00A0;<br />&#x00A0;[user1={German&#x00A0;Speaking&#x00A0;\TeX\&#x00A0;User&#x00A0;Group}]
- &#x00A0;<br />&#x00A0;{dante}{DANTE}{Deutschsprachige&#x00A0;Anwendervereinigung&#x00A0;\TeX\&#x00A0;e.V}
+ &#x00A0;<br />&#x2002;[user1={German&#x2002;Speaking&#x2002;\TeX\&#x2002;User&#x2002;Group}]
+ &#x00A0;<br />&#x2002;{dante}{DANTE}{Deutschsprachige&#x2002;Anwendervereinigung&#x2002;\TeX\&#x2002;e.V}
</div>
<!--l. 6014--><p class="nopar" > On first use, <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">\gls{tug}</span></span></span> will appear as:
</p><div class="quote">
- <!--l. 6017--><p class="noindent" ><span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;User Group (TUG)</p></div>
+ <!--l. 6017--><p class="noindent" >TeX&#x2002;User Group (TUG)</p></div>
<!--l. 6019--><p class="noindent" >whereas <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">\gls{dante}</span></span></span> will appear as:
</p><div class="quote">
- <!--l. 6021--><p class="noindent" >Deutschsprachige Anwendervereinigung <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;e.V (DANTE,
- German Speaking <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;User Group)</p></div>
+ <!--l. 6021--><p class="noindent" >Deutschsprachige Anwendervereinigung TeX&#x2002;e.V (DANTE,
+ German Speaking TeX&#x2002;User Group)</p></div>
<!--l. 6024--><p class="noindent" >The short form is formatted according to
</p><!--l. 6025--><p class="noindent" ><hr><div title="Definition"><a
id="dx1-30045"></a> <span
@@ -12277,7 +12254,7 @@ class="cmtt-10">} </span>(the first argument is ignored). For
</p>
<div class="verbatim" id="verbatim-153">
\renewcommand{\glsxtrabbrvfootnote}[2]{%
- &#x00A0;<br />&#x00A0;&#x00A0;\footnote{\glshyperlink[#2]{#1}}%
+ &#x00A0;<br />&#x2002;&#x2002;\footnote{\glshyperlink[#2]{#1}}%
&#x00A0;<br />}
</div>
<!--l. 6277--><p class="nopar" > or to include the short form with a hyperlink:
@@ -12287,17 +12264,17 @@ class="cmtt-10">} </span>(the first argument is ignored). For
</p>
<div class="verbatim" id="verbatim-154">
\renewcommand{\glsxtrabbrvfootnote}[2]{%
- &#x00A0;<br />&#x00A0;&#x00A0;\footnote{\glshyperlink[\glsfmtshort{#1}]{#1}:&#x00A0;#2}%
+ &#x00A0;<br />&#x2002;&#x2002;\footnote{\glshyperlink[\glsfmtshort{#1}]{#1}:&#x2002;#2}%
&#x00A0;<br />}
</div>
<!--l. 6283--><p class="nopar" > Note that I haven&#8217;t used commands like <span
class="cmtt-10">\glsxtrshort </span>to avoid interference
(see <a
href="#sec:entryfmtmods"><span
-class="cmsy-10">&sect;</span>2.4 </a><a
+class="tcrm-1000">&sect;</span>2.4 </a><a
href="#sec:entryfmtmods">Entry Display Style Modifications<!--tex4ht:ref: sec:entryfmtmods --></a> and <a
href="#sec:nested"><span
-class="cmsy-10">&sect;</span>2.8 </a><a
+class="tcrm-1000">&sect;</span>2.8 </a><a
href="#sec:nested">Nested Links<!--tex4ht:ref: sec:nested --></a>).
</p></dd><dt class="description">
<a
@@ -12463,7 +12440,7 @@ class="cmss-10">short-footnote</span></a><a
category attribute. Instead it changes <span
class="cmtt-10">\glsxtrpostlink</span>&#x27E8;<span
class="cmti-10">category</span>&#x27E9;<a
- id="dx1-30194"></a>&#x00A0;to insert the
+ id="dx1-30194"></a>&#x2002;to insert the
footnote after the <a
id="dx1-30195"></a><a
href="#glo:linktext">link-text</a> on <a
@@ -12627,8 +12604,7 @@ href="#abbrstyle.short-long-user"><span
class="cmss-10">short-long-user</span></a><a
id="dx1-30233"></a> style but defers the parenthetical material to after the link-text.
This means that you don&#8217;t have such a long hyperlink (which can cause
- problems for the DVI <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;format) and it also means that the user supplied
+ problems for the DVI LaTeX&#x2002;format) and it also means that the user supplied
material can include a hyperlink to another location. The <span
class="cmss-10">name</span><a
id="dx1-30234"></a> key is obtained
@@ -12761,7 +12737,7 @@ class="cmtt-10">ip </span>is defined using:
<div class="verbatim" id="verbatim-155">
\glssetcategoryattribute{english}{markwords}{true}
&#x00A0;<br />\setabbreviationstyle[english]{long-hyphen-short-hyphen}
- &#x00A0;<br />\newabbreviation[category=english]{ip}{IP}{Internet&#x00A0;Protocol}
+ &#x00A0;<br />\newabbreviation[category=english]{ip}{IP}{Internet&#x2002;Protocol}
</div>
<!--l. 6471--><p class="nopar" > then
@@ -12780,7 +12756,7 @@ class="cmtt-10">ip </span>is defined using:
</p>
<div class="verbatim" id="verbatim-157">
- \gls{ip}[&#x00A0;Address]
+ \gls{ip}[&#x2002;Address]
</div>
<!--l. 6483--><p class="nopar" > will do
</p><div class="quote">
@@ -13210,17 +13186,17 @@ class="cmti-10">setup</span>&#x27E9;:
</p>
<div class="verbatim" id="verbatim-161">
-&#x00A0;&#x00A0;\renewcommand*{\CustomAbbreviationFields}{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;name={\protect\glsabbrvfont{\the\glsshorttok}},
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;sort={\the\glsshorttok},
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;first={\protect\glsfirstlongfont{\the\glslongtok}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\protect\glsxtrfullsep{\the\glslabeltok}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshorttok}}},%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;firstplural={\protect\glsfirstlongfont{\the\glslongpltok}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\protect\glsxtrfullsep{\the\glslabeltok}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshortpltok}}},%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;plural={\protect\glsabbrvfont{\the\glsshortpltok}},%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;description={\the\glslongtok}}%
+&#x2002;&#x2002;\renewcommand*{\CustomAbbreviationFields}{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;name={\protect\glsabbrvfont{\the\glsshorttok}},
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;sort={\the\glsshorttok},
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;first={\protect\glsfirstlongfont{\the\glslongtok}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\protect\glsxtrfullsep{\the\glslabeltok}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshorttok}}},%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;firstplural={\protect\glsfirstlongfont{\the\glslongpltok}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\protect\glsxtrfullsep{\the\glslabeltok}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshortpltok}}},%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;plural={\protect\glsabbrvfont{\the\glsshortpltok}},%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;description={\the\glslongtok}}%
</div>
<!--l. 6711--><p class="nopar" > Note that the <span
class="cmss-10">first</span><a
@@ -13265,14 +13241,14 @@ class="cmti-10">setup</span>&#x27E9;:
</p>
<div class="verbatim" id="verbatim-162">
-&#x00A0;&#x00A0;\renewcommand*{\GlsXtrPostNewAbbreviation}{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glshasattribute{\the\glslabeltok}{regular}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glssetattribute{\the\glslabeltok}{regular}{false}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x2002;&#x2002;\renewcommand*{\GlsXtrPostNewAbbreviation}{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glshasattribute{\the\glslabeltok}{regular}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\glssetattribute{\the\glslabeltok}{regular}{false}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{}%
+&#x00A0;<br />&#x2002;&#x2002;}%
</div>
<!--l. 6742--><p class="nopar" > This sets the <a
href="#catattr.nohyperfirst"><span
@@ -13627,7 +13603,7 @@ class="cmss-10">glossaries-accsupp</span><a
class="cmtt-10">\glsaccess</span>&#x27E8;<span
class="cmitt-10">xxx</span>&#x27E9; commands (<a
href="#sec:accsupp"><span
-class="cmsy-10">&sect;</span>12.2 </a><a
+class="tcrm-1000">&sect;</span>12.2 </a><a
href="#sec:accsupp">Accessibility Support<!--tex4ht:ref: sec:accsupp --></a>) within the definitions of
<span
class="cmtt-10">\glsxtrfullformat </span>etc instead of the analogous <span
@@ -13649,33 +13625,33 @@ class="cmti-10">fmts</span>&#x27E9;:
</p>
<div class="verbatim" id="verbatim-164">
-&#x00A0;&#x00A0;\renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glsxtrfullformat}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\ifglsxtrinsertinside\else##2\fi
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrfullsep{##1}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glsxtrfullplformat}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\ifglsxtrinsertinside\else##2\fi
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrfullsep{##1}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\Glsxtrfullformat}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\Glsxtrfullplformat}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x2002;&#x2002;\renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glsxtrfullformat}[2]{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\ifglsxtrinsertinside\else##2\fi
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrfullsep{##1}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glsxtrfullplformat}[2]{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\ifglsxtrinsertinside\else##2\fi
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrfullsep{##1}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\Glsxtrfullformat}[2]{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\Glsxtrfullplformat}[2]{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
+&#x00A0;<br />&#x2002;&#x2002;}%
</div>
<!--l. 6980--><p class="nopar" > Since the inline full commands aren&#8217;t redefined, they default to the same as the
display versions.
@@ -13699,7 +13675,7 @@ class="cmti-10">fmts</span>&#x27E9;:
</p>
<div class="verbatim" id="verbatim-165">
-&#x00A0;&#x00A0;\GlsXtrUseAbbrStyleFmts{long-short}%
+&#x2002;&#x2002;\GlsXtrUseAbbrStyleFmts{long-short}%
</div>
<!--l. 6993--><p class="nopar" >
</p><!--l. 6995--><p class="indent" > Here&#8217;s an example of an abbreviation style that&#8217;s based on <a
@@ -13714,13 +13690,13 @@ class="cmtt-10">\textsf</span>:
</p>
<div class="verbatim" id="verbatim-166">
\newabbreviationstyle
-&#x00A0;<br />{custom-sf}%&#x00A0;label
-&#x00A0;<br />{%&#x00A0;setup
-&#x00A0;<br />&#x00A0;&#x00A0;\GlsXtrUseAbbrStyleSetup{short-long}%
+&#x00A0;<br />{custom-sf}%&#x2002;label
+&#x00A0;<br />{%&#x2002;setup
+&#x00A0;<br />&#x2002;&#x2002;\GlsXtrUseAbbrStyleSetup{short-long}%
&#x00A0;<br />}%
-&#x00A0;<br />{%&#x00A0;fmts
-&#x00A0;<br />&#x00A0;&#x00A0;\GlsXtrUseAbbrStyleFmts{short-long}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glsabbrvfont}[1]{\textsf{##1}}%
+&#x00A0;<br />{%&#x2002;fmts
+&#x00A0;<br />&#x2002;&#x2002;\GlsXtrUseAbbrStyleFmts{short-long}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glsabbrvfont}[1]{\textsf{##1}}%
&#x00A0;<br />}
</div>
<!--l. 7008--><p class="nopar" > Note that this wouldn&#8217;t work if it was instead based on one of the modified versions
@@ -13816,7 +13792,7 @@ this:
</p>
<div class="verbatim" id="verbatim-167">
-\chapter{A&#x00A0;Chapter&#x00A0;about&#x00A0;\glsabbrvfont{\glsentryshort{html}}}
+\chapter{A&#x2002;Chapter&#x2002;about&#x2002;\glsabbrvfont{\glsentryshort{html}}}
</div>
<!--l. 7061--><p class="nopar" > Or, if you are using <span
class="cmss-10">hyperref</span><a
@@ -13826,7 +13802,7 @@ class="cmss-10">hyperref</span><a
</p>
<div class="verbatim" id="verbatim-168">
-\chapter{A&#x00A0;Chapter&#x00A0;about
+\chapter{A&#x2002;Chapter&#x2002;about
&#x00A0;<br />\texorpdfstring{\glsabbrvfont{\glsentryshort{html}}}{\glsentryshort{html}}}
</div>
<!--l. 7066--><p class="nopar" >
@@ -13874,7 +13850,7 @@ for the table of contents and page header. For example:
</p>
<div class="verbatim" id="verbatim-169">
-\chapter[A&#x00A0;Chapter&#x00A0;about&#x00A0;\glsentryshort{html}]{A&#x00A0;Chapter&#x00A0;about&#x00A0;\gls{html}}
+\chapter[A&#x2002;Chapter&#x2002;about&#x2002;\glsentryshort{html}]{A&#x2002;Chapter&#x2002;about&#x2002;\gls{html}}
</div>
<!--l. 7095--><p class="nopar" > Alternatively, you need to find a way to insert <span
class="cmtt-10">\glsxtrmarkhook </span>and <span
@@ -14340,7 +14316,7 @@ class="cmitt-10">true</span>
class="cmitt-10">part</span>&#x27E9;<span
class="cmtt-10">}{</span>&#x27E8;<span
class="cmitt-10">false</span><span
-class="cmitt-10">&#x00A0;part</span>&#x27E9;<span
+class="cmitt-10">&#x2002;part</span>&#x27E9;<span
class="cmtt-10">}</span>
</div>
</div> so any restrictions that apply to <span
@@ -14474,8 +14450,8 @@ class="cmtt-10">\newabbreviation</span>.) This attribute doesn&#8217;t apply to
</p>
<div class="verbatim" id="verbatim-170">
\newabbreviation
- &#x00A0;<br />&#x00A0;[user1={German&#x00A0;Speaking&#x00A0;\TeX\&#x00A0;User&#x00A0;Group}]
- &#x00A0;<br />&#x00A0;{dante}{DANTE&#x00A0;e.V.}{Deutschsprachige&#x00A0;Anwendervereinigung&#x00A0;\TeX\
+ &#x00A0;<br />&#x2002;[user1={German&#x2002;Speaking&#x2002;\TeX\&#x2002;User&#x2002;Group}]
+ &#x00A0;<br />&#x2002;{dante}{DANTE&#x2002;e.V.}{Deutschsprachige&#x2002;Anwendervereinigung&#x2002;\TeX\
&#x00A0;<br />e.V.}
</div>
<!--l. 7453--><p class="nopar" > Here the <span
@@ -14568,7 +14544,7 @@ class="cmtt-10">} </span></div><hr>
</p>
<div class="verbatim" id="verbatim-172">
\glssetcategoryattribute{abbreviation}{markwords}{true}
- &#x00A0;<br />\newabbreviation{ip}{IP}{Internet&#x00A0;Protocol}
+ &#x00A0;<br />\newabbreviation{ip}{IP}{Internet&#x2002;Protocol}
</div>
<!--l. 7495--><p class="nopar" > is essentially the same as
@@ -14599,7 +14575,7 @@ class="cmtt-10">\glsxtrlong</span>. You can provide your own
</p>
<div class="verbatim" id="verbatim-174">
\newcommand{\hyplong}[2][]{%
- &#x00A0;<br />&#x00A0;{\def\glsxtrwordsep{-}\glsxtrlong[#1]{#2}}}
+ &#x00A0;<br />&#x2002;{\def\glsxtrwordsep{-}\glsxtrlong[#1]{#2}}}
</div>
<!--l. 7512--><p class="nopar" >
</p><!--l. 7514--><p class="noindent" >This setting will also adjust the long plural. This attribute is only applicable to
@@ -14758,7 +14734,7 @@ class="cmtt-10">\glsxtrtagfont</span><a
id="dx1-35084"></a> in
the glossary (see <a
href="#sec:tagging"><span
-class="cmsy-10">&sect;</span>4.1 </a><a
+class="tcrm-1000">&sect;</span>4.1 </a><a
href="#sec:tagging">Tagging Initials<!--tex4ht:ref: sec:tagging --></a>).
</dd><dt class="description">
<a
@@ -14771,7 +14747,7 @@ class="cmtt-10">\glsenableentrycount</span><a
id="dx1-35086"></a>
(see <a
href="#sec:entrycountmods"><span
-class="cmsy-10">&sect;</span>2.5 </a><a
+class="tcrm-1000">&sect;</span>2.5 </a><a
href="#sec:entrycountmods">Entry Counting Modifications<!--tex4ht:ref: sec:entrycountmods --></a>). Leave blank or undefined for
categories that shouldn&#8217;t have this facility enabled. The value of this attribute
is used by <span
@@ -14802,7 +14778,7 @@ class="cmtt-10">true </span>by <span
class="cmtt-10">\GlsXtrEnableLinkCounting</span><a
id="dx1-35091"></a> (see <a
href="#sec:linkcount"><span
-class="cmsy-10">&sect;</span>7.2
+class="tcrm-1000">&sect;</span>7.2
</a><a
href="#sec:linkcount">Link Counting<!--tex4ht:ref: sec:linkcount --></a>).
</dd><dt class="description">
@@ -14818,7 +14794,7 @@ class="description">This attribute is set to the name of the master counter by
class="cmtt-10">\GlsXtrEnableLinkCounting</span><a
id="dx1-35093"></a> if the optional argument is provided (see <a
href="#sec:linkcount"><span
-class="cmsy-10">&sect;</span>7.2
+class="tcrm-1000">&sect;</span>7.2
</a><a
href="#sec:linkcount">Link Counting<!--tex4ht:ref: sec:linkcount --></a>).
</dd><dt class="description">
@@ -14918,7 +14894,7 @@ class="cmtt-10">\glossentryname</span><a
class="cmtt-10">\index</span><a
id="dx1-35108"></a>. See <a
href="#sec:autoindex"><span
-class="cmsy-10">&sect;</span>8 </a><a
+class="tcrm-1000">&sect;</span>8 </a><a
href="#sec:autoindex">Auto-Indexing<!--tex4ht:ref: sec:autoindex --></a> for further
details.
</dd><dt class="description">
@@ -14990,7 +14966,7 @@ class="cmss-10">hyperoutside</span><a
id="dx1-35117"></a>
key, described in <a
href="#sec:wrglossary"><span
-class="cmsy-10">&sect;</span>2.2 </a><a
+class="tcrm-1000">&sect;</span>2.2 </a><a
href="#sec:wrglossary">Entry Indexing<!--tex4ht:ref: sec:wrglossary --></a>.
</dd><dt class="description">
<a
@@ -15007,7 +14983,7 @@ class="cmtt-10">\glsadd</span><a
class="cmtt-10">\index</span><a
id="dx1-35121"></a>. See <a
href="#sec:autoindex"><span
-class="cmsy-10">&sect;</span>8 </a><a
+class="tcrm-1000">&sect;</span>8 </a><a
href="#sec:autoindex">Auto-Indexing<!--tex4ht:ref: sec:autoindex --></a> for
further details.
</dd><dt class="description">
@@ -15108,11 +15084,11 @@ class="cmtt-10">\newignoredglossary</span><a
\newignoredglossary*{external}
&#x00A0;<br />\glssetcategoryattribute{external}{targeturl}{master-doc.pdf}
&#x00A0;<br />\glssetcategoryattribute{general}{targetname}{\glolinkprefix\glslabel}
- &#x00A0;<br />\newglossaryentry{sample}{name={sample},description={local&#x00A0;example}}
+ &#x00A0;<br />\newglossaryentry{sample}{name={sample},description={local&#x2002;example}}
&#x00A0;<br />\newglossaryentry{sample2}{name={sample2},
- &#x00A0;<br />&#x00A0;&#x00A0;type=external,
- &#x00A0;<br />&#x00A0;&#x00A0;category=external,
- &#x00A0;<br />&#x00A0;&#x00A0;description={external&#x00A0;example}}
+ &#x00A0;<br />&#x2002;&#x2002;type=external,
+ &#x00A0;<br />&#x2002;&#x2002;category=external,
+ &#x00A0;<br />&#x2002;&#x2002;description={external&#x2002;example}}
</div>
<!--l. 7766--><p class="nopar" >
</p></dd><dt class="description">
@@ -15123,7 +15099,7 @@ class="cmssbx-10">externallocation</span><a
class="description">The value should be the file name of the target document when
manually indexing an external location (see <a
href="#sec:wrglossary"><span
-class="cmsy-10">&sect;</span>2.2 </a><a
+class="tcrm-1000">&sect;</span>2.2 </a><a
href="#sec:wrglossary">Entry Indexing<!--tex4ht:ref: sec:wrglossary --></a>). In general,
it&#8217;s better to use <a
id="dx1-35130"></a><a
@@ -15442,7 +15418,7 @@ class="cmti-10">false part</span>&#x27E9; is done.
</p>
<div class="verbatim" id="verbatim-182">
-\glsifcategoryattribute{general}{nohyper}{true}{NO&#x00A0;HYPER}{HYPER}
+\glsifcategoryattribute{general}{nohyper}{true}{NO&#x2002;HYPER}{HYPER}
</div>
<!--l. 7903--><p class="nopar" > This does &#8220;NO HYPER&#8221; if the <span
class="cmss-10">general</span><a
@@ -15652,12 +15628,11 @@ class="cmss-10">glossaries</span>
differently if it&#8217;s only been used a certain number of times. The information
has to be written to the <span
class="cmtt-10">.aux </span>file so that it&#8217;s available on the next
- <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run.
+ LaTeX&#x2002;run.
<!--l. 7995--><p class="noindent" >This method is extended by <span
class="cmss-10">glossaries-extra </span>and is described in <a
href="#sec:entrycount"><span
-class="cmsy-10">&sect;</span>7.1 </a><a
+class="tcrm-1000">&sect;</span>7.1 </a><a
href="#sec:entrycount">Entry
Counting (First Use Flag)<!--tex4ht:ref: sec:entrycount --></a>.
</p></li>
@@ -15670,7 +15645,7 @@ class="cmtt-10">bib2gls</span></a> and is intended for documents where the term
differently if it&#8217;s only been recorded (indexed) a certain number of times.
See <a
href="#sec:recordcount"><span
-class="cmsy-10">&sect;</span>9.5 </a><a
+class="tcrm-1000">&sect;</span>9.5 </a><a
href="#sec:recordcount">Record Counting<!--tex4ht:ref: sec:recordcount --></a> for further details.
</li>
<li
@@ -15680,8 +15655,7 @@ class="cmtt-10">\glstext</span>-like
commands are used. (That is, those commands that internally use
<span
class="cmtt-10">\@gls@link</span>.) Unlike the other two methods, this just provides a
- running total rather than the total from the previous <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run.
+ running total rather than the total from the previous LaTeX&#x2002;run.
This method is intended to make it more convenient to work with
hooks like <span
class="cmtt-10">\glslinkcheckfirsthyperhook</span>, <span
@@ -15689,14 +15663,14 @@ class="cmtt-10">\glslinkpostsetkeys </span>or
<span
class="cmtt-10">\glslinkpresetkeys</span>. See <a
href="#sec:linkcount"><span
-class="cmsy-10">&sect;</span>7.2 </a><a
+class="tcrm-1000">&sect;</span>7.2 </a><a
href="#sec:linkcount">Link Counting<!--tex4ht:ref: sec:linkcount --></a> for further details.</li></ol>
<!--l. 8014--><p class="noindent" ><a
href="#top">Top</a><h3 class="sectionHead"></p><h3 class="sectionHead"><span class="titlemark">7.1 </span> <a
id="sec:entrycount"></a>Entry Counting (First Use Flag)</h3>
<!--l. 8017--><p class="noindent" >As mentioned in <a
href="#sec:entrycountmods"><span
-class="cmsy-10">&sect;</span>2.5 </a><a
+class="tcrm-1000">&sect;</span>2.5 </a><a
href="#sec:entrycountmods">Entry Counting Modifications<!--tex4ht:ref: sec:entrycountmods --></a>, <span
class="cmss-10">glossaries-extra </span>modifies the
<span
@@ -15710,7 +15684,7 @@ class="cmtt-10">\glsenableentrycount</span><a
id="dx1-37003"></a>, but
you also need to set the appropriate attribute (see <a
href="#sec:categories"><span
-class="cmsy-10">&sect;</span>6 </a><a
+class="tcrm-1000">&sect;</span>6 </a><a
href="#sec:categories">Categories<!--tex4ht:ref: sec:categories --></a>).
</p><!--l. 8024--><p class="indent" > <div class="important" title="Important Note"> Remember that entry counting only counts the number of times an entry is used
by commands that change the <a
@@ -15745,7 +15719,7 @@ class="cmtt-10">\ab</span><a
id="dx1-37009"></a> uses <span
class="cmtt-10">\cgls </span>(see <a
href="#sec:abbrshortcuts"><span
-class="cmsy-10">&sect;</span>4.3 </a><a
+class="tcrm-1000">&sect;</span>4.3 </a><a
href="#sec:abbrshortcuts">Shortcut Commands<!--tex4ht:ref: sec:abbrshortcuts --></a>). The
acronym shortcut <span
class="cmtt-10">\ac</span><a
@@ -15828,11 +15802,11 @@ class="cmss-10">glossaries</span>:
&#x00A0;<br />\usepackage{glossaries}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\glsenableentrycount
-&#x00A0;<br />\newacronym{html}{HTML}{hypertext&#x00A0;markup&#x00A0;language}
-&#x00A0;<br />\newacronym{xml}{XML}{extensible&#x00A0;markup&#x00A0;language}
+&#x00A0;<br />\newacronym{html}{HTML}{hypertext&#x2002;markup&#x2002;language}
+&#x00A0;<br />\newacronym{xml}{XML}{extensible&#x2002;markup&#x2002;language}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />Used&#x00A0;once:&#x00A0;\cgls{html}.
-&#x00A0;<br />Used&#x00A0;twice:&#x00A0;\cgls{xml}&#x00A0;and&#x00A0;\cgls{xml}.
+&#x00A0;<br />Used&#x2002;once:&#x2002;\cgls{html}.
+&#x00A0;<br />Used&#x2002;twice:&#x2002;\cgls{xml}&#x2002;and&#x2002;\cgls{xml}.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\end{document}
</div>
@@ -15852,11 +15826,11 @@ class="cmss-10">entrycount</span></a><a
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\glsenableentrycount
&#x00A0;<br />\glssetcategoryattribute{abbreviation}{entrycount}{1}
-&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x00A0;markup&#x00A0;language}
-&#x00A0;<br />\newabbreviation{xml}{XML}{extensible&#x00A0;markup&#x00A0;language}
+&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x2002;markup&#x2002;language}
+&#x00A0;<br />\newabbreviation{xml}{XML}{extensible&#x2002;markup&#x2002;language}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />Used&#x00A0;once:&#x00A0;\cgls{html}.
-&#x00A0;<br />Used&#x00A0;twice:&#x00A0;\cgls{xml}&#x00A0;and&#x00A0;\cgls{xml}.
+&#x00A0;<br />Used&#x2002;once:&#x2002;\cgls{html}.
+&#x00A0;<br />Used&#x2002;twice:&#x2002;\cgls{xml}&#x2002;and&#x2002;\cgls{xml}.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\end{document}
</div>
@@ -15898,15 +15872,15 @@ class="cmti-10">normal code</span>&#x27E9;).
</p>
<div class="verbatim" id="verbatim-185">
\newcommand*{\glsxtrifcounttrigger}[3]{%
-&#x00A0;<br />&#x00A0;\glshasattribute{#1}{entrycount}%
-&#x00A0;<br />&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\ifnum\glsentryprevcount{#1}&#x003E;\glsgetattribute{#1}{entrycount}\relax
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;#3%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\else
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;#2%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\fi
-&#x00A0;<br />&#x00A0;}%
-&#x00A0;<br />&#x00A0;{#3}%
+&#x00A0;<br />&#x2002;\glshasattribute{#1}{entrycount}%
+&#x00A0;<br />&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\ifnum\glsentryprevcount{#1}&#x003E;\glsgetattribute{#1}{entrycount}\relax
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;#3%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\else
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;#2%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\fi
+&#x00A0;<br />&#x2002;}%
+&#x00A0;<br />&#x2002;{#3}%
&#x00A0;<br />}
</div>
<!--l. 8144--><p class="nopar" > This means that if an entry is assigned to a category that has the <a
@@ -15980,11 +15954,11 @@ class="cmss-10">entrycount</span></a><a
&#x00A0;<br />\usepackage{glossaries-extra}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\GlsXtrEnableEntryCounting{abbreviation}{1}
-&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x00A0;markup&#x00A0;language}
-&#x00A0;<br />\newabbreviation{xml}{XML}{extensible&#x00A0;markup&#x00A0;language}
+&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x2002;markup&#x2002;language}
+&#x00A0;<br />\newabbreviation{xml}{XML}{extensible&#x2002;markup&#x2002;language}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />Used&#x00A0;once:&#x00A0;\gls{html}.
-&#x00A0;<br />Used&#x00A0;twice:&#x00A0;\gls{xml}&#x00A0;and&#x00A0;\gls{xml}.
+&#x00A0;<br />Used&#x2002;once:&#x2002;\gls{html}.
+&#x00A0;<br />Used&#x2002;twice:&#x2002;\gls{xml}&#x2002;and&#x2002;\gls{xml}.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\end{document}
</div>
@@ -16010,9 +15984,8 @@ be applied, &#x27E8;<span
class="cmti-10">value</span>&#x27E9; is the trigger value and &#x27E8;<span
class="cmti-10">counter-name</span>&#x27E9; is the name of the counter
used by the sectional unit.
-</p><!--l. 8218--><p class="indent" > <div class="important" title="Important Note"> Due to the asynchronous nature of <span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s output routine, discrepancies will
-occur in page spanning paragraphs if you use the <span
+</p><!--l. 8218--><p class="indent" > <div class="important" title="Important Note"> Due to the asynchronous nature of TeX&#8217;s output routine, discrepancies will occur
+in page spanning paragraphs if you use the <span
class="cmss-10">page</span><a
id="dx1-37031"></a> counter. </div>
</p><!--l. 8222--><p class="noindent" >
@@ -16092,17 +16065,17 @@ which gives the maximum per-unit total from the previous run.
&#x00A0;<br />\usepackage{glossaries-extra}
&#x00A0;<br />\GlsXtrEnableEntryUnitCounting{abbreviation}{2}{chapter}
&#x00A0;<br />\makeglossaries
-&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x00A0;markup&#x00A0;language}
-&#x00A0;<br />\newabbreviation{css}{CSS}{cascading&#x00A0;style&#x00A0;sheet}
+&#x00A0;<br />\newabbreviation{html}{HTML}{hypertext&#x2002;markup&#x2002;language}
+&#x00A0;<br />\newabbreviation{css}{CSS}{cascading&#x2002;style&#x2002;sheet}
&#x00A0;<br />\newglossaryentry{sample}{name={sample},description={sample}}
&#x00A0;<br />\begin{document}
&#x00A0;<br />\chapter{Sample}
-&#x00A0;<br />Used&#x00A0;once:&#x00A0;\gls{html}.
-&#x00A0;<br />Used&#x00A0;three&#x00A0;times:&#x00A0;\gls{css}&#x00A0;and&#x00A0;\gls{css}&#x00A0;and&#x00A0;\gls{css}.
-&#x00A0;<br />Used&#x00A0;once:&#x00A0;\gls{sample}.
-&#x00A0;<br />\chapter{Another&#x00A0;Sample}
-&#x00A0;<br />Used&#x00A0;once:&#x00A0;\gls{css}.
-&#x00A0;<br />Used&#x00A0;twice:&#x00A0;\gls{html}&#x00A0;and&#x00A0;\gls{html}.
+&#x00A0;<br />Used&#x2002;once:&#x2002;\gls{html}.
+&#x00A0;<br />Used&#x2002;three&#x2002;times:&#x2002;\gls{css}&#x2002;and&#x2002;\gls{css}&#x2002;and&#x2002;\gls{css}.
+&#x00A0;<br />Used&#x2002;once:&#x2002;\gls{sample}.
+&#x00A0;<br />\chapter{Another&#x2002;Sample}
+&#x00A0;<br />Used&#x2002;once:&#x2002;\gls{css}.
+&#x00A0;<br />Used&#x2002;twice:&#x2002;\gls{html}&#x2002;and&#x2002;\gls{html}.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\end{document}
</div>
@@ -16157,18 +16130,18 @@ hyperlink.
&#x00A0;<br />\usepackage{glossaries-extra}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\GlsXtrEnableEntryUnitCounting{general}{0}{page}
-&#x00A0;<br />\newglossaryentry{sample}{name={sample},description={an&#x00A0;example}}
+&#x00A0;<br />\newglossaryentry{sample}{name={sample},description={an&#x2002;example}}
&#x00A0;<br />\renewcommand*{\glslinkcheckfirsthyperhook}{%
-&#x00A0;<br />&#x00A0;&#x00A0;\ifnum\glsentrycurrcount\glslabel&#x003E;0
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\setkeys{glslink}{hyper=false}%
-&#x00A0;<br />&#x00A0;&#x00A0;\fi
+&#x00A0;<br />&#x2002;&#x2002;\ifnum\glsentrycurrcount\glslabel&#x003E;0
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\setkeys{glslink}{hyper=false}%
+&#x00A0;<br />&#x2002;&#x2002;\fi
&#x00A0;<br />}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />A&#x00A0;\gls{sample}&#x00A0;entry.
-&#x00A0;<br />Next&#x00A0;use:&#x00A0;\gls{sample}.
+&#x00A0;<br />A&#x2002;\gls{sample}&#x2002;entry.
+&#x00A0;<br />Next&#x2002;use:&#x2002;\gls{sample}.
&#x00A0;<br />\newpage
-&#x00A0;<br />Next&#x00A0;page:&#x00A0;\gls{sample}.
-&#x00A0;<br />Again:&#x00A0;\gls{sample}.
+&#x00A0;<br />Next&#x2002;page:&#x2002;\gls{sample}.
+&#x00A0;<br />Again:&#x2002;\gls{sample}.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\end{document}
</div>
@@ -16321,9 +16294,9 @@ class="cmtt-10">\GlsXtrTheLinkCounter</span>. For example:
</p>
<div class="verbatim" id="verbatim-193">
\renewcommand*{\GlsXtrTheLinkCounter}[1]{%
-&#x00A0;<br />&#x00A0;\GlsXtrIfLinkCounterDef{#1}%
-&#x00A0;<br />&#x00A0;{\Roman{\GlsXtrLinkCounterName{#1}}}%
-&#x00A0;<br />&#x00A0;{0}%
+&#x00A0;<br />&#x2002;\GlsXtrIfLinkCounterDef{#1}%
+&#x00A0;<br />&#x2002;{\Roman{\GlsXtrLinkCounterName{#1}}}%
+&#x00A0;<br />&#x2002;{0}%
&#x00A0;<br />}
</div>
<!--l. 8451--><p class="nopar" > In both cases, the redefinition should be implemented after <span
@@ -16349,20 +16322,20 @@ class="cmtt-10">\glstext</span>).
&#x00A0;<br />\usepackage{glossaries-extra}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\renewcommand*{\glslinkpresetkeys}{%
-&#x00A0;<br />&#x00A0;\ifnum\GlsXtrLinkCounterValue{\glslabel}&#x003E;1
-&#x00A0;<br />&#x00A0;&#x00A0;\setkeys{glslink}{hyper=false}%
-&#x00A0;<br />&#x00A0;\fi
+&#x00A0;<br />&#x2002;\ifnum\GlsXtrLinkCounterValue{\glslabel}&#x003E;1
+&#x00A0;<br />&#x2002;&#x2002;\setkeys{glslink}{hyper=false}%
+&#x00A0;<br />&#x2002;\fi
&#x00A0;<br />}
&#x00A0;<br />\GlsXtrEnableLinkCounting{general}
-&#x00A0;<br />\newglossaryentry{sample1}{name={sample1},description={an&#x00A0;example}}
-&#x00A0;<br />\newglossaryentry{sample2}{name={sample2},description={another&#x00A0;example}}
+&#x00A0;<br />\newglossaryentry{sample1}{name={sample1},description={an&#x2002;example}}
+&#x00A0;<br />\newglossaryentry{sample2}{name={sample2},description={another&#x2002;example}}
&#x00A0;<br />\newabbreviation{ex}{ex}{example}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />\section{Sample&#x00A0;Section}
-&#x00A0;<br />\Gls{sample1},&#x00A0;\gls{sample2}&#x00A0;and&#x00A0;\gls{ex}.
-&#x00A0;<br />\Glstext{sample1}&#x00A0;and&#x00A0;\gls{ex}&#x00A0;again.
-&#x00A0;<br />\section{Another&#x00A0;Sample&#x00A0;Section}
-&#x00A0;<br />\Gls{sample1},&#x00A0;\gls{sample2}&#x00A0;and&#x00A0;\gls{ex}.
+&#x00A0;<br />\section{Sample&#x2002;Section}
+&#x00A0;<br />\Gls{sample1},&#x2002;\gls{sample2}&#x2002;and&#x2002;\gls{ex}.
+&#x00A0;<br />\Glstext{sample1}&#x2002;and&#x2002;\gls{ex}&#x2002;again.
+&#x00A0;<br />\section{Another&#x2002;Sample&#x2002;Section}
+&#x00A0;<br />\Gls{sample1},&#x2002;\gls{sample2}&#x2002;and&#x2002;\gls{ex}.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\end{document}
</div>
@@ -16415,7 +16388,7 @@ applied. If the test is changed to
<div class="verbatim" id="verbatim-197">
\ifnum\GlsXtrLinkCounterValue{\glslabel}=1
&#x00A0;<br />\else
-&#x00A0;<br />&#x00A0;\setkeys{glslink}{hyper=false}%
+&#x00A0;<br />&#x2002;\setkeys{glslink}{hyper=false}%
&#x00A0;<br />\fi
</div>
<!--l. 8524--><p class="nopar" > Then the abbreviation will always have <span
@@ -16558,7 +16531,7 @@ sort value. The default definition is:
</p>
<div class="verbatim" id="verbatim-200">
\newcommand*{\glsxtrautoindexassignsort}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsletentryfield{#1}{#2}{sort}%
+&#x00A0;<br />&#x2002;&#x2002;\glsletentryfield{#1}{#2}{sort}%
&#x00A0;<br />}
</div>
<!--l. 8601--><p class="nopar" > After this macro is called, &#x27E8;<span
@@ -16618,9 +16591,9 @@ class="cmss-10">sort</span><a
</p>
<div class="verbatim" id="verbatim-202">
\renewcommand*{\glsxtrautoindexassignsort}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\ifglshaslong{#2}%
-&#x00A0;<br />&#x00A0;&#x00A0;{\glsletentryfield{#1}{#2}{long}}%
-&#x00A0;<br />&#x00A0;&#x00A0;{\glsletentryfield{#1}{#2}{sort}}%
+&#x00A0;<br />&#x2002;&#x2002;\ifglshaslong{#2}%
+&#x00A0;<br />&#x2002;&#x2002;{\glsletentryfield{#1}{#2}{long}}%
+&#x00A0;<br />&#x2002;&#x2002;{\glsletentryfield{#1}{#2}{sort}}%
&#x00A0;<br />}
</div>
<!--l. 8640--><p class="nopar" >
@@ -16782,8 +16755,7 @@ class="cmtt-10">.glstex </span>file which is loaded using
class="cmtt-10">\glsxtrresourcefile </span>(or <span
class="cmtt-10">\GlsXtrLoadResources</span>).
</p><!--l. 8730--><p class="indent" > This means that you can use a reference managing system, such as JabRef, to
-maintain the database and it reduces the <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;overhead by only defining the entries
+maintain the database and it reduces the TeX&#x2002;overhead by only defining the entries
that are actually required in the document. If you currently have a <span
class="cmtt-10">.tex </span>file that
contains hundreds of definitions, but you only use a dozen or so in your
@@ -16820,18 +16792,18 @@ class="cmtt-10">bib2gls</span>:
</p>
<div class="verbatim" id="verbatim-205">
@entry{bird,
-&#x00A0;<br />&#x00A0;&#x00A0;name={bird},
-&#x00A0;<br />&#x00A0;&#x00A0;description&#x00A0;=&#x00A0;{feathered&#x00A0;animal},
-&#x00A0;<br />&#x00A0;&#x00A0;see={[see&#x00A0;also]{duck,goose}}
+&#x00A0;<br />&#x2002;&#x2002;name={bird},
+&#x00A0;<br />&#x2002;&#x2002;description&#x2002;=&#x2002;{feathered&#x2002;animal},
+&#x00A0;<br />&#x2002;&#x2002;see={[see&#x2002;also]{duck,goose}}
&#x00A0;<br />}
&#x00A0;<br />@entry{duck,
-&#x00A0;<br />&#x00A0;&#x00A0;name={duck},
-&#x00A0;<br />&#x00A0;&#x00A0;description&#x00A0;=&#x00A0;{a&#x00A0;waterbird&#x00A0;with&#x00A0;short&#x00A0;legs}
+&#x00A0;<br />&#x2002;&#x2002;name={duck},
+&#x00A0;<br />&#x2002;&#x2002;description&#x2002;=&#x2002;{a&#x2002;waterbird&#x2002;with&#x2002;short&#x2002;legs}
&#x00A0;<br />}
&#x00A0;<br />@entry{goose,
-&#x00A0;<br />&#x00A0;&#x00A0;name="goose",
-&#x00A0;<br />&#x00A0;&#x00A0;plural="geese",
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;waterbird&#x00A0;with&#x00A0;a&#x00A0;long&#x00A0;neck}
+&#x00A0;<br />&#x2002;&#x2002;name="goose",
+&#x00A0;<br />&#x2002;&#x2002;plural="geese",
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;waterbird&#x2002;with&#x2002;a&#x2002;long&#x2002;neck}
&#x00A0;<br />}
</div>
<!--l. 8768--><p class="nopar" >
@@ -16841,22 +16813,22 @@ class="cmtt-10">bib2gls</span>:
</p>
<div class="verbatim" id="verbatim-206">
-@string{ssi={server-side&#x00A0;includes}}
-&#x00A0;<br />@string{html={hypertext&#x00A0;markup&#x00A0;language}}
+@string{ssi={server-side&#x2002;includes}}
+&#x00A0;<br />@string{html={hypertext&#x2002;markup&#x2002;language}}
&#x00A0;<br />@abbreviation{shtml,
-&#x00A0;<br />&#x00A0;&#x00A0;short="shtml",
-&#x00A0;<br />&#x00A0;&#x00A0;long=&#x00A0;ssi&#x00A0;#&#x00A0;"&#x00A0;enabled&#x00A0;"&#x00A0;#&#x00A0;html,
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;combination&#x00A0;of&#x00A0;\gls{html}&#x00A0;and&#x00A0;\gls{ssi}}
+&#x00A0;<br />&#x2002;&#x2002;short="shtml",
+&#x00A0;<br />&#x2002;&#x2002;long=&#x2002;ssi&#x2002;#&#x2002;"&#x2002;enabled&#x2002;"&#x2002;#&#x2002;html,
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;combination&#x2002;of&#x2002;\gls{html}&#x2002;and&#x2002;\gls{ssi}}
&#x00A0;<br />}
&#x00A0;<br />@abbreviation{html,
-&#x00A0;<br />&#x00A0;&#x00A0;short&#x00A0;="html",
-&#x00A0;<br />&#x00A0;&#x00A0;long&#x00A0;&#x00A0;=&#x00A0;html,
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;markup&#x00A0;language&#x00A0;for&#x00A0;creating&#x00A0;web&#x00A0;pages}
+&#x00A0;<br />&#x2002;&#x2002;short&#x2002;="html",
+&#x00A0;<br />&#x2002;&#x2002;long&#x2002;&#x2002;=&#x2002;html,
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;markup&#x2002;language&#x2002;for&#x2002;creating&#x2002;web&#x2002;pages}
&#x00A0;<br />}
&#x00A0;<br />@abbreviation{ssi,
-&#x00A0;<br />&#x00A0;&#x00A0;short="ssi",
-&#x00A0;<br />&#x00A0;&#x00A0;long&#x00A0;=&#x00A0;ssi,
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;simple&#x00A0;interpreted&#x00A0;server-side&#x00A0;scripting&#x00A0;language}
+&#x00A0;<br />&#x2002;&#x2002;short="ssi",
+&#x00A0;<br />&#x2002;&#x2002;long&#x2002;=&#x2002;ssi,
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;simple&#x2002;interpreted&#x2002;server-side&#x2002;scripting&#x2002;language}
&#x00A0;<br />}
</div>
<!--l. 8792--><p class="nopar" >
@@ -16868,19 +16840,19 @@ class="cmtt-10">bib2gls</span>:
<div class="verbatim" id="verbatim-207">
preamble{"\providecommand{\mtx}[1]{\boldsymbol{#1}}"}
&#x00A0;<br />@symbol{M,
-&#x00A0;<br />&#x00A0;&#x00A0;name={$\mtx{M}$},
-&#x00A0;<br />&#x00A0;&#x00A0;text={\mtx{M}},
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;matrix}
+&#x00A0;<br />&#x2002;&#x2002;name={$\mtx{M}$},
+&#x00A0;<br />&#x2002;&#x2002;text={\mtx{M}},
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;matrix}
&#x00A0;<br />}
&#x00A0;<br />@symbol{v,
-&#x00A0;<br />&#x00A0;&#x00A0;name={$\vec{v}$},
-&#x00A0;<br />&#x00A0;&#x00A0;text={\vec{v}},
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;vector}
+&#x00A0;<br />&#x2002;&#x2002;name={$\vec{v}$},
+&#x00A0;<br />&#x2002;&#x2002;text={\vec{v}},
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;vector}
&#x00A0;<br />}
&#x00A0;<br />@symbol{S,
-&#x00A0;<br />&#x00A0;&#x00A0;name={$\mathcal{S}$},
-&#x00A0;<br />&#x00A0;&#x00A0;text={\mathcal{S}},
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;set}
+&#x00A0;<br />&#x2002;&#x2002;name={$\mathcal{S}$},
+&#x00A0;<br />&#x2002;&#x2002;text={\mathcal{S}},
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;set}
&#x00A0;<br />}
</div>
<!--l. 8815--><p class="nopar" >
@@ -16958,7 +16930,7 @@ class="cmsy-10">}</span>
</div>
</div> On subsequent use,<span class="footnote-mark"><a
href="#fn1x9" id="fn1x9-bk"><sup class="textsuperscript">9.1</sup></a></span><a
- id="x1-40019f1"></a>&#x00A0;this
+ id="x1-40019f1"></a>&#x2002;this
command is a shortcut for <div class="alltt">
<div class="obeylines-v">
<span
@@ -17001,8 +16973,7 @@ href="#fn2x9" id="fn2x9-bk"><sup class="textsuperscript">9.2</sup></a></span><a
<!--l. 8869--><p class="indent" > Since the <span
-class="cmtt-10">.glstex </span>file won&#8217;t exist on the first <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run, the <a
+class="cmtt-10">.glstex </span>file won&#8217;t exist on the first LaTeX&#x2002;run, the <a
href="#styopt.record"><span
class="cmss-10">record</span></a><a
id="dx1-40021"></a> package
@@ -17118,8 +17089,8 @@ example:
</p>
<div class="verbatim" id="verbatim-212">
\GlsXtrLoadResources[
-&#x00A0;<br />&#x00A0;&#x00A0;src=terms,&#x00A0;%&#x00A0;data&#x00A0;in&#x00A0;terms.bib
-&#x00A0;<br />&#x00A0;&#x00A0;sort=de-DE-1996&#x00A0;%&#x00A0;sort&#x00A0;according&#x00A0;to&#x00A0;this&#x00A0;locale
+&#x00A0;<br />&#x2002;&#x2002;src=terms,&#x2002;%&#x2002;data&#x2002;in&#x2002;terms.bib
+&#x00A0;<br />&#x2002;&#x2002;sort=de-DE-1996&#x2002;%&#x2002;sort&#x2002;according&#x2002;to&#x2002;this&#x2002;locale
&#x00A0;<br />]
</div>
<!--l. 8939--><p class="nopar" > The locale-sensitive sort methods usually ignore most punctuation so for lists of
@@ -17142,7 +17113,7 @@ class="cmtt-10">\printunsrtglossary </span>(or <span
class="cmtt-10">\printunsrtglossaries</span>), described in
<a
href="#sec:printunsrt"><span
-class="cmsy-10">&sect;</span>10.2 </a><a
+class="tcrm-1000">&sect;</span>10.2 </a><a
href="#sec:printunsrt">Display All Entries Without Sorting or Indexing<!--tex4ht:ref: sec:printunsrt --></a>.
</p><!--l. 8956--><p class="indent" > Suppose the <span
class="cmtt-10">.bib </span>examples shown above have been stored in the files <span
@@ -17150,8 +17121,7 @@ class="cmtt-10">terms.bib</span>,
<span
class="cmtt-10">abbrvs.bib </span>and <span
class="cmtt-10">symbols.bib </span>which may either be in the current directory or on
-<span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s path. Then the document might look like:
+TeX&#8217;s path. Then the document might look like:
@@ -17175,9 +17145,9 @@ class="cmtt-10">mydoc</span>) is:
</p>
<div class="verbatim" id="verbatim-214">
-pdflatex&#x00A0;mydoc
-&#x00A0;<br />bib2gls&#x00A0;mydoc
-&#x00A0;<br />pdflatex&#x00A0;mydoc
+pdflatex&#x2002;mydoc
+&#x00A0;<br />bib2gls&#x2002;mydoc
+&#x00A0;<br />pdflatex&#x2002;mydoc
</div>
<!--l. 8985--><p class="nopar" > This creates a single glossary containing the entries: <span
class="cmtt-10">bird</span>, <span
@@ -17228,9 +17198,9 @@ methods:
&#x00A0;<br />\setabbreviationstyle{long-short-desc}
&#x00A0;<br />\GlsXtrLoadResources[src={terms},sort={en-GB},type=main]
&#x00A0;<br />\GlsXtrLoadResources
-&#x00A0;<br />&#x00A0;[src={abbrvs},sort={letter-nocase},type=abbreviations]
+&#x00A0;<br />&#x2002;[src={abbrvs},sort={letter-nocase},type=abbreviations]
&#x00A0;<br />\GlsXtrLoadResources
-&#x00A0;<br />&#x00A0;[src={symbols},sort={use},type={symbols}]
+&#x00A0;<br />&#x2002;[src={symbols},sort={use},type={symbols}]
&#x00A0;<br />\begin{document}
&#x00A0;<br />\gls{bird}
&#x00A0;<br />\gls{shtml}
@@ -17252,11 +17222,11 @@ class="cmtt-10">type</span>, which will produce a glossary with ordered sub-bloc
&#x00A0;<br />\usepackage[record,style=indexgroup]{glossaries-extra}
&#x00A0;<br />\setabbreviationstyle{long-short-desc}
&#x00A0;<br />\GlsXtrLoadResources
-&#x00A0;<br />&#x00A0;[src={abbrvs},sort={letter-nocase},type=main,
-&#x00A0;<br />&#x00A0;&#x00A0;group={Abbreviations}]
+&#x00A0;<br />&#x2002;[src={abbrvs},sort={letter-nocase},type=main,
+&#x00A0;<br />&#x2002;&#x2002;group={Abbreviations}]
&#x00A0;<br />\GlsXtrLoadResources
-&#x00A0;<br />&#x00A0;[src={symbols},sort={use},type=main,
-&#x00A0;<br />&#x00A0;&#x00A0;group={Symbols}]
+&#x00A0;<br />&#x2002;[src={symbols},sort={use},type=main,
+&#x00A0;<br />&#x2002;&#x2002;group={Symbols}]
&#x00A0;<br />\GlsXtrLoadResources[src={terms},sort={en-GB},type=main]
&#x00A0;<br />\begin{document}
&#x00A0;<br />\gls{bird}
@@ -17280,9 +17250,9 @@ class="cmtt-10">myDoc.tex</span>:
</p>
<div class="verbatim" id="verbatim-217">
-pdflatex&#x00A0;myDoc
-&#x00A0;<br />bib2gls&#x00A0;-g&#x00A0;myDoc
-&#x00A0;<br />pdflatex&#x00A0;myDoc
+pdflatex&#x2002;myDoc
+&#x00A0;<br />bib2gls&#x2002;-g&#x2002;myDoc
+&#x00A0;<br />pdflatex&#x2002;myDoc
</div>
<!--l. 9070--><p class="nopar" > The value of the <span
class="cmss-10">group</span><a
@@ -17290,42 +17260,42 @@ class="cmss-10">group</span><a
title with <span
class="cmtt-10">\glsxtrsetgrouptitle </span>(see <a
href="#sec:glosstylemods"><span
-class="cmsy-10">&sect;</span>2.10.1 </a><a
+class="tcrm-1000">&sect;</span>2.10.1 </a><a
href="#sec:glosstylemods">Glossary Style Modifications<!--tex4ht:ref: sec:glosstylemods --></a>). If no
title is set then the label is used as the group title.
</p><!--l. 9076--><p class="indent" > You can provide your own custom sort rule. For example, if you are using
-<span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x00A0;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>: </p><div class="alltt">
+<span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x2002;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>: </p><div class="alltt">
<div class="obeylines-v">
<span
class="cmtt-10">\GlsXtrLoadResources[</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;src=terms,</span><span
-class="cmtt-10">&#x00A0;%</span><span
-class="cmtt-10">&#x00A0;entries</span><span
-class="cmtt-10">&#x00A0;in</span><span
-class="cmtt-10">&#x00A0;terms.bib</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;src=terms,</span><span
+class="cmtt-10">&#x2002;%</span><span
+class="cmtt-10">&#x2002;entries</span><span
+class="cmtt-10">&#x2002;in</span><span
+class="cmtt-10">&#x2002;terms.bib</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;sort=custom,</span><span
-class="cmtt-10">&#x00A0;%</span><span
-class="cmtt-10">&#x00A0;custom</span><span
-class="cmtt-10">&#x00A0;sort</span><span
-class="cmtt-10">&#x00A0;rule</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;sort=custom,</span><span
+class="cmtt-10">&#x2002;%</span><span
+class="cmtt-10">&#x2002;custom</span><span
+class="cmtt-10">&#x2002;sort</span><span
+class="cmtt-10">&#x2002;rule</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;sort-rule=</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;sort-rule=</span><span
class="cmsy-10">{</span><span
class="cmtt-10">%</span><span
-class="cmtt-10">&#x00A0;required</span><span
-class="cmtt-10">&#x00A0;with</span><span
-class="cmtt-10">&#x00A0;sort=custom</span>
+class="cmtt-10">&#x2002;required</span><span
+class="cmtt-10">&#x2002;with</span><span
+class="cmtt-10">&#x2002;sort=custom</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;&aelig;;&AElig;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;a;</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;&aelig;;&AElig;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;a;</span><span
class="cmtt-10">&aacute;</span><span
class="cmtt-10">;</span><span
class="cmtt-10">å</span><span
@@ -17339,91 +17309,91 @@ class="cmtt-10">;</span><span
class="cmtt-10">Å</span><span
class="cmtt-10">;</span><span
class="cmtt-10">&Auml;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;b,B</span>
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;b,B</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;c;</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;c;</span><span
class="cmtt-10">&#263;</span><span
class="cmtt-10">,C;</span><span
class="cmtt-10">&#262;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;d,D</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;e;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;d,D</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;e;</span><span
class="cmtt-10">&eacute;</span><span
class="cmtt-10">,E;</span><span
class="cmtt-10">É</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;f,F</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;g,G</span>
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;f,F</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;g,G</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;h,H</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;i;</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;h,H</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;i;</span><span
class="cmtt-10">í</span><span
class="cmtt-10">,I;</span><span
class="cmtt-10">Í</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;j,J</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;l;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;j,J</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;l;</span><span
class="cmtt-10">&#322;,L;</span><span
class="cmtt-10">&#321;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;m,M</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;n,N</span>
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;m,M</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;n,N</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;o;</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;o;</span><span
class="cmtt-10">ö</span><span
class="cmtt-10">;&oslash;,O;</span><span
class="cmtt-10">Ö</span><span
class="cmtt-10">;Ø</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;p,P</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;q,Q</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;r,R</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;s;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;p,P</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;q,Q</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;r,R</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;s;</span><span
class="cmtt-10">&#347;</span><span
class="cmtt-10">,S;</span><span
class="cmtt-10">&#346;</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;t,T</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;u;</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;t,T</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;u;</span><span
class="cmtt-10">ú</span><span
class="cmtt-10">,U;</span><span
class="cmtt-10">Ú</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;v,V</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;w,W</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;x,X</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;y,Y</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span>
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;v,V</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;w,W</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;x,X</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;y,Y</span><span
+class="cmtt-10">&#x2002;&#x003C;</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;z;</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;z;</span><span
class="cmtt-10">&#380;</span><span
class="cmtt-10">,Z;</span><span
class="cmtt-10">&#379;</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;</span><span
class="cmsy-10">}</span>
<br /><span
class="cmtt-10">]</span>
@@ -17432,8 +17402,7 @@ class="cmtt-10">]</span>
class="cmss-10">inputenc</span><a
id="dx1-42012"></a> then extended characters, such as &eacute; or &oslash;,
are active and will expand when written to the <span
-class="cmtt-10">.aux </span>file. So with PDF<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;the
+class="cmtt-10">.aux </span>file. So with PDFLaTeX&#x2002;the
above would have to be changed to protect against expansion. Some of the
options, including <span
class="cmtt-10">sort-rule</span>, allow Unicode characters to be indicated in the
@@ -17451,7 +17420,7 @@ class="cmtt-10">bib2gls</span></a> will recognise this as the
character given by the hexadecimal value &#x27E8;<span
class="cmti-10">hex</span>&#x27E9;. The <span
class="cmtt-10">\u </span>also needs protection from
-expansion, so with a non-Unicode aware engine, the character &aelig;&#x00A0;needs to be
+expansion, so with a non-Unicode aware engine, the character &aelig;&#x2002;needs to be
written as <span
class="cmtt-10">\string\uE6 </span>and so on. This is quite cumbersome, but you can
use the shortcut <span
@@ -17463,131 +17432,131 @@ class="cmtt-10">E6 </span>instead, so the above needs to be written as:
<span
class="cmtt-10">\GlsXtrLoadResources[</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;src=terms,</span><span
-class="cmtt-10">&#x00A0;%</span><span
-class="cmtt-10">&#x00A0;entries</span><span
-class="cmtt-10">&#x00A0;in</span><span
-class="cmtt-10">&#x00A0;terms.bib</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;src=terms,</span><span
+class="cmtt-10">&#x2002;%</span><span
+class="cmtt-10">&#x2002;entries</span><span
+class="cmtt-10">&#x2002;in</span><span
+class="cmtt-10">&#x2002;terms.bib</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;sort=custom,</span><span
-class="cmtt-10">&#x00A0;%</span><span
-class="cmtt-10">&#x00A0;custom</span><span
-class="cmtt-10">&#x00A0;sort</span><span
-class="cmtt-10">&#x00A0;rule</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;sort=custom,</span><span
+class="cmtt-10">&#x2002;%</span><span
+class="cmtt-10">&#x2002;custom</span><span
+class="cmtt-10">&#x2002;sort</span><span
+class="cmtt-10">&#x2002;rule</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;sort-rule=</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;sort-rule=</span><span
class="cmsy-10">{</span><span
class="cmtt-10">%</span><span
-class="cmtt-10">&#x00A0;required</span><span
-class="cmtt-10">&#x00A0;with</span><span
-class="cmtt-10">&#x00A0;sort=custom</span>
+class="cmtt-10">&#x2002;required</span><span
+class="cmtt-10">&#x2002;with</span><span
+class="cmtt-10">&#x2002;sort=custom</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;\glshex</span><span
-class="cmtt-10">&#x00A0;E6;\glshex</span><span
-class="cmtt-10">&#x00A0;C6</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;\glshex</span><span
+class="cmtt-10">&#x2002;E6;\glshex</span><span
+class="cmtt-10">&#x2002;C6</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;a;\glshex</span><span
-class="cmtt-10">&#x00A0;E1;\glshex</span><span
-class="cmtt-10">&#x00A0;E5,\glshex</span><span
-class="cmtt-10">&#x00A0;E4,A;\glshex</span><span
-class="cmtt-10">&#x00A0;C1;\glshex</span><span
-class="cmtt-10">&#x00A0;C5;\glshex</span><span
-class="cmtt-10">&#x00A0;C4</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;a;\glshex</span><span
+class="cmtt-10">&#x2002;E1;\glshex</span><span
+class="cmtt-10">&#x2002;E5,\glshex</span><span
+class="cmtt-10">&#x2002;E4,A;\glshex</span><span
+class="cmtt-10">&#x2002;C1;\glshex</span><span
+class="cmtt-10">&#x2002;C5;\glshex</span><span
+class="cmtt-10">&#x2002;C4</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;b,B</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;c;\glshex</span><span
-class="cmtt-10">&#x00A0;0107,C;\glshex</span><span
-class="cmtt-10">&#x00A0;0106</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;d,D</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;b,B</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;c;\glshex</span><span
+class="cmtt-10">&#x2002;0107,C;\glshex</span><span
+class="cmtt-10">&#x2002;0106</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;d,D</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;e;\glshex</span><span
-class="cmtt-10">&#x00A0;E9,E;\glshex</span><span
-class="cmtt-10">&#x00A0;C9</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;f,F</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;g,G</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;e;\glshex</span><span
+class="cmtt-10">&#x2002;E9,E;\glshex</span><span
+class="cmtt-10">&#x2002;C9</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;f,F</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;g,G</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;h,H</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;i;\glshex</span><span
-class="cmtt-10">&#x00A0;ED,I;\glshex</span><span
-class="cmtt-10">&#x00A0;CD</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;j,J</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;h,H</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;i;\glshex</span><span
+class="cmtt-10">&#x2002;ED,I;\glshex</span><span
+class="cmtt-10">&#x2002;CD</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;j,J</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;l;\glshex</span><span
-class="cmtt-10">&#x00A0;0142,L;\glshex</span><span
-class="cmtt-10">&#x00A0;0141</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;m,M</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;n,N</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;l;\glshex</span><span
+class="cmtt-10">&#x2002;0142,L;\glshex</span><span
+class="cmtt-10">&#x2002;0141</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;m,M</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;n,N</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;o;\glshex</span><span
-class="cmtt-10">&#x00A0;F6;\glshex</span><span
-class="cmtt-10">&#x00A0;F8,O;\glshex</span><span
-class="cmtt-10">&#x00A0;D6;\glshex</span><span
-class="cmtt-10">&#x00A0;D8</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;o;\glshex</span><span
+class="cmtt-10">&#x2002;F6;\glshex</span><span
+class="cmtt-10">&#x2002;F8,O;\glshex</span><span
+class="cmtt-10">&#x2002;D6;\glshex</span><span
+class="cmtt-10">&#x2002;D8</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;p,P</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;q,Q</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;r,R</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;s;\glshex</span><span
-class="cmtt-10">&#x00A0;013F,S;\glshex</span><span
-class="cmtt-10">&#x00A0;015A</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;p,P</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;q,Q</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;r,R</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;s;\glshex</span><span
+class="cmtt-10">&#x2002;013F,S;\glshex</span><span
+class="cmtt-10">&#x2002;015A</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;t,T</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;u;\glshex</span><span
-class="cmtt-10">&#x00A0;FA,U;\glshex</span><span
-class="cmtt-10">&#x00A0;DA</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;v,V</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;w,W</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;x,X</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;y,Y</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;t,T</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;u;\glshex</span><span
+class="cmtt-10">&#x2002;FA,U;\glshex</span><span
+class="cmtt-10">&#x2002;DA</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;v,V</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;w,W</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;x,X</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;y,Y</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;&#x003C;</span><span
-class="cmtt-10">&#x00A0;z;\glshex</span><span
-class="cmtt-10">&#x00A0;017C,Z;\glshex</span><span
-class="cmtt-10">&#x00A0;017B</span>
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;&#x003C;</span><span
+class="cmtt-10">&#x2002;z;\glshex</span><span
+class="cmtt-10">&#x2002;017C,Z;\glshex</span><span
+class="cmtt-10">&#x2002;017B</span>
<br /><span
-class="cmtt-10">&#x00A0;</span><span
-class="cmtt-10">&#x00A0;</span><span
+class="cmtt-10">&#x2002;</span><span
+class="cmtt-10">&#x2002;</span><span
class="cmsy-10">}</span><span
class="cmtt-10">]</span>
</div>
@@ -17634,7 +17603,7 @@ class="cmss-10">record</span></a><a
id="dx1-43009"></a> package option then the
check for associated language resource files (see <a
href="#sec:lang"><span
-class="cmsy-10">&sect;</span>14 </a><a
+class="tcrm-1000">&sect;</span>14 </a><a
href="#sec:lang">Multi-Lingual Support<!--tex4ht:ref: sec:lang --></a>)
will also search for the existence of <span
class="cmtt-10">glossariesxtr-</span>&#x27E8;<span
@@ -17725,8 +17694,7 @@ For many of them, if you want to provide an alternative definition then you need
define the command before the resource file is loaded. There are a few that may be
redefined afterwards but if you use <span
class="cmtt-10">\renewcommand </span>then you will get an error on the
-first <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run when the <span
+first LaTeX&#x2002;run when the <span
class="cmtt-10">.glstex </span>file doesn&#8217;t exist. In this case, you may prefer to
use:
</p><!--l. 9182--><p class="indent" > <hr><div title="Definition"><a
@@ -18088,19 +18056,19 @@ class="cmti-10">file</span>&#x27E9; will be the external file reference.
</p>
<div class="verbatim" id="verbatim-219">
\newcommand*{\glsxtrdisplaylocnameref}[8]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\ifstrequal{#2}{equation}%
-&#x00A0;<br />&#x00A0;&#x00A0;{\glsxtrnamereflink{#3}{(#4)}{#2.#7}{#8}}%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\ifstrempty{#5}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrnamereflink{#3}{#4}{#2.#7}{#8}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\ifstrequal{#2}{page}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;{\glsxtrnamereflink{#3}{#4}{#2.#7}{#8}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;{\glsxtrnamereflink{#3}{#5}{#2.#7}{#8}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x00A0;<br />&#x2002;&#x2002;\ifstrequal{#2}{equation}%
+&#x00A0;<br />&#x2002;&#x2002;{\glsxtrnamereflink{#3}{(#4)}{#2.#7}{#8}}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\ifstrempty{#5}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrnamereflink{#3}{#4}{#2.#7}{#8}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\ifstrequal{#2}{page}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;{\glsxtrnamereflink{#3}{#4}{#2.#7}{#8}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;{\glsxtrnamereflink{#3}{#5}{#2.#7}{#8}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;}%
&#x00A0;<br />}
</div>
<!--l. 9335--><p class="nopar" > which uses:
@@ -18180,7 +18148,7 @@ text:
</p>
<div class="verbatim" id="verbatim-220">
\renewcommand*{\glsxtrdisplaylocnameref}[7]{%
-&#x00A0;<br />&#x00A0;\glsxtrnamereflink{#3}{#5}{#6}{#7}%
+&#x00A0;<br />&#x2002;\glsxtrnamereflink{#3}{#5}{#6}{#7}%
&#x00A0;<br />}
</div>
<!--l. 9368--><p class="nopar" > which uses:
@@ -18304,8 +18272,7 @@ class="cmtt-10">entry-type-aliases </span>setting:
id="dx1-46005"></a> <span
class="cmtt-10">\GlsXtrBibTeXEntryAliases </span></div><hr>
</p><!--l. 9432--><p class="noindent" >
-This provides aliases for Bib<span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s standard entry types to <a
+This provides aliases for BibTeX&#8217;s standard entry types to <a
id="dx1-46006"></a><a
href="#glo:bib2gls"><span
class="cmtt-10">bib2gls</span>&#8217;s</a> <span
@@ -18313,15 +18280,13 @@ class="cmtt-10">@bibtexentry</span>
entry type (requires at least <a
id="dx1-46007"></a><span
class="cmtt-10">bib2gls </span>version 1.4).
-</p><!--l. 9437--><p class="indent" > You may also want to provide storage keys for Bib<span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s standard fields rather
+</p><!--l. 9437--><p class="indent" > You may also want to provide storage keys for BibTeX&#8217;s standard fields rather
than having to alias them all. This can be done with:
</p><!--l. 9439--><p class="indent" > <hr><div title="Definition"><a
id="dx1-46008"></a> <span
class="cmtt-10">\GlsXtrProvideBibTeXFields </span></div><hr>
</p><!--l. 9441--><p class="noindent" >
-Note that Bib<span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s <span
+Note that BibTeX&#8217;s <span
class="cmtt-10">type </span>field clashes with the <span
class="cmss-10">glossaries</span><a
id="dx1-46009"></a> package&#8217;s <span
@@ -18401,8 +18366,7 @@ identifies the dialect, locale, region or root language. See the description of
class="cmtt-10">\IfTrackedLanguageFileExists </span>in the <span
class="cmss-10">tracklang</span><a
id="dx1-46030"></a> documentation for further details.
-If this file is on <span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s path and the <span
+If this file is on TeX&#8217;s path and the <span
class="cmss-10">tracklang</span><a
id="dx1-46031"></a> package (automatically loaded by
@@ -18419,42 +18383,42 @@ contains:
</p>
<div class="verbatim" id="verbatim-222">
-\ProvidesGlossariesExtraLang{welsh}[2018/02/23&#x00A0;v1.0]
+\ProvidesGlossariesExtraLang{welsh}[2018/02/23&#x2002;v1.0]
&#x00A0;<br />\@ifpackageloaded{glossaries-extra-bib2gls}
&#x00A0;<br />{
-&#x00A0;<br />&#x00A0;&#x00A0;\newcommand{\glsxtrWelshRules}{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\glsxtrLatinA
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;b,B
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;c,C
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;ch,CH
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;d,D
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;dd,DD
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinE
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;f,F
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;ff,FF
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;g,G
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;ng,NG
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinH
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinI
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;j,J
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinL
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;ll,LL
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinM
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinN
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinO
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinP
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;ph,PH
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;r,R
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;rh,RH
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinS
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;\glsxtrLatinT
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;th,TH
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;u,U
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;w,W
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\string&#x003C;y,Y
-&#x00A0;<br />&#x00A0;&#x00A0;}
+&#x00A0;<br />&#x2002;&#x2002;\newcommand{\glsxtrWelshRules}{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\glsxtrLatinA
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;b,B
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;c,C
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;ch,CH
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;d,D
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;dd,DD
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinE
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;f,F
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;ff,FF
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;g,G
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;ng,NG
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinH
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinI
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;j,J
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinL
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;ll,LL
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinM
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinN
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinO
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinP
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;ph,PH
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;r,R
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;rh,RH
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinS
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;\glsxtrLatinT
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;th,TH
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;u,U
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;w,W
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\string&#x003C;y,Y
+&#x00A0;<br />&#x2002;&#x2002;}
&#x00A0;<br />}
-&#x00A0;<br />{}%&#x00A0;glossaries-extra-bib2gls.sty&#x00A0;not&#x00A0;loaded
+&#x00A0;<br />{}%&#x2002;glossaries-extra-bib2gls.sty&#x2002;not&#x2002;loaded
</div>
<!--l. 9516--><p class="nopar" > (The use of <span
class="cmtt-10">\string </span>is in case the <span
@@ -18476,12 +18440,12 @@ class="cmtt-10">glossariesxtr-Cyrl.ldf </span>could contain:
</p>
<div class="verbatim" id="verbatim-223">
-\ProvidesGlossariesExtraLang{Cyrl}[2018/02/23&#x00A0;v1.0]
+\ProvidesGlossariesExtraLang{Cyrl}[2018/02/23&#x2002;v1.0]
&#x00A0;<br />\newcommand*{\glsxtrGeneralCyrillicIRules}{%
-&#x00A0;<br />&#x00A0;&#x00A0;%&#x00A0;Cyrillic&#x00A0;rules
+&#x00A0;<br />&#x2002;&#x2002;%&#x2002;Cyrillic&#x2002;rules
&#x00A0;<br />}
&#x00A0;<br />\newcommand*{\glsxtrGeneralCyrillicIIRules}{%
-&#x00A0;<br />&#x00A0;&#x00A0;%&#x00A0;an&#x00A0;alternative&#x00A0;set&#x00A0;of&#x00A0;Cyrillic&#x00A0;rules
+&#x00A0;<br />&#x2002;&#x2002;%&#x2002;an&#x2002;alternative&#x2002;set&#x2002;of&#x2002;Cyrillic&#x2002;rules
&#x00A0;<br />}
</div>
<!--l. 9535--><p class="nopar" > (Remember that the required document language scripts need to be tracked through
@@ -18510,17 +18474,17 @@ class="cmtt-10">mapsymbols.sty </span>might contain:
<div class="verbatim" id="verbatim-224">
\NeedsTeXFormat{LaTeX2e}
&#x00A0;<br />\ProvidesPackage{mapsymbols}
-&#x00A0;<br />&#x00A0;some&#x00A0;package&#x00A0;or&#x00A0;font&#x00A0;loading&#x00A0;stuff&#x00A0;here&#x00A0;to&#x00A0;provide
-&#x00A0;<br />&#x00A0;the&#x00A0;appropriate&#x00A0;symbols
+&#x00A0;<br />&#x2002;some&#x2002;package&#x2002;or&#x2002;font&#x2002;loading&#x2002;stuff&#x2002;here&#x2002;to&#x2002;provide
+&#x00A0;<br />&#x2002;the&#x2002;appropriate&#x2002;symbols
&#x00A0;<br />\newcommand{\Stadium}{...}
&#x00A0;<br />\newcommand{\Battlefield}{...}
&#x00A0;<br />\newcommand{\Harbour}{...}
-&#x00A0;<br />&#x00A0;etc
-&#x00A0;<br />&#x00A0;Provide&#x00A0;a&#x00A0;rule&#x00A0;block:
+&#x00A0;<br />&#x2002;etc
+&#x00A0;<br />&#x2002;Provide&#x2002;a&#x2002;rule&#x2002;block:
&#x00A0;<br />\newcommand{\MapSymbolOrder}{%
-&#x00A0;<br />&#x00A0;\glshex&#x00A0;2694&#x00A0;%&#x00A0;crossed-swords&#x00A0;0x2694
-&#x00A0;<br />&#x00A0;\string&#x003C;&#x00A0;\glshex&#x00A0;2693&#x00A0;%&#x00A0;anchor&#x00A0;0x2693
-&#x00A0;<br />&#x00A0;\string&#x003C;&#x00A0;\glshex&#x00A0;26BD&#x00A0;%&#x00A0;football&#x00A0;0x26BD
+&#x00A0;<br />&#x2002;\glshex&#x2002;2694&#x2002;%&#x2002;crossed-swords&#x2002;0x2694
+&#x00A0;<br />&#x2002;\string&#x003C;&#x2002;\glshex&#x2002;2693&#x2002;%&#x2002;anchor&#x2002;0x2693
+&#x00A0;<br />&#x2002;\string&#x003C;&#x2002;\glshex&#x2002;26BD&#x2002;%&#x2002;football&#x2002;0x26BD
&#x00A0;<br />}
</div>
<!--l. 9564--><p class="nopar" > and the supplementary file <span
@@ -18544,25 +18508,25 @@ class="cmtt-10">bib2gls</span></a>:
</p>
<div class="verbatim" id="verbatim-226">
-\usepackage{mapsymbols}%&#x00A0;my&#x00A0;custom&#x00A0;package
+\usepackage{mapsymbols}%&#x2002;my&#x2002;custom&#x2002;package
&#x00A0;<br />\usepackage[record]{glossaries-extra}
&#x00A0;<br />\GlsXtrLoadResources[
-&#x00A0;<br />&#x00A0;&#x00A0;src={mapsymbols,%&#x00A0;&#x003C;---&#x00A0;my&#x00A0;custom&#x00A0;mapsymbols.bib
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;entries%&#x00A0;data&#x00A0;in&#x00A0;entries.bib
-&#x00A0;<br />&#x00A0;&#x00A0;},
-&#x00A0;<br />&#x00A0;&#x00A0;sort={custom},
-&#x00A0;<br />&#x00A0;&#x00A0;sort-rule={\glsxtrcontrolrules&#x00A0;%&#x00A0;control&#x00A0;codes
-&#x00A0;<br />&#x00A0;;\glsxtrspacerules&#x00A0;%&#x00A0;space&#x00A0;characters
-&#x00A0;<br />&#x00A0;;\glsxtrnonprintablerules&#x00A0;%&#x00A0;non-printable&#x00A0;characters
-&#x00A0;<br />&#x00A0;;\glsxtrcombiningdiacriticrules&#x00A0;%&#x00A0;combining&#x00A0;diacritics
-&#x00A0;<br />&#x00A0;,\glsxtrhyphenrules&#x00A0;%&#x00A0;hyphens
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrgeneralpuncrules&#x00A0;%&#x00A0;general&#x00A0;punctuation
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrdigitrules&#x00A0;%&#x00A0;0,&#x00A0;...,&#x00A0;9
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrfractionrules&#x00A0;%&#x00A0;fraction&#x00A0;symbols
-&#x00A0;<br />&#x00A0;&#x003C;\MapSymbolOrder&#x00A0;%&#x00A0;&#x003C;---&#x00A0;custom&#x00A0;map&#x00A0;symbols
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrMathItalicGreekIrules&#x00A0;%&#x00A0;math-greek&#x00A0;symbols
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrGeneralLatinIrules&#x00A0;%&#x00A0;Latin&#x00A0;letters
-&#x00A0;<br />&#x00A0;}
+&#x00A0;<br />&#x2002;&#x2002;src={mapsymbols,%&#x2002;&#x003C;---&#x2002;my&#x2002;custom&#x2002;mapsymbols.bib
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;entries%&#x2002;data&#x2002;in&#x2002;entries.bib
+&#x00A0;<br />&#x2002;&#x2002;},
+&#x00A0;<br />&#x2002;&#x2002;sort={custom},
+&#x00A0;<br />&#x2002;&#x2002;sort-rule={\glsxtrcontrolrules&#x2002;%&#x2002;control&#x2002;codes
+&#x00A0;<br />&#x2002;;\glsxtrspacerules&#x2002;%&#x2002;space&#x2002;characters
+&#x00A0;<br />&#x2002;;\glsxtrnonprintablerules&#x2002;%&#x2002;non-printable&#x2002;characters
+&#x00A0;<br />&#x2002;;\glsxtrcombiningdiacriticrules&#x2002;%&#x2002;combining&#x2002;diacritics
+&#x00A0;<br />&#x2002;,\glsxtrhyphenrules&#x2002;%&#x2002;hyphens
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrgeneralpuncrules&#x2002;%&#x2002;general&#x2002;punctuation
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrdigitrules&#x2002;%&#x2002;0,&#x2002;...,&#x2002;9
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrfractionrules&#x2002;%&#x2002;fraction&#x2002;symbols
+&#x00A0;<br />&#x2002;&#x003C;\MapSymbolOrder&#x2002;%&#x2002;&#x003C;---&#x2002;custom&#x2002;map&#x2002;symbols
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrMathItalicGreekIrules&#x2002;%&#x2002;math-greek&#x2002;symbols
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrGeneralLatinIrules&#x2002;%&#x2002;Latin&#x2002;letters
+&#x00A0;<br />&#x2002;}
&#x00A0;<br />]
</div>
<!--l. 9596--><p class="nopar" >
@@ -18593,17 +18557,17 @@ class="cmtt-10">\Beta</span><a
</p>
<div class="verbatim" id="verbatim-227">
sort-rule={\glsxtrcontrolrules
-&#x00A0;<br />&#x00A0;;\glsxtrspacerules
-&#x00A0;<br />&#x00A0;;\glsxtrnonprintablerules
-&#x00A0;<br />&#x00A0;;\glsxtrcombiningdiacriticrules
-&#x00A0;<br />&#x00A0;,\glsxtrhyphenrules
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrgeneralpuncrules
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrdigitrules
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrfractionrules
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrMathItalicGreekIrules
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrGeneralLatinIVrules
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrLatinAA
-&#x00A0;<br />&#x00A0;&#x003C;\glsxtrLatinOslash
+&#x00A0;<br />&#x2002;;\glsxtrspacerules
+&#x00A0;<br />&#x2002;;\glsxtrnonprintablerules
+&#x00A0;<br />&#x2002;;\glsxtrcombiningdiacriticrules
+&#x00A0;<br />&#x2002;,\glsxtrhyphenrules
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrgeneralpuncrules
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrdigitrules
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrfractionrules
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrMathItalicGreekIrules
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrGeneralLatinIVrules
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrLatinAA
+&#x00A0;<br />&#x2002;&#x003C;\glsxtrLatinOslash
&#x00A0;<br />}
</div>
<!--l. 9622--><p class="nopar" >
@@ -18647,10 +18611,10 @@ of sub-block commands:
</p>
<div class="verbatim" id="verbatim-228">
\newcommand*{\glsxtrcombiningdiacriticrules}{%
-&#x00A0;<br />&#x00A0;\glsxtrcombiningdiacriticIrules\string;
-&#x00A0;<br />&#x00A0;\glsxtrcombiningdiacriticIIrules\string;
-&#x00A0;<br />&#x00A0;\glsxtrcombiningdiacriticIIIrules\string;
-&#x00A0;<br />&#x00A0;\glsxtrcombiningdiacriticIVrules
+&#x00A0;<br />&#x2002;\glsxtrcombiningdiacriticIrules\string;
+&#x00A0;<br />&#x2002;\glsxtrcombiningdiacriticIIrules\string;
+&#x00A0;<br />&#x2002;\glsxtrcombiningdiacriticIIIrules\string;
+&#x00A0;<br />&#x2002;\glsxtrcombiningdiacriticIVrules
&#x00A0;<br />}
</div>
<!--l. 9660--><p class="nopar" > If you prefer, you can use the sub-blocks directly in your required ordered.
@@ -18719,9 +18683,9 @@ different order is required:
</p>
<div class="verbatim" id="verbatim-229">
\newcommand*{\glsxtrgeneralpuncrules}{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrgeneralpuncIrules
-&#x00A0;<br />&#x00A0;&#x00A0;\string&#x003C;\glsxtrcurrencyrules
-&#x00A0;<br />&#x00A0;&#x00A0;\string&#x003C;\glsxtrgeneralpuncIIrules
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrgeneralpuncIrules
+&#x00A0;<br />&#x2002;&#x2002;\string&#x003C;\glsxtrcurrencyrules
+&#x00A0;<br />&#x2002;&#x2002;\string&#x003C;\glsxtrgeneralpuncIIrules
&#x00A0;<br />}
</div>
<!--l. 9730--><p class="nopar" >
@@ -18774,7 +18738,7 @@ This rule block contains just the Basic Latin digits (0, &#x2026;, 9).
class="cmtt-10">\glsxtrSubScriptDigitrules </span></div><hr>
</p><!--l. 9780--><p class="noindent" >
This rule block contains just the subscript digits (<sub class="textsubscript"><span
-class="cmr-9">0</span></sub> &#x2026;&#x00A0;<sub class="textsubscript"><span
+class="cmr-9">0</span></sub> &#x2026;&#x2002;<sub class="textsubscript"><span
class="cmr-9">9</span></sub>).
</p><!--l. 9784--><p class="indent" > <hr><div title="Definition"><a
id="dx1-46059"></a> <span
@@ -18784,7 +18748,7 @@ class="cmtt-10">\glsxtrSuperScriptDigitrules </span></div><hr>
</p><!--l. 9786--><p class="noindent" >
This rule block contains just the superscript digits (<sup class="textsuperscript"><span
-class="cmr-9">0</span></sup> &#x2026;&#x00A0;<sup class="textsuperscript"><span
+class="cmr-9">0</span></sup> &#x2026;&#x2002;<sup class="textsuperscript"><span
class="cmr-9">9</span></sup>).
</p><!--l. 9790--><p class="indent" > <hr><div title="Definition"><a
id="dx1-46060"></a> <span
@@ -18794,7 +18758,7 @@ This rule block contains vulgar fraction characters. The digit block typically c
after the digit rules separated by a less than (<span
class="cmtt-10">&#x003C;</span>).
</p><!--l. 9797--><p class="indent" > There are a number of Latin rule blocks. Some of these included extended
-characters or ligatures (such as &szlig;&#x00A0;or &#339;) but they don&#8217;t include accented
+characters or ligatures (such as &szlig;&#x2002;or &#339;) but they don&#8217;t include accented
characters. If you require a Latin rule block that includes accented characters,
digraphs, trigraphs or other extended characters, then it&#8217;s best to provide similar
commands in a <span
@@ -18868,7 +18832,7 @@ class="cmtt-10">\glsxtrGeneralLatinVIIIrules </span></div><hr>
This is like <span
class="cmtt-10">\glsxtrGeneralLatinIrules </span>but ae-ligature (&aelig;) is treated as &#8216;ae&#8217;,
oe-ligature (&#339;) is treated as &#8216;oe&#8217;, eszett (&szlig;) treated as &#8216;ss&#8217;, thorn (þ) is treated as &#8216;th&#8217;,
-Ø&#x00A0;is treated as &#8216;O&#8217; and &#8216;&#321;&#8217; is treated as &#8216;L&#8217;.
+Ø&#x2002;is treated as &#8216;O&#8217; and &#8216;&#321;&#8217; is treated as &#8216;L&#8217;.
</p><!--l. 9865--><p class="indent" > <hr><div title="Definition"><a
id="dx1-46069"></a> <span
class="cmtt-10">\glsxtrLatinA </span></div><hr>
@@ -19073,12 +19037,11 @@ class="cmtt-10">\diagamma</span><a
class="cmtt-10">\Digamma</span><a
id="dx1-46114"></a>) between epsilon and zeta. Note that even
though the upper case <span
-class="cmtt-10">\Delta </span>etc are actually rendered upright by <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>,
-<a
+class="cmtt-10">\Delta </span>etc are actually rendered upright by LaTeX, <a
id="dx1-46115"></a><a
href="#glo:bib2gls"><span
-class="cmtt-10">bib2gls</span>&#8217;s</a> interpreter treats them as italic to help keep them close to the lower case
+class="cmtt-10">bib2gls</span>&#8217;s</a>
+interpreter treats them as italic to help keep them close to the lower case
versions.
</p><!--l. 10057--><p class="indent" > <hr><div title="Definition"><a
id="dx1-46116"></a> <span
@@ -19206,7 +19169,7 @@ commands for convenience. For example, with:
</div>
<!--l. 10128--><p class="nopar" > you can just use, for example, <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">\u</span><span
-class="cmtt-10">&#x00A0;E6</span></span></span> instead of <span class="obeylines-h"><span class="verb"><span
+class="cmtt-10">&#x2002;E6</span></span></span> instead of <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">\string\uE6</span></span></span> in the custom rule.
This redefinition of <span
class="cmtt-10">\u </span>is scoped so its original definition is restored after the write
@@ -19237,15 +19200,15 @@ example:
&#x00A0;<br />\usepackage[record,style=indexgroup]{glossaries-extra}
&#x00A0;<br />\setabbreviationstyle{long-short-desc}
&#x00A0;<br />\GlsXtrLoadResources
-&#x00A0;<br />&#x00A0;[src={abbrvs},sort={letter-nocase},type=main,
-&#x00A0;<br />&#x00A0;&#x00A0;label-prefix={abr.},
-&#x00A0;<br />&#x00A0;&#x00A0;group={Abbreviations}]
+&#x00A0;<br />&#x2002;[src={abbrvs},sort={letter-nocase},type=main,
+&#x00A0;<br />&#x2002;&#x2002;label-prefix={abr.},
+&#x00A0;<br />&#x2002;&#x2002;group={Abbreviations}]
&#x00A0;<br />\GlsXtrLoadResources
-&#x00A0;<br />&#x00A0;[src={symbols},sort={use},type=main,
-&#x00A0;<br />&#x00A0;&#x00A0;label-prefix={sym.},
-&#x00A0;<br />&#x00A0;&#x00A0;group={Symbols}]
+&#x00A0;<br />&#x2002;[src={symbols},sort={use},type=main,
+&#x00A0;<br />&#x2002;&#x2002;label-prefix={sym.},
+&#x00A0;<br />&#x2002;&#x2002;group={Symbols}]
&#x00A0;<br />\GlsXtrLoadResources[src={terms},sort={en-GB},type=main
-&#x00A0;<br />&#x00A0;&#x00A0;label-prefix={trm.}]
+&#x00A0;<br />&#x2002;&#x2002;label-prefix={trm.}]
&#x00A0;<br />\begin{document}
&#x00A0;<br />\gls{trm.bird}
&#x00A0;<br />\gls{abr.shtml}
@@ -19285,7 +19248,7 @@ class="cmtt-10">\gls</span>&#x27E8;<span
class="cmitt-10">modifier</span>&#x27E9;<span
class="cmtt-10">[</span>&#x27E8;<span
class="cmitt-10">default</span><span
-class="cmitt-10">&#x00A0;options</span>&#x27E9;<span
+class="cmitt-10">&#x2002;options</span>&#x27E9;<span
class="cmtt-10">,</span>&#x27E8;<span
class="cmitt-10">options</span>&#x27E9;<span
class="cmtt-10">]</span><span
@@ -19451,8 +19414,7 @@ class="cmitt-10">prefix</span>&#x27E9;<span
class="cmtt-10">} </span></div><hr>
</p><!--l. 10252--><p class="noindent" >
These should be listed in order of precedence. Since no entries are defined on the first
-<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run, the final prefix should be the fallback. You can prepend a prefix to the
+LaTeX&#x2002;run, the final prefix should be the fallback. You can prepend a prefix to the
list using:
</p><!--l. 10256--><p class="indent" > <hr><div title="Definition"><a
id="dx1-47015"></a> <span
@@ -19612,13 +19574,13 @@ class="cmtt-10">entries.bib </span>contains:
<div class="verbatim" id="verbatim-238">
@index{duck}
&#x00A0;<br />@dualindexabbreviation{svm,
-&#x00A0;<br />&#x00A0;&#x00A0;short={SVM},
-&#x00A0;<br />&#x00A0;&#x00A0;long={support&#x00A0;vector&#x00A0;machine}
+&#x00A0;<br />&#x2002;&#x2002;short={SVM},
+&#x00A0;<br />&#x2002;&#x2002;long={support&#x2002;vector&#x2002;machine}
&#x00A0;<br />}
&#x00A0;<br />@dualindexsymbol{pi,
-&#x00A0;<br />&#x00A0;&#x00A0;symbol={\ensuremath{\pi}},
-&#x00A0;<br />&#x00A0;&#x00A0;description={ratio&#x00A0;of&#x00A0;a&#x00A0;circle's&#x00A0;circumference&#x00A0;to&#x00A0;its
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;diameter}
+&#x00A0;<br />&#x2002;&#x2002;symbol={\ensuremath{\pi}},
+&#x00A0;<br />&#x2002;&#x2002;description={ratio&#x2002;of&#x2002;a&#x2002;circle's&#x2002;circumference&#x2002;to&#x2002;its
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;diameter}
&#x00A0;<br />}
</div>
<!--l. 10334--><p class="nopar" > and suppose the document code is:
@@ -19631,18 +19593,18 @@ class="cmtt-10">entries.bib </span>contains:
&#x00A0;<br />\usepackage{hyperref}
&#x00A0;<br />\usepackage[record,abbreviations,symbols]{glossaries-extra}
&#x00A0;<br />\newcommand{\bibglsnewdualindexsymbolsecondary}[5]{%
-&#x00A0;<br />&#x00A0;\longnewglossaryentry*{#1}{name={#3},category={symbol},
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;type={symbols},symbol={#4},#2}{#5}%
+&#x00A0;<br />&#x2002;\longnewglossaryentry*{#1}{name={#3},category={symbol},
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;type={symbols},symbol={#4},#2}{#5}%
&#x00A0;<br />}
&#x00A0;<br />\GlsXtrLoadResources[src=entries]
&#x00A0;<br />\begin{document}
-&#x00A0;<br />First&#x00A0;use:&#x00A0;\gls{duck},&#x00A0;\gls{svm},&#x00A0;\gls{pi}.
-&#x00A0;<br />Next&#x00A0;use:&#x00A0;\gls{duck},&#x00A0;\gls{svm},&#x00A0;\gls{pi}.
+&#x00A0;<br />First&#x2002;use:&#x2002;\gls{duck},&#x2002;\gls{svm},&#x2002;\gls{pi}.
+&#x00A0;<br />Next&#x2002;use:&#x2002;\gls{duck},&#x2002;\gls{svm},&#x2002;\gls{pi}.
&#x00A0;<br />\printunsrtglossaries
&#x00A0;<br />\end{document}
</div>
<!--l. 10353--><p class="nopar" > This uses the default empty primary prefix and <span
-class="cmtt-10">dual.</span>&#x00A0;for the dual prefix, so
+class="cmtt-10">dual.</span>&#x2002;for the dual prefix, so
<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">\gls{svm}</span></span></span> is referencing the primary entry, which is (essentially) an <span
class="cmtt-10">@index </span>type
@@ -19658,7 +19620,7 @@ symbol.
</p>
<div class="verbatim" id="verbatim-240">
-\gls{duck},&#x00A0;\gls{dual.svm},&#x00A0;\gls{dual.pi}.
+\gls{duck},&#x2002;\gls{dual.svm},&#x2002;\gls{dual.pi}.
</div>
<!--l. 10365--><p class="nopar" > or with
@@ -19667,8 +19629,8 @@ symbol.
</p>
<div class="verbatim" id="verbatim-241">
\GlsXtrLoadResources[src=entries,
-&#x00A0;<br />&#x00A0;label-prefix={idx.},
-&#x00A0;<br />&#x00A0;dual-prefix={}
+&#x00A0;<br />&#x2002;label-prefix={idx.},
+&#x00A0;<br />&#x2002;dual-prefix={}
&#x00A0;<br />]
</div>
<!--l. 10372--><p class="nopar" > then only the entries without a dual need a prefix:
@@ -19677,7 +19639,7 @@ symbol.
</p>
<div class="verbatim" id="verbatim-242">
-\gls{idx.duck},&#x00A0;\gls{svm},&#x00A0;\gls{pi}.
+\gls{idx.duck},&#x2002;\gls{svm},&#x2002;\gls{pi}.
</div>
<!--l. 10376--><p class="nopar" > Using <span
class="cmtt-10">\glsxtrnewglslike</span>, as earlier, this can be simplified to:
@@ -19686,7 +19648,7 @@ class="cmtt-10">\glsxtrnewglslike</span>, as earlier, this can be simplified to:
</p>
<div class="verbatim" id="verbatim-243">
-\idx{duck},&#x00A0;\gls{svm},&#x00A0;\gls{pi}.
+\idx{duck},&#x2002;\gls{svm},&#x2002;\gls{pi}.
</div>
<!--l. 10380--><p class="nopar" > but this requires remembering which terms have duals.
</p><!--l. 10383--><p class="indent" > An alternative is to use <span
@@ -19700,37 +19662,34 @@ class="cmtt-10">\dgls </span>instead:
&#x00A0;<br />\usepackage{hyperref}
&#x00A0;<br />\usepackage[record,abbreviations,symbols]{glossaries-extra}
&#x00A0;<br />\newcommand{\bibglsnewdualindexsymbolsecondary}[5]{%
-&#x00A0;<br />&#x00A0;\longnewglossaryentry*{#1}{name={#3},category={symbol},
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;type={symbols},symbol={#4},#2}{#5}%
+&#x00A0;<br />&#x2002;\longnewglossaryentry*{#1}{name={#3},category={symbol},
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;type={symbols},symbol={#4},#2}{#5}%
&#x00A0;<br />}
&#x00A0;<br />\GlsXtrLoadResources[src=entries]
&#x00A0;<br />\glsxtraddlabelprefix{dual.}
&#x00A0;<br />\glsxtraddlabelprefix{}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />First&#x00A0;use:&#x00A0;\dgls{duck},&#x00A0;\dgls{svm},&#x00A0;\dgls{pi}.
-&#x00A0;<br />Next&#x00A0;use:&#x00A0;\dgls{duck},&#x00A0;\dgls{svm},&#x00A0;\dgls{pi}.
+&#x00A0;<br />First&#x2002;use:&#x2002;\dgls{duck},&#x2002;\dgls{svm},&#x2002;\dgls{pi}.
+&#x00A0;<br />Next&#x2002;use:&#x2002;\dgls{duck},&#x2002;\dgls{svm},&#x2002;\dgls{pi}.
&#x00A0;<br />\printunsrtglossaries
&#x00A0;<br />\end{document}
</div>
-<!--l. 10404--><p class="nopar" > On the first <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;call (when the <span
-class="cmtt-10">.glstex </span>file doesn&#8217;t exist), neither
+<!--l. 10404--><p class="nopar" > On the first LaTeX&#x2002;call (when the <span
+class="cmtt-10">.glstex </span>file doesn&#8217;t exist), neither <span
+class="cmtt-10">dual.svm </span>nor
<span
-class="cmtt-10">dual.svm </span>nor <span
class="cmtt-10">svm </span>exists, so <span
-class="cmtt-10">\dgls </span>uses the last prefix (which is empty in this
-case). This means that on the first <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run, <span class="obeylines-h"><span class="verb"><span
-class="cmtt-10">\dgls{svm}</span></span></span> behaves like
-<span class="obeylines-h"><span class="verb"><span
-class="cmtt-10">\gls{svm}</span></span></span>, which adds a record for the primary <span
-class="cmtt-10">svm </span>entry. The default
-primary-dual dependency means that this will cause both the primary (<span
-class="cmtt-10">svm</span>) and
-dual (<span
-class="cmtt-10">dual.svm</span>) entry to be selected. The location will be added to the
-primary entry&#8217;s location list, unless overridden by resource options, such as
-<span
+class="cmtt-10">\dgls </span>uses the last prefix (which is empty in this case). This means
+that on the first LaTeX&#x2002;run, <span class="obeylines-h"><span class="verb"><span
+class="cmtt-10">\dgls{svm}</span></span></span> behaves like <span class="obeylines-h"><span class="verb"><span
+class="cmtt-10">\gls{svm}</span></span></span>, which adds a
+record for the primary <span
+class="cmtt-10">svm </span>entry. The default primary-dual dependency means that
+this will cause both the primary (<span
+class="cmtt-10">svm</span>) and dual (<span
+class="cmtt-10">dual.svm</span>) entry to be selected. The
+location will be added to the primary entry&#8217;s location list, unless overridden by
+resource options, such as <span
class="cmtt-10">combine-dual-locations</span>.
</p><!--l. 10416--><p class="indent" > Once <a
id="dx1-47026"></a><a
@@ -19760,8 +19719,7 @@ class="cmtt-10">\gls{duck}</span></span></span>.
</p><!--l. 10430--><p class="indent" > If you haven&#8217;t used <span
class="cmtt-10">combine-dual-locations </span>an extra <a
id="dx1-47027"></a><span
-class="cmtt-10">bib2gls</span>+<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run
+class="cmtt-10">bib2gls</span>+LaTeX&#x2002;run
may be required to correct the location lists.
</p><!--l. 10434--><p class="indent" > If you change the label prefixes, remember to update the corresponding
<span
@@ -19772,11 +19730,11 @@ list is cleared), just an empty prefix is assumed.
</p><!--l. 10439--><p class="indent" > As from version 1.8, <a
id="dx1-47028"></a><span
class="cmtt-10">bib2gls </span>provides hooks that identify the label prefixes in the
+<span
+class="cmtt-10">.glstex </span>file: </p><div class="alltt">
-<span
-class="cmtt-10">.glstex </span>file: </p><div class="alltt">
<div class="obeylines-v">
<span
class="cmtt-10">\bibglstertiaryprefixlabel</span><a
@@ -19970,8 +19928,7 @@ This expands to the total for the given location. For example
<!--l. 10550--><p class="nopar" > expands to 4. Be careful about using <span
class="cmtt-10">\thepage </span>in the &#x27E8;<span
class="cmti-10">location</span>&#x27E9; part. Remember that
-due to <span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s asynchronous output routine, <span
+due to TeX&#8217;s asynchronous output routine, <span
class="cmtt-10">\thepage </span>may not be correct.
</p><!--l. 10555--><p class="indent" > There are commands analogous to the entry counting commands like <span
class="cmtt-10">\cgls</span>
@@ -20123,7 +20080,7 @@ trigger value command is:
</p>
<div class="verbatim" id="verbatim-252">
\newcommand*{\glsxtrrecordtriggervalue}[1]{%
-&#x00A0;<br />&#x00A0;\GlsXtrTotalRecordCount{#1}%
+&#x00A0;<br />&#x2002;\GlsXtrTotalRecordCount{#1}%
&#x00A0;<br />}
</div>
<!--l. 10612--><p class="nopar" > The &#x27E8;<span
@@ -20233,15 +20190,15 @@ For example:
&#x00A0;<br />\usepackage[record]{glossaries-extra}
&#x00A0;<br />\newignoredglossary{ignored}
&#x00A0;<br />\GlsXtrLoadResources[
-&#x00A0;<br />&#x00A0;src=example-glossaries-acronym,
-&#x00A0;<br />&#x00A0;trigger-type=ignored,
-&#x00A0;<br />&#x00A0;category=abbreviation
+&#x00A0;<br />&#x2002;src=example-glossaries-acronym,
+&#x00A0;<br />&#x2002;trigger-type=ignored,
+&#x00A0;<br />&#x2002;category=abbreviation
&#x00A0;<br />]
&#x00A0;<br />\glsxtrenablerecordcount
&#x00A0;<br />\GlsXtrSetRecordCountAttribute{abbreviation}{1}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />\gls{lid}.&#x00A0;&#x00A0;\gls{stc}.&#x00A0;\gls{lid}.&#x00A0;&#x00A0;\gls{aeu}.
-&#x00A0;<br />\gls{upa}.&#x00A0;\gls{aeu}.
+&#x00A0;<br />\gls{lid}.&#x2002;&#x2002;\gls{stc}.&#x2002;\gls{lid}.&#x2002;&#x2002;\gls{aeu}.
+&#x00A0;<br />\gls{upa}.&#x2002;\gls{aeu}.
&#x00A0;<br />\printunsrtglossaries
&#x00A0;<br />\end{document}
</div>
@@ -20359,25 +20316,25 @@ class="cmti-10">without the initial backslash</span>.
\newcommand*{\mtx}[1]{\boldsymbol{#1}}
&#x00A0;<br />\newcommand*{\mtxinv}[1]{\mtx{#1}\sp{-1}}
&#x00A0;<br />\newglossaryentry{matrix}{%
-&#x00A0;<br />&#x00A0;&#x00A0;name={matrix},
-&#x00A0;<br />&#x00A0;&#x00A0;symbol={\ensuremath{\mtx{M}}},
-&#x00A0;<br />&#x00A0;&#x00A0;plural={matrices},
-&#x00A0;<br />&#x00A0;&#x00A0;user1={mtx},
-&#x00A0;<br />&#x00A0;&#x00A0;description={rectangular&#x00A0;array&#x00A0;of&#x00A0;values}
+&#x00A0;<br />&#x2002;&#x2002;name={matrix},
+&#x00A0;<br />&#x2002;&#x2002;symbol={\ensuremath{\mtx{M}}},
+&#x00A0;<br />&#x2002;&#x2002;plural={matrices},
+&#x00A0;<br />&#x2002;&#x2002;user1={mtx},
+&#x00A0;<br />&#x2002;&#x2002;description={rectangular&#x2002;array&#x2002;of&#x2002;values}
&#x00A0;<br />}
&#x00A0;<br />\newglossaryentry{identitymatrix}{%
-&#x00A0;<br />&#x00A0;&#x00A0;name={identity&#x00A0;matrix},
-&#x00A0;<br />&#x00A0;&#x00A0;symbol={\ensuremath{\mtx{I}}},
-&#x00A0;<br />&#x00A0;&#x00A0;plural={identity&#x00A0;matrices},
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;diagonal&#x00A0;matrix&#x00A0;with&#x00A0;all&#x00A0;diagonal&#x00A0;elements&#x00A0;equal&#x00A0;to
-&#x00A0;<br />1&#x00A0;and&#x00A0;all&#x00A0;other&#x00A0;elements&#x00A0;equal&#x00A0;to&#x00A0;0}
+&#x00A0;<br />&#x2002;&#x2002;name={identity&#x2002;matrix},
+&#x00A0;<br />&#x2002;&#x2002;symbol={\ensuremath{\mtx{I}}},
+&#x00A0;<br />&#x2002;&#x2002;plural={identity&#x2002;matrices},
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;diagonal&#x2002;matrix&#x2002;with&#x2002;all&#x2002;diagonal&#x2002;elements&#x2002;equal&#x2002;to
+&#x00A0;<br />1&#x2002;and&#x2002;all&#x2002;other&#x2002;elements&#x2002;equal&#x2002;to&#x2002;0}
&#x00A0;<br />}
&#x00A0;<br />\newglossaryentry{matrixinv}{%
-&#x00A0;<br />&#x00A0;&#x00A0;name={matrix&#x00A0;inverse},
-&#x00A0;<br />&#x00A0;&#x00A0;symbol={\ensuremath{\mtxinv{M}}},
-&#x00A0;<br />&#x00A0;&#x00A0;user1={mtxinv},
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;square&#x00A0;\gls{matrix}&#x00A0;such&#x00A0;that
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;$\mtx{M}\mtxinv{M}=\glssymbol{identitymatrix}$}
+&#x00A0;<br />&#x2002;&#x2002;name={matrix&#x2002;inverse},
+&#x00A0;<br />&#x2002;&#x2002;symbol={\ensuremath{\mtxinv{M}}},
+&#x00A0;<br />&#x2002;&#x2002;user1={mtxinv},
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;square&#x2002;\gls{matrix}&#x2002;such&#x2002;that
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;$\mtx{M}\mtxinv{M}=\glssymbol{identitymatrix}$}
&#x00A0;<br />}
</div>
<!--l. 10766--><p class="nopar" >
@@ -20408,7 +20365,7 @@ class="cmtt-10">\glsxtrfmtdisplay</span>
<span
class="cmtt-10">{</span>&#x27E8;<span
class="cmitt-10">cs</span><span
-class="cmitt-10">&#x00A0;name</span>&#x27E9;<span
+class="cmitt-10">&#x2002;name</span>&#x27E9;<span
class="cmtt-10">}{</span>&#x27E8;<span
class="cmitt-10">text</span>&#x27E9;<span
class="cmtt-10">}</span><span
@@ -20500,10 +20457,10 @@ class="cmti-10">text</span>&#x27E9;. </div>
</p>
<div class="verbatim" id="verbatim-257">
\[
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrfmt{matrix}{A}
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrfmt{matrixinv}{A}
-&#x00A0;<br />&#x00A0;&#x00A0;=
-&#x00A0;<br />&#x00A0;&#x00A0;\glssymbol{identitymatrix}
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrfmt{matrix}{A}
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrfmt{matrixinv}{A}
+&#x00A0;<br />&#x2002;&#x2002;=
+&#x00A0;<br />&#x2002;&#x2002;\glssymbol{identitymatrix}
&#x00A0;<br />\]
</div>
<!--l. 10831--><p class="nopar" > If the default options are set to <span
@@ -21015,8 +20972,8 @@ the category is one of a set of labels:
</p>
<div class="verbatim" id="verbatim-259">
\GlsXtrIfFieldValueInCsvList{examplelabel}{category}%
-&#x00A0;<br />&#x00A0;{abbreviation,acronym}%&#x00A0;set&#x00A0;of&#x00A0;labels
-&#x00A0;<br />&#x00A0;{true&#x00A0;part}{false&#x00A0;part}
+&#x00A0;<br />&#x2002;{abbreviation,acronym}%&#x2002;set&#x2002;of&#x2002;labels
+&#x00A0;<br />&#x2002;{true&#x2002;part}{false&#x2002;part}
</div>
<!--l. 11061--><p class="nopar" >
</p><!--l. 11063--><p class="indent" > As from v1.31, if a field represents a numeric (integer) value, you can use the
@@ -21258,12 +21215,12 @@ class="cmtt-10">save-child-count </span>resource option:
</p>
<div class="verbatim" id="verbatim-260">
\newcommand*{\listchildren}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\GlsXtrIfFieldNonZero{childcount}{#1}%
-&#x00A0;<br />&#x00A0;&#x00A0;{child&#x00A0;count:&#x00A0;\glscurrentfieldvalue;&#x00A0;children:
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\let\DTLlistformatitem\glsfmtname
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\glsxtrfieldformatlist{#1}{childlist}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;{no&#x00A0;children}%
+&#x00A0;<br />&#x2002;&#x2002;\GlsXtrIfFieldNonZero{childcount}{#1}%
+&#x00A0;<br />&#x2002;&#x2002;{child&#x2002;count:&#x2002;\glscurrentfieldvalue;&#x2002;children:
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\let\DTLlistformatitem\glsfmtname
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\glsxtrfieldformatlist{#1}{childlist}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;{no&#x2002;children}%
&#x00A0;<br />}
</div>
<!--l. 11172--><p class="nopar" > For fields that contain a comma-separated list use <span
@@ -21412,25 +21369,25 @@ class="cmti-10">text</span>&#x27E9;. For example:
&#x00A0;<br />\usepackage{glossaries-extra}
&#x00A0;<br />\setabbreviationstyle{long-short-user}
&#x00A0;<br />\newabbreviation
-&#x00A0;<br />&#x00A0;[user1={Associa\c{c}\~ao&#x00A0;Brasileria&#x00A0;de&#x00A0;Normas&#x00A0;T\'ecnicas},
-&#x00A0;<br />&#x00A0;&#x00A0;user2=&#x00A0;{pt-BR}
-&#x00A0;<br />&#x00A0;]
-&#x00A0;<br />&#x00A0;{abnt}{ABNT}{Brazilian&#x00A0;National&#x00A0;Standards&#x00A0;Organization}
+&#x00A0;<br />&#x2002;[user1={Associa\c{c}\~ao&#x2002;Brasileria&#x2002;de&#x2002;Normas&#x2002;T\'ecnicas},
+&#x00A0;<br />&#x2002;&#x2002;user2=&#x2002;{pt-BR}
+&#x00A0;<br />&#x2002;]
+&#x00A0;<br />&#x2002;{abnt}{ABNT}{Brazilian&#x2002;National&#x2002;Standards&#x2002;Organization}
&#x00A0;<br />\newabbreviation
-&#x00A0;<br />&#x00A0;[user1={Deutsches&#x00A0;Institut&#x00A0;f\"ur&#x00A0;Normung&#x00A0;e.V.},
-&#x00A0;<br />&#x00A0;&#x00A0;user2={de-DE-1996}]
-&#x00A0;<br />&#x00A0;{din}{DIN}{German&#x00A0;Institute&#x00A0;for&#x00A0;Standardization}
+&#x00A0;<br />&#x2002;[user1={Deutsches&#x2002;Institut&#x2002;f\"ur&#x2002;Normung&#x2002;e.V.},
+&#x00A0;<br />&#x2002;&#x2002;user2={de-DE-1996}]
+&#x00A0;<br />&#x2002;{din}{DIN}{German&#x2002;Institute&#x2002;for&#x2002;Standardization}
&#x00A0;<br />\renewcommand*{\glsxtruserparen}[2]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrfullsep{#2}%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrparen
-&#x00A0;<br />&#x00A0;&#x00A0;{#1%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;\ifglshasfield{\glsxtruserfield}{#2}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;{,&#x00A0;\emph{\GlsXtrForeignText{#2}{\glscurrentfieldvalue}}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;{}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrfullsep{#2}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrparen
+&#x00A0;<br />&#x2002;&#x2002;{#1%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;\ifglshasfield{\glsxtruserfield}{#2}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;{,&#x2002;\emph{\GlsXtrForeignText{#2}{\glscurrentfieldvalue}}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;{}%
+&#x00A0;<br />&#x2002;&#x2002;}%
&#x00A0;<br />}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />\gls{abnt},&#x00A0;\gls{din}.
+&#x00A0;<br />\gls{abnt},&#x2002;\gls{din}.
&#x00A0;<br />\end{document}
</div>
<!--l. 11267--><p class="nopar" >
@@ -21549,7 +21506,7 @@ which is equivalent to </p><div class="alltt">
<span
class="cmtt-10">\begingroup</span>
<br /><span
-class="cmtt-10">&#x00A0;</span>&#x27E8;<span
+class="cmtt-10">&#x2002;</span>&#x27E8;<span
class="cmitt-10">code</span>&#x27E9;<span
class="cmtt-10">\printunsrtglossary[</span>&#x27E8;<span
class="cmitt-10">options</span>&#x27E9;<span
@@ -21562,8 +21519,7 @@ class="cmtt-10">\glossarypreamble</span>, the supplied &#x27E8;<span
class="cmti-10">code</span>&#x27E9; is done before the glossary
header.
<!--l. 11331--><p class="indent" > This means you now have the option to simply list all entries on the first
-<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run without the need for a post-processor, however there will be no <a
+LaTeX&#x2002;run without the need for a post-processor, however there will be no <a
id="dx1-51006"></a><a
href="#glo:numberlist">number
list</a> in this case, as that has to be set by a post-processor such as <a
@@ -21571,7 +21527,7 @@ list</a> in this case, as that has to be set by a post-processor such as <a
href="#glo:bib2gls"><span
class="cmtt-10">bib2gls</span></a> (see <a
href="#sec:bib2gls"><span
-class="cmsy-10">&sect;</span>9
+class="tcrm-1000">&sect;</span>9
</a><a
href="#sec:bib2gls"><span
class="cmtt-10">bib2gls</span>: Managing Reference Databases<!--tex4ht:ref: sec:bib2gls --></a>).
@@ -21592,7 +21548,7 @@ class="cmss-10">name</span><a
id="dx1-51009"></a> field. The corresponding group title will be obtained as discussed
in <a
href="#sec:glosstylemods"><span
-class="cmsy-10">&sect;</span>2.10.1 </a><a
+class="tcrm-1000">&sect;</span>2.10.1 </a><a
href="#sec:glosstylemods">Glossary Style Modifications<!--tex4ht:ref: sec:glosstylemods --></a>. This can lead to an odd effect if
you are using a style that separates letter groups when the ordering isn&#8217;t
alphabetical.
@@ -21662,10 +21618,10 @@ will automatically deal with this.
<div class="verbatim" id="verbatim-264">
\documentclass{article}
&#x00A0;<br />\usepackage{glossaries-extra}
-&#x00A0;<br />\newglossaryentry{zebra}{name={zebra},description={stripy&#x00A0;animal}}
-&#x00A0;<br />\newglossaryentry{ant}{name={ant},description={an&#x00A0;insect}}
+&#x00A0;<br />\newglossaryentry{zebra}{name={zebra},description={stripy&#x2002;animal}}
+&#x00A0;<br />\newglossaryentry{ant}{name={ant},description={an&#x2002;insect}}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />\gls{ant}&#x00A0;and&#x00A0;\gls{zebra}
+&#x00A0;<br />\gls{ant}&#x2002;and&#x2002;\gls{zebra}
&#x00A0;<br />\printunsrtglossaries
&#x00A0;<br />\end{document}
</div>
@@ -21674,8 +21630,7 @@ will automatically deal with this.
href="#styopt.docdefs"><span
class="cmss-10">docdefs</span></a><a
id="dx1-51022"></a> option, the document will
-require a second <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;run if the entries are defined after <span
+require a second LaTeX&#x2002;run if the entries are defined after <span
class="cmtt-10">\printunsrtglossary</span>.
</p><!--l. 11400--><p class="indent" > The optional argument is as for <span
class="cmtt-10">\printnoidxglossary </span>(except for the <span
@@ -21818,9 +21773,9 @@ class="cmtt-10">record.section </span>field:
</p>
<div class="verbatim" id="verbatim-267">
\renewcommand{\printunsrtglossaryhandler}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
-&#x00A0;<br />&#x00A0;&#x00A0;{\glsxtrunsrtdo{#1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;{}%
+&#x00A0;<br />&#x2002;&#x2002;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
+&#x00A0;<br />&#x2002;&#x2002;{\glsxtrunsrtdo{#1}}%
+&#x00A0;<br />&#x2002;&#x2002;{}%
&#x00A0;<br />}
</div>
<!--l. 11496--><p class="nopar" >
@@ -21833,11 +21788,11 @@ localise the change:
</p>
<div class="verbatim" id="verbatim-268">
\printunsrtglossary*{%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand{\printunsrtglossaryhandler}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{\glsxtrunsrtdo{#1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand{\printunsrtglossaryhandler}[1]{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{\glsxtrunsrtdo{#1}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{}%
+&#x00A0;<br />&#x2002;&#x2002;}%
&#x00A0;<br />}
</div>
<!--l. 11509--><p class="nopar" >
@@ -21853,18 +21808,18 @@ duplicate hypertarget names. For example:
</p>
<div class="verbatim" id="verbatim-269">
\printunsrtglossary*{%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand{\printunsrtglossaryhandler}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{\glsxtrunsrtdo{#1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;\ifcsundef{theHsection}%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\renewcommand*{\glolinkprefix}{record.\csuse{thesection}.}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\renewcommand*{\glolinkprefix}{record.\csuse{theHsection}.}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand{\printunsrtglossaryhandler}[1]{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{\glsxtrunsrtdo{#1}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;\ifcsundef{theHsection}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\renewcommand*{\glolinkprefix}{record.\csuse{thesection}.}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\renewcommand*{\glolinkprefix}{record.\csuse{theHsection}.}%
+&#x00A0;<br />&#x2002;&#x2002;}%
&#x00A0;<br />}
</div>
<!--l. 11531--><p class="nopar" > Note that this will cause a problem if your descriptions contain commands like <span
@@ -21877,18 +21832,18 @@ better approach to use:
</p>
<div class="verbatim" id="verbatim-270">
\printunsrtglossary*{%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand{\printunsrtglossaryhandler}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{\glsxtrunsrtdo{#1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;\ifcsundef{theHsection}%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\setkeys{printgloss}{targetnameprefix={record.\csuse{thesection}.}}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\setkeys{printgloss}{targetnameprefix={record.\csuse{theHsection}.}}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand{\printunsrtglossaryhandler}[1]{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{\glsxtrunsrtdo{#1}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;\ifcsundef{theHsection}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\setkeys{printgloss}{targetnameprefix={record.\csuse{thesection}.}}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\setkeys{printgloss}{targetnameprefix={record.\csuse{theHsection}.}}%
+&#x00A0;<br />&#x2002;&#x2002;}%
&#x00A0;<br />}
</div>
<!--l. 11551--><p class="nopar" >
@@ -21900,20 +21855,20 @@ the glossary header and add some vertical space afterwards:
</p>
<div class="verbatim" id="verbatim-271">
\printunsrtglossary*{%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand{\printunsrtglossaryhandler}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{\glsxtrunsrtdo{#1}}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;\ifcsundef{theHsection}%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\renewcommand*{\glolinkprefix}{record.\csuse{thesection}.}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\renewcommand*{\glolinkprefix}{record.\csuse{theHsection}.}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glossarysection}[2][]{}%
-&#x00A0;<br />&#x00A0;&#x00A0;\appto\glossarypostamble{\glspar\medskip\glspar}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand{\printunsrtglossaryhandler}[1]{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsxtrfieldxifinlist{#1}{record.section}{\thesection}
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{\glsxtrunsrtdo{#1}}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;\ifcsundef{theHsection}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\renewcommand*{\glolinkprefix}{record.\csuse{thesection}.}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\renewcommand*{\glolinkprefix}{record.\csuse{theHsection}.}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glossarysection}[2][]{}%
+&#x00A0;<br />&#x2002;&#x2002;\appto\glossarypostamble{\glspar\medskip\glspar}%
&#x00A0;<br />}
</div>
<!--l. 11573--><p class="nopar" >
@@ -21951,7 +21906,7 @@ so if you want to just make some minor modifications you can do
</p>
<div class="verbatim" id="verbatim-273">
\printunsrtglossary*{\printunsrtglossaryunitsetup{section}%
-&#x00A0;<br />&#x00A0;&#x00A0;\renewcommand*{\glossarysection}[2][]{\subsection*{Summary}}%
+&#x00A0;<br />&#x2002;&#x2002;\renewcommand*{\glossarysection}[2][]{\subsection*{Summary}}%
&#x00A0;<br />}
</div>
<!--l. 11594--><p class="nopar" > which will start the list with a subsection header with the title &#8220;Summary&#8221;
@@ -22001,10 +21956,10 @@ custom command:
</p>
<div class="verbatim" id="verbatim-274">
\newcommand{\displayterm}[1]{%
-&#x00A0;<br />&#x00A0;\par\medskip\par\noindent
-&#x00A0;<br />&#x00A0;Definition:&#x00A0;\glsentryname{#1}.\par
-&#x00A0;<br />&#x00A0;\glsentrydesc{#1}
-&#x00A0;<br />&#x00A0;\par\medskip
+&#x00A0;<br />&#x2002;\par\medskip\par\noindent
+&#x00A0;<br />&#x2002;Definition:&#x2002;\glsentryname{#1}.\par
+&#x00A0;<br />&#x2002;\glsentrydesc{#1}
+&#x00A0;<br />&#x2002;\par\medskip
&#x00A0;<br />}
</div>
<!--l. 11628--><p class="nopar" > define your entries
@@ -22014,7 +21969,7 @@ custom command:
</p>
<div class="verbatim" id="verbatim-275">
\newglossaryentry{function}{name={function},
-&#x00A0;<br />&#x00A0;&#x00A0;description={a&#x00A0;relation&#x00A0;or&#x00A0;expression&#x00A0;involving&#x00A0;variables}
+&#x00A0;<br />&#x2002;&#x2002;description={a&#x2002;relation&#x2002;or&#x2002;expression&#x2002;involving&#x2002;variables}
&#x00A0;<br />}
</div>
<!--l. 11634--><p class="nopar" > and then later in the text:
@@ -22250,10 +22205,10 @@ class="cmtt-10">\glssymbolaccessdisplay</span>).
</p>
<div class="verbatim" id="verbatim-278">
\newcommand{\displayterm}[1]{%
-&#x00A0;<br />&#x00A0;\par\medskip\par\noindent
-&#x00A0;<br />&#x00A0;Definition:&#x00A0;\glsxtrglossentry{#1}.\par
-&#x00A0;<br />&#x00A0;\glsentrydesc{#1}
-&#x00A0;<br />&#x00A0;\par\medskip
+&#x00A0;<br />&#x2002;\par\medskip\par\noindent
+&#x00A0;<br />&#x2002;Definition:&#x2002;\glsxtrglossentry{#1}.\par
+&#x00A0;<br />&#x2002;\glsentrydesc{#1}
+&#x00A0;<br />&#x2002;\par\medskip
&#x00A0;<br />}
</div>
<!--l. 11758--><p class="nopar" > If I want numbered definitions, then I can use the package options <span
@@ -22268,10 +22223,10 @@ class="cmss-10">subentrycounter</span><a
</p>
<div class="verbatim" id="verbatim-279">
\newcommand{\displayterm}[1]{%
-&#x00A0;<br />&#x00A0;\par\medskip\par\noindent
-&#x00A0;<br />&#x00A0;Definition&#x00A0;\glsxtrglossentry{#1}.\par
-&#x00A0;<br />&#x00A0;\glsentrydesc{#1}
-&#x00A0;<br />&#x00A0;\par\medskip
+&#x00A0;<br />&#x2002;\par\medskip\par\noindent
+&#x00A0;<br />&#x2002;Definition&#x2002;\glsxtrglossentry{#1}.\par
+&#x00A0;<br />&#x2002;\glsentrydesc{#1}
+&#x00A0;<br />&#x2002;\par\medskip
&#x00A0;<br />}
</div>
<!--l. 11769--><p class="nopar" > The counter label uses a dot after the number by default but this can be changed to
@@ -22297,13 +22252,13 @@ the following modification:
</p>
<div class="verbatim" id="verbatim-281">
\newcommand{\displayterm}[1]{%
-&#x00A0;<br />&#x00A0;\par\medskip\par\noindent
-&#x00A0;<br />&#x00A0;Definition&#x00A0;\glsxtrglossentry{#1}.\par
-&#x00A0;<br />&#x00A0;\begingroup
-&#x00A0;<br />&#x00A0;&#x00A0;\glsxtractivatenopost
-&#x00A0;<br />&#x00A0;&#x00A0;\glossentrydesc{#1}\glspostdescription
-&#x00A0;<br />&#x00A0;\endgroup
-&#x00A0;<br />&#x00A0;\par\medskip
+&#x00A0;<br />&#x2002;\par\medskip\par\noindent
+&#x00A0;<br />&#x2002;Definition&#x2002;\glsxtrglossentry{#1}.\par
+&#x00A0;<br />&#x2002;\begingroup
+&#x00A0;<br />&#x2002;&#x2002;\glsxtractivatenopost
+&#x00A0;<br />&#x2002;&#x2002;\glossentrydesc{#1}\glspostdescription
+&#x00A0;<br />&#x2002;\endgroup
+&#x00A0;<br />&#x2002;\par\medskip
&#x00A0;<br />}
</div>
<!--l. 11791--><p class="nopar" > (Note the grouping to localise <span
@@ -22451,8 +22406,8 @@ For example:
</p>
<div class="verbatim" id="verbatim-283">
\renewcommand{\glsxtrsetaliasnoindex}{%
-&#x00A0;<br />&#x00A0;\glsxtrindexaliased
-&#x00A0;<br />&#x00A0;\setkeys{glslink}{noindex}%
+&#x00A0;<br />&#x2002;\glsxtrindexaliased
+&#x00A0;<br />&#x2002;\setkeys{glslink}{noindex}%
&#x00A0;<br />}
</div>
<!--l. 11863--><p class="nopar" >
@@ -22490,7 +22445,7 @@ class="cmss-10">document</span><a
id="dx1-54002"></a>
environment. As mentioned in <a
href="#sec:pkgopts"><span
-class="cmsy-10">&sect;</span>1.2 </a><a
+class="tcrm-1000">&sect;</span>1.2 </a><a
href="#sec:pkgopts">New or Modified Package Options<!--tex4ht:ref: sec:pkgopts --></a> above, this
ability is disabled by default with <span
class="cmss-10">glossaries-extra </span>but can be enabled using the
@@ -22559,15 +22514,15 @@ class="cmtt-10">name={</span>&#x27E8;<span
class="cmitt-10">label</span>&#x27E9;<span
class="cmtt-10">},</span>
<br /><span
-class="cmtt-10">&#x00A0;category=\glsxtrcat,</span>
+class="cmtt-10">&#x2002;category=\glsxtrcat,</span>
<br /><span
-class="cmtt-10">&#x00A0;description=</span><span
+class="cmtt-10">&#x2002;description=</span><span
class="cmsy-10">{</span><span
class="cmtt-10">\nopostdesc</span><span
class="cmsy-10">}</span><span
class="cmtt-10">,</span>
<br /><span
-class="cmtt-10">&#x00A0;</span>&#x27E8;<span
+class="cmtt-10">&#x2002;</span>&#x27E8;<span
class="cmitt-10">dfn-options</span>&#x27E9;<span
class="cmsy-10">}</span>
</div>
@@ -22606,7 +22561,7 @@ below:
</p>
<div class="verbatim" id="verbatim-284">
\glsxtr[][plural=geese]{goose}
-&#x00A0;<br />&#x00A0;...&#x00A0;later
+&#x00A0;<br />&#x2002;...&#x2002;later
&#x00A0;<br />\glsxtr[][plural=geese]{goose}
</div>
<!--l. 11940--><p class="nopar" >
@@ -22618,8 +22573,8 @@ below:
<div class="verbatim" id="verbatim-285">
\newcommand*{\goose}{\glsxtr[][plural=geese]{goose}}
&#x00A0;<br />\renewcommand*{\GlsXtrWarning}[2]{}
-&#x00A0;<br />&#x00A0;...&#x00A0;later
-&#x00A0;<br />\goose\&#x00A0;some&#x00A0;more&#x00A0;text&#x00A0;here
+&#x00A0;<br />&#x2002;...&#x2002;later
+&#x00A0;<br />\goose\&#x2002;some&#x2002;more&#x2002;text&#x2002;here
</div>
<!--l. 11948--><p class="nopar" > then don&#8217;t bother. It&#8217;s simpler and less problematic to just define the entries in the
preamble with <span
@@ -22671,10 +22626,9 @@ class="cmtt-10">\glsxtr </span>but uses <span
class="cmtt-10">\Glspl </span>instead of <span
class="cmtt-10">\gls</span>.
</p><!--l. 11969--><p class="indent" > If you use UTF-8 and don&#8217;t want the inconvenient of needing to use an
-ASCII-only label, then it&#8217;s better to use <span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x00A0;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>&#x00A0;instead of
-<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;(or pdf<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>). If you really desperately want to use UTF-8 entry labels
-without switching to <span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x00A0;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>&#x00A0;then there is a starred version of
+ASCII-only label, then it&#8217;s better to use <span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x2002;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>&#x2002;instead of
+LaTeX&#x2002;(or pdf<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>). If you really desperately want to use UTF-8 entry labels
+without switching to <span class="HoLogo-XeLaTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">&#x018e;</span></span><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span></span>&#x2002;or Lua<span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>&#x2002;then there is a starred version of
<span
class="cmtt-10">\GlsXtrEnableOnTheFly </span>that allows you to use UTF-8 characters in &#x27E8;<span
class="cmti-10">label</span>&#x27E9;, but it&#8217;s
@@ -22719,12 +22673,12 @@ example:
&#x00A0;<br />\usepackage{glossaries-prefix}
&#x00A0;<br />\makeglossaries
&#x00A0;<br />\newabbreviation
-&#x00A0;<br />&#x00A0;[prefix={an\space},
-&#x00A0;<br />&#x00A0;prefixfirst={a~}]
-&#x00A0;<br />&#x00A0;{svm}{SVM}{support&#x00A0;vector&#x00A0;machine}
+&#x00A0;<br />&#x2002;[prefix={an\space},
+&#x00A0;<br />&#x2002;prefixfirst={a~}]
+&#x00A0;<br />&#x2002;{svm}{SVM}{support&#x2002;vector&#x2002;machine}
&#x00A0;<br />\begin{document}
-&#x00A0;<br />First&#x00A0;use:&#x00A0;\pgls{svm}.
-&#x00A0;<br />Next&#x00A0;use:&#x00A0;\pgls{svm}.
+&#x00A0;<br />First&#x2002;use:&#x2002;\pgls{svm}.
+&#x00A0;<br />Next&#x2002;use:&#x2002;\pgls{svm}.
&#x00A0;<br />\printglossaries
&#x00A0;<br />\end{document}
</div>
@@ -22807,11 +22761,11 @@ class="cmss-10">glossaries-accsupp</span><a
</p>
<div class="verbatim" id="verbatim-289">
\newcommand*{\glsaccessname}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsnameaccessdisplay
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glsentryname{#1}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;{#1}%
+&#x00A0;<br />&#x2002;&#x2002;\glsnameaccessdisplay
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glsentryname{#1}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;{#1}%
&#x00A0;<br />}
</div>
<!--l. 12067--><p class="nopar" > (<span
@@ -22845,11 +22799,11 @@ class="cmss-10">glossaries-accsupp</span><a
</p>
<div class="verbatim" id="verbatim-291">
\newcommand*{\Glsaccessname}[1]{%
-&#x00A0;<br />&#x00A0;&#x00A0;\glsnameaccessdisplay
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\Glsentryname{#1}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;{#1}%
+&#x00A0;<br />&#x2002;&#x2002;\glsnameaccessdisplay
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\Glsentryname{#1}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;{#1}%
&#x00A0;<br />}
</div>
<!--l. 12088--><p class="nopar" >
@@ -23217,14 +23171,14 @@ class="description">Enable entry-use counting (only index if used more
than <span
class="cmmi-10">n </span>times, see <a
href="#sec:entrycount"><span
-class="cmsy-10">&sect;</span>7.1 </a><a
+class="tcrm-1000">&sect;</span>7.1 </a><a
href="#sec:entrycount">Entry Counting (First Use Flag)<!--tex4ht:ref: sec:entrycount --></a>).
</dd><dt class="description">
<span
class="cmbx-10">sample-unitentrycount.tex</span> </dt><dd
class="description">Enable use of per-unit entry-use counting (<a
href="#sec:entrycount"><span
-class="cmsy-10">&sect;</span>7.1
+class="tcrm-1000">&sect;</span>7.1
</a><a
href="#sec:entrycount">Entry Counting (First Use Flag)<!--tex4ht:ref: sec:entrycount --></a>).
</dd><dt class="description">
@@ -23232,7 +23186,7 @@ href="#sec:entrycount">Entry Counting (First Use Flag)<!--tex4ht:ref: sec:entryc
class="cmbx-10">sample-onelink.tex</span> </dt><dd
class="description">Using the per-unit entry counting (<a
href="#sec:entrycount"><span
-class="cmsy-10">&sect;</span>7.1 </a><a
+class="tcrm-1000">&sect;</span>7.1 </a><a
href="#sec:entrycount">Entry Counting
(First Use Flag)<!--tex4ht:ref: sec:entrycount --></a>) to only have one hyperlink per entry per page.
</dd><dt class="description">
@@ -23240,7 +23194,7 @@ href="#sec:entrycount">Entry Counting
class="cmbx-10">sample-linkcount.tex</span> </dt><dd
class="description">Using link counting (<a
href="#sec:linkcount"><span
-class="cmsy-10">&sect;</span>7.2 </a><a
+class="tcrm-1000">&sect;</span>7.2 </a><a
href="#sec:linkcount">Link Counting<!--tex4ht:ref: sec:linkcount --></a>) to only have
one hyperlink per entry.
</dd><dt class="description">
@@ -23285,7 +23239,7 @@ class="description">Uses the <span
class="cmss-10">alias</span><a
id="dx1-58010"></a> key. (See <a
href="#sec:alias"><span
-class="cmsy-10">&sect;</span>10.4 </a><a
+class="tcrm-1000">&sect;</span>10.4 </a><a
href="#sec:alias">Entry Aliases<!--tex4ht:ref: sec:alias --></a>.)
</dd><dt class="description">
<span
@@ -23297,7 +23251,7 @@ class="cmss-10">alttree</span><a
id="dx1-58012"></a>
style (see <a
href="#x1-190002.10.1"><span
-class="cmsy-10">&sect;</span>2.10.1 </a><a
+class="tcrm-1000">&sect;</span>2.10.1 </a><a
href="#x1-190002.10.1">The <span
class="cmss-10">glossaries-extra-stylemods </span>Package<!--tex4ht:ref: sec:stylemods --></a>).
</dd><dt class="description">
@@ -23338,8 +23292,7 @@ class="cmss-10">name</span><a
<span
class="cmbx-10">sample-onthefly-utf8.tex</span> </dt><dd
class="description">Tries to emulate the previous sample file for use
- with <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
-class="E">E</span>X</span></span>&#x00A0;through the starred version of <span
+ with LaTeX&#x2002;through the starred version of <span
class="cmtt-10">\GlsXtrEnableOnTheFly</span><a
id="dx1-58019"></a>.
This is a bit iffy and may not always work. Terms that contain commands
@@ -23393,7 +23346,7 @@ to change in your document and that&#8217;s <span
class="cmtt-10">\abbreviationsname</span><a
id="dx1-59001"></a> (<a
href="#sec:pkgopts"><span
-class="cmsy-10">&sect;</span>1.2 </a><a
+class="tcrm-1000">&sect;</span>1.2 </a><a
href="#sec:pkgopts">New or
Modified Package Options<!--tex4ht:ref: sec:pkgopts --></a>) if you use the <a
href="#styopt.abbreviations"><span
@@ -23414,7 +23367,7 @@ class="cmss-10">glossaries</span>).
</p>
<div class="verbatim" id="verbatim-292">
-\renewcommand*{\abbreviationsname}{List&#x00A0;of&#x00A0;Abbreviations}
+\renewcommand*{\abbreviationsname}{List&#x2002;of&#x2002;Abbreviations}
</div>
<!--l. 12374--><p class="nopar" > Or using <span
class="cmss-10">babel</span><a
@@ -23427,7 +23380,7 @@ class="cmss-10">polyglossia</span><a
</p>
<div class="verbatim" id="verbatim-293">
\appto\captionsenglish{%
-&#x00A0;<br />&#x00A0;\renewcommand*{\abbreviationsname}{List&#x00A0;of&#x00A0;Abbreviations}%
+&#x00A0;<br />&#x2002;\renewcommand*{\abbreviationsname}{List&#x2002;of&#x2002;Abbreviations}%
&#x00A0;<br />}
</div>
<!--l. 12380--><p class="nopar" >
@@ -23440,7 +23393,7 @@ For example:
</p>
<div class="verbatim" id="verbatim-294">
-\printabbreviations[title={List&#x00A0;of&#x00A0;Abbreviations}]
+\printabbreviations[title={List&#x2002;of&#x2002;Abbreviations}]
</div>
<!--l. 12386--><p class="nopar" > or
@@ -23448,7 +23401,7 @@ For example:
</p>
<div class="verbatim" id="verbatim-295">
-\printglossary[type=abbreviations,title={List&#x00A0;of&#x00A0;Abbreviations}]
+\printglossary[type=abbreviations,title={List&#x2002;of&#x2002;Abbreviations}]
</div>
<!--l. 12390--><p class="nopar" >
</p><!--l. 12392--><p class="indent" > The other fixed text commands are the diagnostic messages, which shouldn&#8217;t
@@ -23491,27 +23444,27 @@ class="cmtt-10">glossariesxtr-french.ldf</span>.
</p>
<div class="verbatim" id="verbatim-296">
-\ProvidesGlossariesExtraLang{french}[2015/12/09&#x00A0;v1.0]
+\ProvidesGlossariesExtraLang{french}[2015/12/09&#x2002;v1.0]
&#x00A0;<br />\newcommand*{\glossariesxtrcaptionsfrench}{%
-&#x00A0;<br />&#x00A0;\def\abbreviationsname{Abr\'eviations}%
+&#x00A0;<br />&#x2002;\def\abbreviationsname{Abr\'eviations}%
&#x00A0;<br />}
&#x00A0;<br />\glossariesxtrcaptionsfrench
&#x00A0;<br />\ifcsdef{captions\CurrentTrackedDialect}
&#x00A0;<br />{%
-&#x00A0;<br />&#x00A0;&#x00A0;\csappto{captions\CurrentTrackedDialect}%
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glossariesxtrcaptionsfrench
-&#x00A0;<br />&#x00A0;&#x00A0;}%
+&#x00A0;<br />&#x2002;&#x2002;\csappto{captions\CurrentTrackedDialect}%
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\glossariesxtrcaptionsfrench
+&#x00A0;<br />&#x2002;&#x2002;}%
&#x00A0;<br />}%
&#x00A0;<br />{%
-&#x00A0;<br />&#x00A0;&#x00A0;\ifcsdef{captions\CurrentTrackedLanguage}
-&#x00A0;<br />&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;\csappto{captions\CurrentTrackedLanguage}%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;{%
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\glossariesxtrcaptionsfrench
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;}%
-&#x00A0;<br />&#x00A0;&#x00A0;{}%
+&#x00A0;<br />&#x2002;&#x2002;\ifcsdef{captions\CurrentTrackedLanguage}
+&#x00A0;<br />&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;\csappto{captions\CurrentTrackedLanguage}%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;{%
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;\glossariesxtrcaptionsfrench
+&#x00A0;<br />&#x2002;&#x2002;&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;}%
+&#x00A0;<br />&#x2002;&#x2002;{}%
&#x00A0;<br />}
</div>
<!--l. 12440--><p class="nopar" >
@@ -23526,13 +23479,12 @@ class="cmtt-10">.ldf </span>file to provide rule blocks for a particular languag
href="#glo:bib2gls"><span
class="cmtt-10">bib2gls</span>&#8217;s</a> custom sort rule. See <a
href="#x1-430009.3"><span
-class="cmsy-10">&sect;</span>9.3 </a><a
+class="tcrm-1000">&sect;</span>9.3 </a><a
href="#x1-430009.3">The <span
class="cmss-10">glossaries-extra-bib2gls </span>package<!--tex4ht:ref: sec:bib2glssty --></a> for further
details.
</p><!--l. 12449--><p class="indent" > This <span
-class="cmtt-10">.ldf </span>file then needs to be put somewhere on <span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s path so that it can be
+class="cmtt-10">.ldf </span>file then needs to be put somewhere on TeX&#8217;s path so that it can be
found by <span
class="cmss-10">glossaries-extra</span>. You might also want to consider uploading it to CTAN so
that it can be useful to others. (Please don&#8217;t send it to me. I already have more
@@ -23820,8 +23772,7 @@ class="cmtt-10">makeglossaries-lite</span>
(without the <span
class="cmtt-10">.lua </span>extension) to the actual <span
class="cmtt-10">makeglossaries-lite.lua</span>
- script, and <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;distributions on Windows convert the script to an
+ script, and TeX&#x2002;distributions on Windows convert the script to an
executable <span
class="cmtt-10">makeglossaries-lite.exe</span>.
</dd><dt class="description">
@@ -23858,93 +23809,93 @@ class="description">An flexible indexing application with multilingual support w
class="cmbx-10">A</span>
</p>
<div class="theindex"><span class="index-item">abbreviation styles (deprecated):<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">footnote-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30173" >1</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">footnote-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30165" >2</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">footnote-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30169" >3</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-desc-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29078" >4</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-desc-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29070" >5</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-desc-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29074" >6</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29104" >7</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29096" >8</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29100" >9</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">postfootnote-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30214" >10</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">postfootnote-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30206" >11</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">postfootnote-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30210" >12</a> <br /></span>
<span class="index-item">abbreviation styles:<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">footnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30160" >13</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">footnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30181" >14</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29090" >15</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29064" >16</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-em-noshort-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28092" >17</a>, <a
href="glossaries-extra-manual.html#dx1-29105" >18</a>, <a
href="glossaries-extra-manual.html#dx1-30029" >19</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-em-noshort-em-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29079" >20</a>, <a
href="glossaries-extra-manual.html#dx1-30075" >21</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-em-noshort-em-desc-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30074" >22</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-em-noshort-em-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28094" >23</a>, <a
href="glossaries-extra-manual.html#dx1-29110" >24</a>, <a
href="glossaries-extra-manual.html#dx1-30028" >25</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-em-short-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28060" >26</a>, <a
href="glossaries-extra-manual.html#dx1-28086" >27</a>, <a
href="glossaries-extra-manual.html#dx1-30018" >28</a>, <a
href="glossaries-extra-manual.html#dx1-31018" >29</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-em-short-em-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30071" >30</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-hyphen-long-hyphen</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30266" >31</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-hyphen-noshort-desc-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30255" >32</a>, <a
href="glossaries-extra-manual.html#dx1-30259" >33</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-hyphen-noshort-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28095" >34</a>, <a
href="glossaries-extra-manual.html#dx1-30258" >35</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-hyphen-postshort-hyphen</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28090" >36</a>, <a
href="glossaries-extra-manual.html#dx1-30254" >37</a>, <a
@@ -23952,21 +23903,21 @@ href="glossaries-extra-manual.html#dx1-30263" >38</a>, <a
href="glossaries-extra-manual.html#dx1-30269" >39</a>, <a
href="glossaries-extra-manual.html#dx1-30279" >40</a>, <a
href="glossaries-extra-manual.html#dx1-30281" >41</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-hyphen-postshort-hyphen-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30268" >42</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-hyphen-short-hyphen</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30246" >43</a>, <a
href="glossaries-extra-manual.html#dx1-30261" >44</a>, <a
href="glossaries-extra-manual.html#dx1-30264" >45</a>, <a
href="glossaries-extra-manual.html#dx1-30272" >46</a>, <a
href="glossaries-extra-manual.html#dx1-35058" >47</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-hyphen-short-hyphen-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30256" >48</a>, <a
href="glossaries-extra-manual.html#dx1-30260" >49</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14042" >50</a>, <a
href="glossaries-extra-manual.html#dx1-26002" >51</a>, <a
@@ -23977,7 +23928,7 @@ href="glossaries-extra-manual.html#dx1-29098" >55</a>, <a
href="glossaries-extra-manual.html#dx1-29102" >56</a>, <a
href="glossaries-extra-manual.html#dx1-29106" >57</a>, <a
href="glossaries-extra-manual.html#dx1-30049" >58</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-13040" >59</a>, <a
href="glossaries-extra-manual.html#dx1-14044" >60</a>, <a
@@ -23992,48 +23943,48 @@ href="glossaries-extra-manual.html#dx1-30052" >68</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-desc-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30051" >69</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29101" >70</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-em-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29075" >71</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30048" >72</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28085" >73</a>, <a
href="glossaries-extra-manual.html#dx1-29092" >74</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-sc-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29066" >75</a>, <a
href="glossaries-extra-manual.html#dx1-31041" >76</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29097" >77</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-noshort-sm-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29071" >78</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-only-short-only</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28074" >79</a>, <a
href="glossaries-extra-manual.html#dx1-30021" >80</a>, <a
href="glossaries-extra-manual.html#dx1-30025" >81</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-only-short-only-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30024" >82</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-postshort-user</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30239" >83</a>, <a
href="glossaries-extra-manual.html#dx1-30243" >84</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-postshort-user-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30242" >85</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-13047" >86</a>, <a
href="glossaries-extra-manual.html#dx1-14020" >87</a>, <a
@@ -24051,7 +24002,7 @@ href="glossaries-extra-manual.html#dx1-30252" >98</a>, <a
href="glossaries-extra-manual.html#dx1-31014" >99</a>, <a
href="glossaries-extra-manual.html#dx1-31017" >100</a>, <a
href="glossaries-extra-manual.html#dx1-31091" >101</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14028" >102</a>, <a
href="glossaries-extra-manual.html#dx1-14034" >103</a>, <a
@@ -24062,36 +24013,36 @@ href="glossaries-extra-manual.html#dx1-30069" >107</a>, <a
href="glossaries-extra-manual.html#dx1-30078" >108</a>, <a
href="glossaries-extra-manual.html#dx1-30085" >109</a>, <a
href="glossaries-extra-manual.html#dx1-31090" >110</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28055" >111</a>, <a
href="glossaries-extra-manual.html#dx1-28087" >112</a>, <a
href="glossaries-extra-manual.html#dx1-30015" >113</a>, <a
href="glossaries-extra-manual.html#dx1-30019" >114</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-em-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30068" >115</a>, <a
href="glossaries-extra-manual.html#dx1-30072" >116</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14016" >117</a>, <a
href="glossaries-extra-manual.html#dx1-28039" >118</a>, <a
href="glossaries-extra-manual.html#dx1-30009" >119</a>, <a
href="glossaries-extra-manual.html#dx1-30047" >120</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-sc-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14030" >121</a>, <a
href="glossaries-extra-manual.html#dx1-30062" >122</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14018" >123</a>, <a
href="glossaries-extra-manual.html#dx1-28049" >124</a>, <a
href="glossaries-extra-manual.html#dx1-30012" >125</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-sm-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14032" >126</a>, <a
href="glossaries-extra-manual.html#dx1-30065" >127</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-user</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28088" >128</a>, <a
href="glossaries-extra-manual.html#dx1-30008" >129</a>, <a
@@ -24102,84 +24053,84 @@ href="glossaries-extra-manual.html#dx1-30079" >133</a>, <a
href="glossaries-extra-manual.html#dx1-30080" >134</a>, <a
href="glossaries-extra-manual.html#dx1-30113" >135</a>, <a
href="glossaries-extra-manual.html#dx1-30241" >136</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-short-user-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30077" >137</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nolong-short</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29010" >138</a>, <a
href="glossaries-extra-manual.html#dx1-30090" >139</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nolong-short-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29031" >140</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nolong-short-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30089" >141</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nolong-short-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29017" >142</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nolong-short-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29024" >143</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">postfootnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-24006" >144</a>, <a
href="glossaries-extra-manual.html#dx1-30201" >145</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">postfootnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30221" >146</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29008" >147</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29040" >148</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29029" >149</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29055" >150</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-footnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28106" >151</a>, <a
href="glossaries-extra-manual.html#dx1-30170" >152</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-footnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28105" >153</a>, <a
href="glossaries-extra-manual.html#dx1-30189" >154</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28056" >155</a>, <a
href="glossaries-extra-manual.html#dx1-30106" >156</a>, <a
href="glossaries-extra-manual.html#dx1-30110" >157</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-long-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30133" >158</a>, <a
href="glossaries-extra-manual.html#dx1-30137" >159</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-long-em</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28061" >160</a>, <a
href="glossaries-extra-manual.html#dx1-30109" >161</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-long-em-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30136" >162</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-nolong</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29026" >163</a>, <a
href="glossaries-extra-manual.html#dx1-29030" >164</a>, <a
href="glossaries-extra-manual.html#dx1-29032" >165</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-nolong-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29052" >166</a>, <a
href="glossaries-extra-manual.html#dx1-29056" >167</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-postfootnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30211" >168</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-em-postfootnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30229" >169</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-footnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14046" >170</a>, <a
href="glossaries-extra-manual.html#dx1-24030" >171</a>, <a
@@ -24192,7 +24143,7 @@ href="glossaries-extra-manual.html#dx1-30171" >177</a>, <a
href="glossaries-extra-manual.html#dx1-30175" >178</a>, <a
href="glossaries-extra-manual.html#dx1-30193" >179</a>, <a
href="glossaries-extra-manual.html#dx1-31020" >180</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-footnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14052" >181</a>, <a
href="glossaries-extra-manual.html#dx1-30174" >182</a>, <a
@@ -24201,24 +24152,24 @@ href="glossaries-extra-manual.html#dx1-30184" >184</a>, <a
href="glossaries-extra-manual.html#dx1-30187" >185</a>, <a
href="glossaries-extra-manual.html#dx1-30190" >186</a>, <a
href="glossaries-extra-manual.html#dx1-30220" >187</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-hyphen-long-hyphen</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30271" >188</a>, <a
href="glossaries-extra-manual.html#dx1-30276" >189</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-hyphen-long-hyphen-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30275" >190</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-hyphen-postlong-hyphen</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30278" >191</a>, <a
href="glossaries-extra-manual.html#dx1-30284" >192</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-hyphen-postlong-hyphen-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30283" >193</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14022" >194</a>, <a
href="glossaries-extra-manual.html#dx1-24023" >195</a>, <a
@@ -24231,7 +24182,7 @@ href="glossaries-extra-manual.html#dx1-30104" >201</a>, <a
href="glossaries-extra-manual.html#dx1-30107" >202</a>, <a
href="glossaries-extra-manual.html#dx1-31088" >203</a>, <a
href="glossaries-extra-manual.html#dx1-31093" >204</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-long-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14036" >205</a>, <a
href="glossaries-extra-manual.html#dx1-28103" >206</a>, <a
@@ -24240,7 +24191,7 @@ href="glossaries-extra-manual.html#dx1-30128" >208</a>, <a
href="glossaries-extra-manual.html#dx1-30131" >209</a>, <a
href="glossaries-extra-manual.html#dx1-30134" >210</a>, <a
href="glossaries-extra-manual.html#dx1-30140" >211</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-long-user</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30038" >212</a>, <a
href="glossaries-extra-manual.html#dx1-30044" >213</a>, <a
@@ -24249,10 +24200,10 @@ href="glossaries-extra-manual.html#dx1-30112" >215</a>, <a
href="glossaries-extra-manual.html#dx1-30141" >216</a>, <a
href="glossaries-extra-manual.html#dx1-30142" >217</a>, <a
href="glossaries-extra-manual.html#dx1-30233" >218</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-long-user-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30139" >219</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-nolong</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-24021" >220</a>, <a
href="glossaries-extra-manual.html#dx1-24029" >221</a>, <a
@@ -24268,20 +24219,20 @@ href="glossaries-extra-manual.html#dx1-29034" >230</a>, <a
href="glossaries-extra-manual.html#dx1-29038" >231</a>, <a
href="glossaries-extra-manual.html#dx1-29043" >232</a>, <a
href="glossaries-extra-manual.html#dx1-30087" >233</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-nolong-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29033" >234</a>, <a
href="glossaries-extra-manual.html#dx1-29041" >235</a>, <a
href="glossaries-extra-manual.html#dx1-29048" >236</a>, <a
href="glossaries-extra-manual.html#dx1-29053" >237</a>, <a
href="glossaries-extra-manual.html#dx1-30119" >238</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-nolong-desc-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30118" >239</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-nolong-noreg</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30086" >240</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-postfootnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-9062" >241</a>, <a
href="glossaries-extra-manual.html#dx1-9067" >242</a>, <a
@@ -24291,97 +24242,97 @@ href="glossaries-extra-manual.html#dx1-30204" >245</a>, <a
href="glossaries-extra-manual.html#dx1-30208" >246</a>, <a
href="glossaries-extra-manual.html#dx1-30212" >247</a>, <a
href="glossaries-extra-manual.html#dx1-30216" >248</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-postfootnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30215" >249</a>, <a
href="glossaries-extra-manual.html#dx1-30222" >250</a>, <a
href="glossaries-extra-manual.html#dx1-30224" >251</a>, <a
href="glossaries-extra-manual.html#dx1-30227" >252</a>, <a
href="glossaries-extra-manual.html#dx1-30230" >253</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-postlong-user</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30232" >254</a>, <a
href="glossaries-extra-manual.html#dx1-30236" >255</a>, <a
href="glossaries-extra-manual.html#dx1-30240" >256</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-postlong-user-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30235" >257</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29015" >258</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29045" >259</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-footnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14048" >260</a>, <a
href="glossaries-extra-manual.html#dx1-30162" >261</a>, <a
href="glossaries-extra-manual.html#dx1-30166" >262</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-footnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14054" >263</a>, <a
href="glossaries-extra-manual.html#dx1-30183" >264</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14024" >265</a>, <a
href="glossaries-extra-manual.html#dx1-28040" >266</a>, <a
href="glossaries-extra-manual.html#dx1-30100" >267</a>, <a
href="glossaries-extra-manual.html#dx1-31092" >268</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-long-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14038" >269</a>, <a
href="glossaries-extra-manual.html#dx1-30127" >270</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-nolong</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29012" >271</a>, <a
href="glossaries-extra-manual.html#dx1-29016" >272</a>, <a
href="glossaries-extra-manual.html#dx1-29018" >273</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-nolong-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29042" >274</a>, <a
href="glossaries-extra-manual.html#dx1-29046" >275</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-postfootnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-28099" >276</a>, <a
href="glossaries-extra-manual.html#dx1-30203" >277</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sc-postfootnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30223" >278</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29022" >279</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29050" >280</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-footnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14050" >281</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-footnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14056" >282</a>, <a
href="glossaries-extra-manual.html#dx1-30186" >283</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14026" >284</a>, <a
href="glossaries-extra-manual.html#dx1-28050" >285</a>, <a
href="glossaries-extra-manual.html#dx1-30103" >286</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-long-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14040" >287</a>, <a
href="glossaries-extra-manual.html#dx1-30130" >288</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-nolong</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29019" >289</a>, <a
href="glossaries-extra-manual.html#dx1-29023" >290</a>, <a
href="glossaries-extra-manual.html#dx1-29025" >291</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-nolong-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-29047" >292</a>, <a
href="glossaries-extra-manual.html#dx1-29051" >293</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-postfootnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30207" >294</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short-sm-postfootnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30226" >295</a> <br /></span>
<span class="index-item"><span class="obeylines-h"><span class="verb"><span
@@ -24393,71 +24344,71 @@ class="cmtt-10">\abbrvpluralsuffix</span></span></span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-31043" ><span
class="cmti-10">297</span></a> <br /></span>
<span class="index-item">acronym styles (glossaries):<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">dua</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14041" >298</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">dua-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14043" >299</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">footnote</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14045" >300</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">footnote-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14051" >301</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">footnote-sc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14047" >302</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">footnote-sc-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14053" >303</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">footnote-sm</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14049" >304</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">footnote-sm-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14055" >305</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">long-sc-short</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14015" >306</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">long-sc-short-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14029" >307</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">long-short-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14027" >308</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">long-sm-short</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14017" >309</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">long-sm-short-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14031" >310</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">long-sp-short</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14019" >311</a>, <a
href="glossaries-extra-manual.html#dx1-14065" >312</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">long-sp-short-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14033" >313</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">sc-short-long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14023" >314</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">sc-short-long-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14037" >315</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">short-long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14021" >316</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">short-long-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14035" >317</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">sm-short-long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14025" >318</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">sm-short-long-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14039" >319</a> <br /></span>
<span class="index-item"><span
@@ -24602,21 +24553,21 @@ class="cmbx-10">444</span></a> <br /></span>
</p><p class="theindex"> <span
class="cmbx-10">C</span>
<span class="index-item">categories:<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">abbreviation</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-10004" >445</a>, <a
href="glossaries-extra-manual.html#dx1-24024" >446</a>, <a
href="glossaries-extra-manual.html#dx1-25007" >447</a>, <a
href="glossaries-extra-manual.html#dx1-35008" >448</a>, <a
href="glossaries-extra-manual.html#dx1-38015" >449</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">acronym</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17035" >450</a>, <a
href="glossaries-extra-manual.html#dx1-24022" >451</a>, <a
href="glossaries-extra-manual.html#dx1-25006" >452</a>, <a
href="glossaries-extra-manual.html#dx1-35009" >453</a>, <a
href="glossaries-extra-manual.html#dx1-35023" >454</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">general</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-9037" >455</a>, <a
href="glossaries-extra-manual.html#dx1-9066" >456</a>, <a
@@ -24626,36 +24577,36 @@ href="glossaries-extra-manual.html#dx1-35007" >459</a>, <a
href="glossaries-extra-manual.html#dx1-35022" >460</a>, <a
href="glossaries-extra-manual.html#dx1-35182" >461</a>, <a
href="glossaries-extra-manual.html#dx1-37040" >462</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">glossnamefont</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17004" >463</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">index</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-6030" >464</a>, <a
href="glossaries-extra-manual.html#dx1-35012" >465</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">number</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35018" >466</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">symbol</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-9045" >467</a>, <a
href="glossaries-extra-manual.html#dx1-35015" >468</a> <br /></span>
<span class="index-item">category attributes:<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">accessaposplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35138" >469</a>, <a
href="glossaries-extra-manual.html#dx1-35148" >470</a>, <a
href="glossaries-extra-manual.html#dx1-35158" >471</a>, <a
href="glossaries-extra-manual.html#dx1-35162" >472</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">accessinsertdots</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35137" >473</a>, <a
href="glossaries-extra-manual.html#dx1-35141" >474</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">accessnoshortplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35139" >475</a>, <a
href="glossaries-extra-manual.html#dx1-35159" >476</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">aposplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-12036" >477</a>, <a
href="glossaries-extra-manual.html#dx1-28047" >478</a>, <a
@@ -24665,14 +24616,14 @@ href="glossaries-extra-manual.html#dx1-35149" >481</a>, <a
href="glossaries-extra-manual.html#dx1-35153" >482</a>, <a
href="glossaries-extra-manual.html#dx1-35155" >483</a>, <a
href="glossaries-extra-manual.html#dx1-35157" >484</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">discardperiod</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-9032" >485</a>, <a
href="glossaries-extra-manual.html#dx1-35042" >486</a>, <a
href="glossaries-extra-manual.html#dx1-35049" >487</a>, <a
href="glossaries-extra-manual.html#dx1-35052" >488</a>, <a
href="glossaries-extra-manual.html#dx1-35070" >489</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">dualindex</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35118" >490</a>, <a
href="glossaries-extra-manual.html#dx1-39002" >491</a>, <a
@@ -24681,7 +24632,7 @@ href="glossaries-extra-manual.html#dx1-39031" >493</a>, <a
href="glossaries-extra-manual.html#dx1-39038" >494</a>, <a
href="glossaries-extra-manual.html#dx1-39041" >495</a>, <a
href="glossaries-extra-manual.html#dx1-58003" >496</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">entrycount</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-10003" >497</a>, <a
href="glossaries-extra-manual.html#dx1-35085" >498</a>, <a
@@ -24694,26 +24645,26 @@ href="glossaries-extra-manual.html#dx1-37024" >504</a>, <a
href="glossaries-extra-manual.html#dx1-37028" >505</a>, <a
href="glossaries-extra-manual.html#dx1-37029" >506</a>, <a
href="glossaries-extra-manual.html#dx1-37033" >507</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">externallocation</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7061" >508</a>, <a
href="glossaries-extra-manual.html#dx1-7065" >509</a>, <a
href="glossaries-extra-manual.html#dx1-35129" >510</a>, <a
href="glossaries-extra-manual.html#dx1-44003" >511</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">firstshortaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35169" >512</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">glossdesc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17005" >513</a>, <a
href="glossaries-extra-manual.html#dx1-35094" >514</a>, <a
href="glossaries-extra-manual.html#dx1-35104" >515</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">glossdescfont</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17006" >516</a>, <a
href="glossaries-extra-manual.html#dx1-35101" >517</a>, <a
href="glossaries-extra-manual.html#dx1-35113" >518</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">glossname</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17003" >519</a>, <a
href="glossaries-extra-manual.html#dx1-17021" >520</a>, <a
@@ -24721,58 +24672,58 @@ href="glossaries-extra-manual.html#dx1-35103" >521</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">glossnamefont</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17022" >522</a>, <a
href="glossaries-extra-manual.html#dx1-35109" >523</a>, <a
href="glossaries-extra-manual.html#dx1-35112" >524</a>, <a
href="glossaries-extra-manual.html#dx1-52011" >525</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">glosssymbolfont</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17008" >526</a>, <a
href="glossaries-extra-manual.html#dx1-35111" >527</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">headuc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-13059" >528</a>, <a
href="glossaries-extra-manual.html#dx1-34006" >529</a>, <a
href="glossaries-extra-manual.html#dx1-34008" >530</a>, <a
href="glossaries-extra-manual.html#dx1-35080" >531</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">hyperoutside</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7019" >532</a>, <a
href="glossaries-extra-manual.html#dx1-35116" >533</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">indexname</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17027" >534</a>, <a
href="glossaries-extra-manual.html#dx1-35106" >535</a>, <a
href="glossaries-extra-manual.html#dx1-39001" >536</a>, <a
href="glossaries-extra-manual.html#dx1-39013" >537</a>, <a
href="glossaries-extra-manual.html#dx1-58004" >538</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">indexonlyfirst</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7007" >539</a>, <a
href="glossaries-extra-manual.html#dx1-35037" >540</a>, <a
href="glossaries-extra-manual.html#dx1-39039" >541</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">insertdots</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-24013" >542</a>, <a
href="glossaries-extra-manual.html#dx1-35064" >543</a>, <a
href="glossaries-extra-manual.html#dx1-35066" >544</a>, <a
href="glossaries-extra-manual.html#dx1-35144" >545</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">linkcount</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35090" >546</a>, <a
href="glossaries-extra-manual.html#dx1-38003" >547</a>, <a
href="glossaries-extra-manual.html#dx1-38016" >548</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">linkcountmaster</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35092" >549</a>, <a
href="glossaries-extra-manual.html#dx1-38004" >550</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">markshortwords</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35061" >551</a>, <a
href="glossaries-extra-manual.html#dx1-35068" >552</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">markwords</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30247" >553</a>, <a
href="glossaries-extra-manual.html#dx1-30250" >554</a>, <a
@@ -24780,22 +24731,22 @@ href="glossaries-extra-manual.html#dx1-30253" >555</a>, <a
href="glossaries-extra-manual.html#dx1-31032" >556</a>, <a
href="glossaries-extra-manual.html#dx1-35054" >557</a>, <a
href="glossaries-extra-manual.html#dx1-35062" >558</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nameshortaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35163" >559</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nohyper</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35034" >560</a>, <a
href="glossaries-extra-manual.html#dx1-35183" >561</a>, <a
href="glossaries-extra-manual.html#dx1-35184" >562</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nohyperfirst</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-30148" >563</a>, <a
href="glossaries-extra-manual.html#dx1-31021" >564</a>, <a
href="glossaries-extra-manual.html#dx1-31023" >565</a>, <a
href="glossaries-extra-manual.html#dx1-35025" >566</a>, <a
href="glossaries-extra-manual.html#dx1-35032" >567</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">noshortplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-12037" >568</a>, <a
href="glossaries-extra-manual.html#dx1-24014" >569</a>, <a
@@ -24803,17 +24754,17 @@ href="glossaries-extra-manual.html#dx1-28048" >570</a>, <a
href="glossaries-extra-manual.html#dx1-35074" >571</a>, <a
href="glossaries-extra-manual.html#dx1-35075" >572</a>, <a
href="glossaries-extra-manual.html#dx1-35160" >573</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">pluraldiscardperiod</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35048" >574</a>, <a
href="glossaries-extra-manual.html#dx1-35053" >575</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">recordcount</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-48015" >576</a>, <a
href="glossaries-extra-manual.html#dx1-48017" >577</a>, <a
href="glossaries-extra-manual.html#dx1-48019" >578</a>, <a
href="glossaries-extra-manual.html#dx1-48021" >579</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">regular</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-9010" >580</a>, <a
href="glossaries-extra-manual.html#dx1-9019" >581</a>, <a
@@ -24847,43 +24798,43 @@ href="glossaries-extra-manual.html#dx1-35189" >608</a>, <a
href="glossaries-extra-manual.html#dx1-35190" >609</a>, <a
href="glossaries-extra-manual.html#dx1-35193" >610</a>, <a
href="glossaries-extra-manual.html#dx1-48031" >611</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">retainfirstuseperiod</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35050" >612</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">tagging</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-25002" >613</a>, <a
href="glossaries-extra-manual.html#dx1-25005" >614</a>, <a
href="glossaries-extra-manual.html#dx1-25008" >615</a>, <a
href="glossaries-extra-manual.html#dx1-35082" >616</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">targetcategory</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35127" >617</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">targetname</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35124" >618</a>, <a
href="glossaries-extra-manual.html#dx1-35126" >619</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">targeturl</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-15002" >620</a>, <a
href="glossaries-extra-manual.html#dx1-35122" >621</a>, <a
href="glossaries-extra-manual.html#dx1-35125" >622</a>, <a
href="glossaries-extra-manual.html#dx1-53006" >623</a>, <a
href="glossaries-extra-manual.html#dx1-58009" >624</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">textformat</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7020" >625</a>, <a
href="glossaries-extra-manual.html#dx1-7023" >626</a>, <a
href="glossaries-extra-manual.html#dx1-9028" >627</a>, <a
href="glossaries-extra-manual.html#dx1-11018" >628</a>, <a
href="glossaries-extra-manual.html#dx1-35115" >629</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">textshortaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35166" >630</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">unitcount</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-37034" >631</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">wrgloss</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7015" >632</a>, <a
href="glossaries-extra-manual.html#dx1-35039" >633</a> <br /></span>
@@ -25008,13 +24959,13 @@ class="cmbx-10">F</span>
class="cmss-10">fancyhdr </span>package&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-21049" >677</a> <br /></span>
<span class="index-item">file types<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">glg-abr</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4192" >678</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">glo-abr</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4194" >679</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmtt-10">gls-abr</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4193" >680</a> <br /></span>
<span class="index-item">first use&#x00A0;&#x00A0;<a
@@ -25200,11 +25151,11 @@ class="cmtt-10">\glossariesextrasetup</span></span></span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4255" ><span
class="cmti-10">825</span></a> <br /></span>
<span class="index-item">glossary styles:<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">altlist</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19023" >826</a>, <a
href="glossaries-extra-manual.html#dx1-19026" >827</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">alttree</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19057" >828</a>, <a
href="glossaries-extra-manual.html#dx1-19065" >829</a>, <a
@@ -25219,98 +25170,98 @@ href="glossaries-extra-manual.html#dx1-43042" >837</a>, <a
href="glossaries-extra-manual.html#dx1-58012" >838</a>, <a
href="glossaries-extra-manual.html#dx1-58013" >839</a>, <a
href="glossaries-extra-manual.html#dx1-58014" >840</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">bookindex</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-21002" >841</a>, <a
href="glossaries-extra-manual.html#dx1-21006" >842</a>, <a
href="glossaries-extra-manual.html#dx1-21036" >843</a>, <a
href="glossaries-extra-manual.html#dx1-21037" >844</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">index</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19045" >845</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">inline</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19006" >846</a>, <a
href="glossaries-extra-manual.html#dx1-19008" >847</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">list</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19018" >848</a>, <a
href="glossaries-extra-manual.html#dx1-19022" >849</a>, <a
href="glossaries-extra-manual.html#dx1-19025" >850</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">listdotted</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19024" >851</a>, <a
href="glossaries-extra-manual.html#dx1-19027" >852</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19012" >853</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-desc-name</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22066" >854</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-desc-sym-name</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22133" >855</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-loc-desc-name</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22075" >856</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-loc-desc-sym-name</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22141" >857</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-loc-sym-desc-name</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22125" >858</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-name-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22044" >859</a>, <a
href="glossaries-extra-manual.html#dx1-22058" >860</a>, <a
href="glossaries-extra-manual.html#dx1-22067" >861</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-name-desc-loc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22057" >862</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-name-desc-sym</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22083" >863</a>, <a
href="glossaries-extra-manual.html#dx1-22100" >864</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-name-desc-sym-loc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22091" >865</a>, <a
href="glossaries-extra-manual.html#dx1-22109" >866</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-name-sym-desc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22099" >867</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-name-sym-desc-loc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22108" >868</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long-sym-desc-name</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22117" >869</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long3col</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19004" >870</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">longragged-booktabs</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-22045" >871</a>, <a
href="glossaries-extra-manual.html#dx1-22048" >872</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">mcolindexgroup</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-21003" >873</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">topic</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-23006" >874</a>, <a
href="glossaries-extra-manual.html#dx1-23010" >875</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">topicmcols</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-23009" >876</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">tree</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19046" >877</a>, <a
href="glossaries-extra-manual.html#dx1-19055" >878</a>, <a
href="glossaries-extra-manual.html#dx1-23005" >879</a>, <a
href="glossaries-extra-manual.html#dx1-23007" >880</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">treenoname</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19051" >881</a>, <a
href="glossaries-extra-manual.html#dx1-19053" >882</a>, <a
@@ -25502,14 +25453,14 @@ href="glossaries-extra-manual.html#dx1-14066" ><span
class="cmti-10">937</span></a> <br /></span>
<span class="index-item"><span
class="cmtt-10">\glsadd </span>options<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">format</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7035" >938</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">theHvalue</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7047" >939</a>, <a
href="glossaries-extra-manual.html#dx1-7063" >940</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">thevalue</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7046" >941</a>, <a
href="glossaries-extra-manual.html#dx1-7048" >942</a>, <a
@@ -25898,29 +25849,29 @@ href="glossaries-extra-manual.html#dx1-31036" ><span
class="cmti-10">1039</span></a> <br /></span>
<span class="index-item"><span
class="cmtt-10">\glslink </span>options<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">counter</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4117" >1040</a>, <a
href="glossaries-extra-manual.html#dx1-4123" >1041</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">format</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7058" >1042</a>, <a
href="glossaries-extra-manual.html#dx1-39030" >1043</a>, <a
href="glossaries-extra-manual.html#dx1-39032" >1044</a>, <a
href="glossaries-extra-manual.html#dx1-48022" >1045</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">hyper</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-13055" >1046</a>, <a
href="glossaries-extra-manual.html#dx1-35028" >1047</a>, <a
href="glossaries-extra-manual.html#dx1-35036" >1048</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">hyper=false</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-34005" >1049</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">hyperoutside</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7018" >1050</a>, <a
href="glossaries-extra-manual.html#dx1-35117" >1051</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">noindex</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7003" >1052</a>, <a
href="glossaries-extra-manual.html#dx1-7008" >1053</a>, <a
@@ -25929,23 +25880,23 @@ href="glossaries-extra-manual.html#dx1-13056" >1055</a>, <a
href="glossaries-extra-manual.html#dx1-34004" >1056</a>, <a
href="glossaries-extra-manual.html#dx1-39042" >1057</a>, <a
href="glossaries-extra-manual.html#dx1-53009" >1058</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">prefix</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7025" >1059</a>, <a
href="glossaries-extra-manual.html#dx1-15010" >1060</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">textformat</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7022" >1061</a>, <a
href="glossaries-extra-manual.html#dx1-11017" >1062</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">theHvalue</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7028" >1063</a>, <a
href="glossaries-extra-manual.html#dx1-7050" >1064</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">thevalue</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7027" >1065</a>, <a
href="glossaries-extra-manual.html#dx1-7049" >1066</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">wrgloss</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7011" >1067</a>, <a
href="glossaries-extra-manual.html#dx1-7016" >1068</a>, <a
@@ -28107,10 +28058,10 @@ href="glossaries-extra-manual.html#dx1-24020" ><span
class="cmti-10">1662</span></a> <br /></span>
<span class="index-item"><span
class="cmtt-10">\newglossaryentry </span>options<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">access</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35164" >1663</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">alias</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-6008" >1664</a>, <a
href="glossaries-extra-manual.html#dx1-6012" >1665</a>, <a
@@ -28119,7 +28070,7 @@ href="glossaries-extra-manual.html#dx1-53001" >1667</a>, <a
href="glossaries-extra-manual.html#dx1-53004" >1668</a>, <a
href="glossaries-extra-manual.html#dx1-53018" >1669</a>, <a
href="glossaries-extra-manual.html#dx1-58010" >1670</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">category</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-6007" >1671</a>, <a
href="glossaries-extra-manual.html#dx1-7021" >1672</a>, <a
@@ -28127,10 +28078,10 @@ href="glossaries-extra-manual.html#dx1-24012" >1673</a>, <a
href="glossaries-extra-manual.html#dx1-24019" >1674</a>, <a
href="glossaries-extra-manual.html#dx1-35003" >1675</a>, <a
href="glossaries-extra-manual.html#dx1-35005" >1676</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">counter</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7044" >1677</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">description</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-6002" >1678</a>, <a
href="glossaries-extra-manual.html#dx1-28102" >1679</a>, <a
@@ -28158,7 +28109,7 @@ href="glossaries-extra-manual.html#dx1-42009" >1700</a>, <a
href="glossaries-extra-manual.html#dx1-57041" >1701</a>, <a
href="glossaries-extra-manual.html#dx1-57043" >1702</a>, <a
href="glossaries-extra-manual.html#dx1-6026" >1703</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">descriptionplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-6016" >1704</a>, <a
href="glossaries-extra-manual.html#dx1-6019" >1705</a>, <a
@@ -28166,7 +28117,7 @@ href="glossaries-extra-manual.html#dx1-6021" >1706</a>, <a
href="glossaries-extra-manual.html#dx1-57045" >1707</a>, <a
href="glossaries-extra-manual.html#dx1-57047" >1708</a>, <a
href="glossaries-extra-manual.html#dx1-6023" >1709</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">first</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-9013" >1710</a>, <a
href="glossaries-extra-manual.html#dx1-12014" >1711</a>, <a
@@ -28181,10 +28132,10 @@ href="glossaries-extra-manual.html#dx1-39026" >1719</a>, <a
href="glossaries-extra-manual.html#dx1-57025" >1720</a>, <a
href="glossaries-extra-manual.html#dx1-57027" >1721</a>, <a
href="glossaries-extra-manual.html#dx1-60017" >1722</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">firstaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35171" >1723</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">firstplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-9014" >1724</a>, <a
href="glossaries-extra-manual.html#dx1-12009" >1725</a>, <a
@@ -28196,27 +28147,27 @@ href="glossaries-extra-manual.html#dx1-31016" >1730</a>, <a
href="glossaries-extra-manual.html#dx1-57029" >1731</a>, <a
href="glossaries-extra-manual.html#dx1-57031" >1732</a>, <a
href="glossaries-extra-manual.html#dx1-60018" >1733</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">group</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-42011" >1734</a>, <a
href="glossaries-extra-manual.html#dx1-51008" >1735</a>, <a
href="glossaries-extra-manual.html#dx1-51010" >1736</a>, <a
href="glossaries-extra-manual.html#dx1-51012" >1737</a>, <a
href="glossaries-extra-manual.html#dx1-51014" >1738</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">location</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-21023" >1739</a>, <a
href="glossaries-extra-manual.html#dx1-43021" >1740</a>, <a
href="glossaries-extra-manual.html#dx1-45015" >1741</a>, <a
href="glossaries-extra-manual.html#dx1-51032" >1742</a>, <a
href="glossaries-extra-manual.html#dx1-51035" >1743</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">loclist</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-45014" >1744</a>, <a
href="glossaries-extra-manual.html#dx1-51033" >1745</a>, <a
href="glossaries-extra-manual.html#dx1-51037" >1746</a>, <a
href="glossaries-extra-manual.html#dx1-51039" >1747</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">long</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-12026" >1748</a>, <a
href="glossaries-extra-manual.html#dx1-12027" >1749</a>, <a
@@ -28227,7 +28178,7 @@ href="glossaries-extra-manual.html#dx1-39028" >1753</a>, <a
href="glossaries-extra-manual.html#dx1-57057" >1754</a>, <a
href="glossaries-extra-manual.html#dx1-57059" >1755</a>, <a
href="glossaries-extra-manual.html#dx1-6024" >1756</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">longplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-12010" >1757</a>, <a
href="glossaries-extra-manual.html#dx1-12025" >1758</a>, <a
@@ -28235,7 +28186,7 @@ href="glossaries-extra-manual.html#dx1-24034" >1759</a>, <a
href="glossaries-extra-manual.html#dx1-31030" >1760</a>, <a
href="glossaries-extra-manual.html#dx1-57061" >1761</a>, <a
href="glossaries-extra-manual.html#dx1-57063" >1762</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">name</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-8034" >1763</a>, <a
href="glossaries-extra-manual.html#dx1-8038" >1764</a>, <a
@@ -28294,16 +28245,16 @@ href="glossaries-extra-manual.html#dx1-58016" >1816</a>, <a
href="glossaries-extra-manual.html#dx1-58017" >1817</a>, <a
href="glossaries-extra-manual.html#dx1-58018" >1818</a>, <a
href="glossaries-extra-manual.html#dx1-58020" >1819</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nameshortaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35167" >1820</a>, <a
href="glossaries-extra-manual.html#dx1-35170" >1821</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">parent</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19085" >1822</a>, <a
href="glossaries-extra-manual.html#dx1-39025" >1823</a>, <a
href="glossaries-extra-manual.html#dx1-50015" >1824</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">plural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-9017" >1825</a>, <a
href="glossaries-extra-manual.html#dx1-12002" >1826</a>, <a
@@ -28318,10 +28269,10 @@ href="glossaries-extra-manual.html#dx1-31012" >1834</a>, <a
href="glossaries-extra-manual.html#dx1-50014" >1835</a>, <a
href="glossaries-extra-manual.html#dx1-57021" >1836</a>, <a
href="glossaries-extra-manual.html#dx1-57023" >1837</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">prefix</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-15009" >1838</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">see</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4057" >1839</a>, <a
href="glossaries-extra-manual.html#dx1-4060" >1840</a>, <a
@@ -28350,7 +28301,7 @@ href="glossaries-extra-manual.html#dx1-8075" >1862</a>, <a
href="glossaries-extra-manual.html#dx1-42008" >1863</a>, <a
href="glossaries-extra-manual.html#dx1-51017" >1864</a>, <a
href="glossaries-extra-manual.html#dx1-53003" >1865</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">seealso</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4058" >1866</a>, <a
href="glossaries-extra-manual.html#dx1-4061" >1867</a>, <a
@@ -28363,7 +28314,7 @@ href="glossaries-extra-manual.html#dx1-8072" >1873</a>, <a
href="glossaries-extra-manual.html#dx1-8074" >1874</a>, <a
href="glossaries-extra-manual.html#dx1-8078" >1875</a>, <a
href="glossaries-extra-manual.html#dx1-8085" >1876</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">short</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-8051" >1877</a>, <a
href="glossaries-extra-manual.html#dx1-9011" >1878</a>, <a
@@ -28381,14 +28332,14 @@ href="glossaries-extra-manual.html#dx1-35146" >1889</a>, <a
href="glossaries-extra-manual.html#dx1-57049" >1890</a>, <a
href="glossaries-extra-manual.html#dx1-57051" >1891</a>, <a
href="glossaries-extra-manual.html#dx1-6025" >1892</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">shortaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35133" >1893</a>, <a
href="glossaries-extra-manual.html#dx1-35145" >1894</a>, <a
href="glossaries-extra-manual.html#dx1-35147" >1895</a>, <a
href="glossaries-extra-manual.html#dx1-35151" >1896</a>, <a
href="glossaries-extra-manual.html#dx1-35154" >1897</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">shortplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-12011" >1898</a>, <a
href="glossaries-extra-manual.html#dx1-12028" >1899</a>, <a
@@ -28405,13 +28356,13 @@ href="glossaries-extra-manual.html#dx1-35073" >1909</a>, <a
href="glossaries-extra-manual.html#dx1-35078" >1910</a>, <a
href="glossaries-extra-manual.html#dx1-57053" >1911</a>, <a
href="glossaries-extra-manual.html#dx1-57055" >1912</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">shortpluralaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35150" >1913</a>, <a
href="glossaries-extra-manual.html#dx1-35152" >1914</a>, <a
href="glossaries-extra-manual.html#dx1-35156" >1915</a>, <a
href="glossaries-extra-manual.html#dx1-35161" >1916</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">sort</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4176" >1917</a>, <a
href="glossaries-extra-manual.html#dx1-4212" >1918</a>, <a
@@ -28436,7 +28387,7 @@ href="glossaries-extra-manual.html#dx1-39023" >1936</a>, <a
href="glossaries-extra-manual.html#dx1-39029" >1937</a>, <a
href="glossaries-extra-manual.html#dx1-40015" >1938</a>, <a
href="glossaries-extra-manual.html#dx1-52002" >1939</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">symbol</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17013" >1940</a>, <a
href="glossaries-extra-manual.html#dx1-17017" >1941</a>, <a
@@ -28444,14 +28395,14 @@ href="glossaries-extra-manual.html#dx1-50034" >1942</a>, <a
href="glossaries-extra-manual.html#dx1-57033" >1943</a>, <a
href="glossaries-extra-manual.html#dx1-57035" >1944</a>, <a
href="glossaries-extra-manual.html#dx1-6027" >1945</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">symbolaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17015" >1946</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">symbolplural</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-57037" >1947</a>, <a
href="glossaries-extra-manual.html#dx1-57039" >1948</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">text</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-8033" >1949</a>, <a
href="glossaries-extra-manual.html#dx1-8040" >1950</a>, <a
@@ -28468,16 +28419,16 @@ href="glossaries-extra-manual.html#dx1-34030" >1960</a>, <a
href="glossaries-extra-manual.html#dx1-50013" >1961</a>, <a
href="glossaries-extra-manual.html#dx1-57017" >1962</a>, <a
href="glossaries-extra-manual.html#dx1-57019" >1963</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">textaccess</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35168" >1964</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">type</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-14058" >1965</a>, <a
href="glossaries-extra-manual.html#dx1-35006" >1966</a>, <a
href="glossaries-extra-manual.html#dx1-46010" >1967</a>, <a
href="glossaries-extra-manual.html#dx1-52006" >1968</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">user1</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-17018" >1969</a>, <a
href="glossaries-extra-manual.html#dx1-28084" >1970</a>, <a
@@ -28525,14 +28476,14 @@ class="cmbx-10">2006</span></a> <br /></span>
</p><p class="theindex"> <span
class="cmbx-10">P</span>
<span class="index-item">package options:<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">abbreviations</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4191" >2007</a>, <a
href="glossaries-extra-manual.html#dx1-4203" >2008</a>, <a
href="glossaries-extra-manual.html#dx1-4204" >2009</a>, <a
href="glossaries-extra-manual.html#dx1-4256" >2010</a>, <a
href="glossaries-extra-manual.html#dx1-59002" >2011</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">accsupp</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4035" >2012</a>, <a
href="glossaries-extra-manual.html#dx1-4042" >2013</a>, <a
@@ -28541,161 +28492,161 @@ href="glossaries-extra-manual.html#dx1-35140" >2015</a>, <a
href="glossaries-extra-manual.html#dx1-35143" >2016</a>, <a
href="glossaries-extra-manual.html#dx1-52019" >2017</a>, <a
href="glossaries-extra-manual.html#dx1-57003" >2018</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">acronym</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4205" >2019</a>, <a
href="glossaries-extra-manual.html#dx1-4222" >2020</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">acronymlists</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4209" >2021</a>, <a
href="glossaries-extra-manual.html#dx1-24038" >2022</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">acronyms</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4221" >2023</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">automake</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-6040" >2024</a>, <a
href="glossaries-extra-manual.html#dx1-59021" >2025</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">autoseeindex</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4066" >2026</a>, <a
href="glossaries-extra-manual.html#dx1-4073" >2027</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">false</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4059" >2028</a>, <a
href="glossaries-extra-manual.html#dx1-4070" >2029</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">counter</span><br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">chapter</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4094" >2030</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">equation</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4097" >2031</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">section</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4095" >2032</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">wrglossary</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4130" >2033</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">debug</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4002" >2034</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">all</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4005" >2035</a>, <a
href="glossaries-extra-manual.html#dx1-4013" >2036</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">showtargets</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4003" >2037</a>, <a
href="glossaries-extra-manual.html#dx1-4014" >2038</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">showwrgloss</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4004" >2039</a>, <a
href="glossaries-extra-manual.html#dx1-4006" >2040</a>, <a
href="glossaries-extra-manual.html#dx1-4015" >2041</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4007" >2042</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">docdef</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4156" >2043</a>, <a
href="glossaries-extra-manual.html#dx1-4257" >2044</a>, <a
href="glossaries-extra-manual.html#dx1-4258" >2045</a>, <a
href="glossaries-extra-manual.html#dx1-6036" >2046</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">restricted</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4169" >2047</a>, <a
href="glossaries-extra-manual.html#dx1-4179" >2048</a>, <a
href="glossaries-extra-manual.html#dx1-4180" >2049</a>, <a
href="glossaries-extra-manual.html#dx1-4188" >2050</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4187" >2051</a>, <a
href="glossaries-extra-manual.html#dx1-4189" >2052</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">docdefs</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-51022" >2053</a>, <a
href="glossaries-extra-manual.html#dx1-54003" >2054</a>, <a
href="glossaries-extra-manual.html#dx1-54006" >2055</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4168" >2056</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">entrycounter</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-49002" >2057</a>, <a
href="glossaries-extra-manual.html#dx1-52007" >2058</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">equations</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4111" >2059</a>, <a
href="glossaries-extra-manual.html#dx1-7045" >2060</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4098" >2061</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">floats</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4118" >2062</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">hyperfirst</span><br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">false</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-35030" >2063</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">index</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4227" >2064</a>, <a
href="glossaries-extra-manual.html#dx1-6029" >2065</a>, <a
href="glossaries-extra-manual.html#dx1-35011" >2066</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">indexcounter</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4093" >2067</a>, <a
href="glossaries-extra-manual.html#dx1-4124" >2068</a>, <a
href="glossaries-extra-manual.html#dx1-4140" >2069</a>, <a
href="glossaries-extra-manual.html#dx1-43031" >2070</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">indexcrossrefs</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4056" >2071</a>, <a
href="glossaries-extra-manual.html#dx1-4062" >2072</a>, <a
href="glossaries-extra-manual.html#dx1-4071" >2073</a>, <a
href="glossaries-extra-manual.html#dx1-8011" >2074</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">false</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4065" >2075</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">indexonlyfirst</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-7004" >2076</a>, <a
href="glossaries-extra-manual.html#dx1-7006" >2077</a>, <a
href="glossaries-extra-manual.html#dx1-35038" >2078</a>, <a
href="glossaries-extra-manual.html#dx1-39040" >2079</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">makeindex</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-45016" >2080</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nogroupskip</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19014" >2081</a>, <a
href="glossaries-extra-manual.html#dx1-19031" >2082</a>, <a
href="glossaries-extra-manual.html#dx1-19033" >2083</a>, <a
href="glossaries-extra-manual.html#dx1-19042" >2084</a>, <a
href="glossaries-extra-manual.html#dx1-23008" >2085</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nomain</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3032" >2086</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nomissingglstext</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4190" >2087</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nonumberlist</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-8058" >2088</a>, <a
href="glossaries-extra-manual.html#dx1-18003" >2089</a>, <a
href="glossaries-extra-manual.html#dx1-18007" >2090</a>, <a
href="glossaries-extra-manual.html#dx1-22046" >2091</a>, <a
href="glossaries-extra-manual.html#dx1-60036" >2092</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nopostdot</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4022" >2093</a>, <a
href="glossaries-extra-manual.html#dx1-4024" >2094</a>, <a
href="glossaries-extra-manual.html#dx1-17039" >2095</a>, <a
href="glossaries-extra-manual.html#dx1-19009" >2096</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">false</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3004" >2097</a>, <a
href="glossaries-extra-manual.html#dx1-4017" >2098</a>, <a
@@ -28703,48 +28654,48 @@ href="glossaries-extra-manual.html#dx1-17033" >2099</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3003" >2100</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">noredefwarn</span><br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">false</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3009" >2101</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3006" >2102</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">notree</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19067" >2103</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">numbers</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4216" >2104</a>, <a
href="glossaries-extra-manual.html#dx1-4246" >2105</a>, <a
href="glossaries-extra-manual.html#dx1-35017" >2106</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">postdot</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3005" >2107</a>, <a
href="glossaries-extra-manual.html#dx1-4016" >2108</a>, <a
href="glossaries-extra-manual.html#dx1-4025" >2109</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">postpunc</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4018" >2110</a>, <a
href="glossaries-extra-manual.html#dx1-4023" >2111</a>, <a
href="glossaries-extra-manual.html#dx1-4028" >2112</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">comma</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4019" >2113</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">dot</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4020" >2114</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">none</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4021" >2115</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">prefix</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4033" >2116</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">record</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4064" >2117</a>, <a
href="glossaries-extra-manual.html#dx1-4074" >2118</a>, <a
@@ -28759,7 +28710,7 @@ href="glossaries-extra-manual.html#dx1-51011" >2126</a>, <a
href="glossaries-extra-manual.html#dx1-51015" >2127</a>, <a
href="glossaries-extra-manual.html#dx1-51044" >2128</a>, <a
href="glossaries-extra-manual.html#dx1-59008" >2129</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">alsoindex</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4009" >2130</a>, <a
href="glossaries-extra-manual.html#dx1-4109" >2131</a>, <a
@@ -28768,15 +28719,15 @@ href="glossaries-extra-manual.html#dx1-40013" >2133</a>, <a
href="glossaries-extra-manual.html#dx1-43005" >2134</a>, <a
href="glossaries-extra-manual.html#dx1-51045" >2135</a>, <a
href="glossaries-extra-manual.html#dx1-53008" >2136</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nameref</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-45001" >2137</a>, <a
href="glossaries-extra-manual.html#dx1-45010" >2138</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">off</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-6035" >2139</a>, <a
href="glossaries-extra-manual.html#dx1-53007" >2140</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">only</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4069" >2141</a>, <a
href="glossaries-extra-manual.html#dx1-4076" >2142</a>, <a
@@ -28789,45 +28740,45 @@ href="glossaries-extra-manual.html#dx1-43001" >2148</a>, <a
href="glossaries-extra-manual.html#dx1-51021" >2149</a>, <a
href="glossaries-extra-manual.html#dx1-53011" >2150</a>, <a
href="glossaries-extra-manual.html#dx1-53016" >2151</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">savenumberlist</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-43016" >2152</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">section</span><br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">chapter</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-21040" >2153</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">seeautonumberlist</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-8059" >2154</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">seenoindex</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-8016" >2155</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">ignore</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-8018" >2156</a>, <a
href="glossaries-extra-manual.html#dx1-51019" >2157</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">warn</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-51020" >2158</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">shortcuts</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4231" >2159</a>, <a
href="glossaries-extra-manual.html#dx1-4254" >2160</a>, <a
href="glossaries-extra-manual.html#dx1-14008" >2161</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">abbr</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4237" >2162</a>, <a
href="glossaries-extra-manual.html#dx1-27002" >2163</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">abbreviation</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-27005" >2164</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">abbreviations</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4236" >2165</a>, <a
href="glossaries-extra-manual.html#dx1-4250" >2166</a>, <a
href="glossaries-extra-manual.html#dx1-27001" >2167</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">ac</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4234" >2168</a>, <a
href="glossaries-extra-manual.html#dx1-4235" >2169</a>, <a
@@ -28836,38 +28787,38 @@ href="glossaries-extra-manual.html#dx1-14009" >2171</a>, <a
href="glossaries-extra-manual.html#dx1-27003" >2172</a>, <a
href="glossaries-extra-manual.html#dx1-27006" >2173</a>, <a
href="glossaries-extra-manual.html#dx1-37011" >2174</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">acro</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4233" >2175</a>, <a
href="glossaries-extra-manual.html#dx1-37014" >2176</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">acronyms</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4232" >2177</a>, <a
href="glossaries-extra-manual.html#dx1-37013" >2178</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">all</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4247" >2179</a>, <a
href="glossaries-extra-manual.html#dx1-37012" >2180</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">false</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4253" >2181</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">none</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4252" >2182</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">other</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4238" >2183</a>, <a
href="glossaries-extra-manual.html#dx1-4251" >2184</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4248" >2185</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">sort</span><br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">none</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4089" >2186</a>, <a
href="glossaries-extra-manual.html#dx1-52001" >2187</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">stylemods</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4045" >2188</a>, <a
href="glossaries-extra-manual.html#dx1-16002" >2189</a>, <a
@@ -28875,50 +28826,50 @@ href="glossaries-extra-manual.html#dx1-19003" >2190</a>, <a
href="glossaries-extra-manual.html#dx1-19005" >2191</a>, <a
href="glossaries-extra-manual.html#dx1-20001" >2192</a>, <a
href="glossaries-extra-manual.html#dx1-21004" >2193</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">all</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4048" >2194</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">default</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4047" >2195</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">subentrycounter</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-49003" >2196</a>, <a
href="glossaries-extra-manual.html#dx1-52008" >2197</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">symbols</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4210" >2198</a>, <a
href="glossaries-extra-manual.html#dx1-4243" >2199</a>, <a
href="glossaries-extra-manual.html#dx1-35014" >2200</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">toc</span><br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">false</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3002" >2201</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3001" >2202</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">translate</span><br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">babel</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3011" >2203</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">true</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-3013" >2204</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">undefaction</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4049" >2205</a>, <a
href="glossaries-extra-manual.html#dx1-6006" >2206</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">error</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4050" >2207</a>, <a
href="glossaries-extra-manual.html#dx1-4077" >2208</a>, <a
href="glossaries-extra-manual.html#dx1-11002" >2209</a> <br /></span>
-<span class="index-subsubitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subsubitem">&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">warn</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-4051" >2210</a>, <a
href="glossaries-extra-manual.html#dx1-4055" >2211</a>, <a
@@ -28929,7 +28880,7 @@ href="glossaries-extra-manual.html#dx1-11005" >2215</a>, <a
href="glossaries-extra-manual.html#dx1-40022" >2216</a>, <a
href="glossaries-extra-manual.html#dx1-50006" >2217</a>, <a
href="glossaries-extra-manual.html#dx1-50019" >2218</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">xindy</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-8080" >2219</a>, <a
href="glossaries-extra-manual.html#dx1-39004" >2220</a> <br /></span>
@@ -28955,28 +28906,28 @@ href="glossaries-extra-manual.html#dx1-4195" ><span
class="cmti-10">2230</span></a> <br /></span>
<span class="index-item"><span
class="cmtt-10">\printglossary </span>options<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">label</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-15011" >2231</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">nogroupskip</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-19015" >2232</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">prefix</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-15008" >2233</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">target</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-15006" >2234</a>, <a
href="glossaries-extra-manual.html#dx1-49009" >2235</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">targetnameprefix</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-15007" >2236</a> <br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">title</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-59006" >2237</a> <br /></span>
<span class="index-item"><span
class="cmtt-10">\printnoidxglossary </span>options<br /></span>
-<span class="index-subitem">&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
+<span class="index-subitem">&#x2002;&#x2002;&#x2002;&#x2002;<span
class="cmss-10">sort</span>&#x00A0;&#x00A0;<a
href="glossaries-extra-manual.html#dx1-51023" >2238</a> <br /></span>
<span class="index-item"><span class="obeylines-h"><span class="verb"><span
diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.pdf b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.pdf
index f2f6b85466..bcf8ea2a30 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.pdf
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
index 28bd4c59a5..d5676e39a4 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
@@ -225,13 +225,13 @@ styles (glossaries):>#1={\protect\ttfamily#1}|main}}
\DeleteShortVerb{\|}
\MakeShortVerb{"}
- \title{glossaries-extra.sty v1.42:
+ \title{glossaries-extra.sty v1.43:
an extension to the glossaries package}
\author{Nicola L.C. Talbot\\[10pt]
Dickimaw Books\\
\url{http://www.dickimaw-books.com/}}
- \date{2020-02-13}
+ \date{2020-02-28}
\maketitle
\begin{abstract}
diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx b/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx
index d16bcf9bae..faaf91f31d 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx
@@ -1,14 +1,15 @@
%\iffalse
% glossaries-extra.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})"
-% -section "chapter"
+% -doc "glossaries-extra-codedoc.tex"
% -macrocode ".*\.tex"
% -macrocode ".*\.bib"
-% -setambles ".*\.bib=>\nopreamble\nopostamble"
+% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})"
+% -author "Nicola Talbot"
% -comment ".*\.tex"
% -comment ".*\.bib"
-% -author "Nicola Talbot"
+% -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"
@@ -17,9 +18,8 @@
% -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"
% glossaries-extra
-% Created on 2020/2/13 22:19
+% Created on 2020/2/28 14:07
%\fi
%\iffalse
%<*package>
@@ -182,13 +182,13 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of
\raggedright
}
-\title{glossaries-extra.sty v1.42:
+\title{glossaries-extra.sty v1.43:
documented code}
\author{Nicola L.C. Talbot\\[10pt]
Dickimaw Books\\
\url{http://www.dickimaw-books.com/}}
-\date{2020-02-13}
+\date{2020-02-28}
\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/13 v1.42 (NLCT)]
+\ProvidesPackage{glossaries-extra}[2020/02/28 v1.43 (NLCT)]
% \end{macrocode}
% Requires \sty{xkeyval} to define package options.
% \begin{macrocode}
@@ -2423,9 +2423,11 @@ Dickimaw Books\\
%\changes{1.42}{2020-02-03}{added \cs{glslabel} and scope}
%Locally define \cs{glslabel} in case the helper command needs to access the
%label.
+%\changes{1.43}{2020-02-28}{changed \cs{def} to \cs{edef} to avoid
+%infinite recursion}
% \begin{macrocode}
{%
- \def\glslabel{#1}%
+ \edef\glslabel{#1}%
\glsdoifexistsordo{#1}%
{%
\ifglshasfield{\GlsXtrFmtField}{#1}%
@@ -25328,7 +25330,7 @@ defined}{}%
%automatically loaded by the record option.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-bib2gls}[2020/02/13 v1.42 (NLCT)]
+\ProvidesPackage{glossaries-extra-bib2gls}[2020/02/28 v1.43 (NLCT)]
% \end{macrocode}
%Provide convenient shortcut commands for predefined glossary types.
%\begin{macro}{\printunsrtacronyms}
@@ -28413,7 +28415,7 @@ defined}{}%
% First identify package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-stylemods}[2020/02/13 v1.42 (NLCT)]
+\ProvidesPackage{glossaries-extra-stylemods}[2020/02/28 v1.43 (NLCT)]
% \end{macrocode}
% Provide package options to automatically load required predefined
% styles. The simplest method is to just test for the existence of
@@ -30719,7 +30721,7 @@ defined}{}%
%\section{Package Initialisation and Options}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-bookindex}[2020/02/13 v1.42 (NLCT)]
+\ProvidesPackage{glossary-bookindex}[2020/02/28 v1.43 (NLCT)]
% \end{macrocode}
%Load required packages.
% \begin{macrocode}
@@ -31215,7 +31217,7 @@ defined}{}%
%Provides additional long styles.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-longextra}[2020/02/13 v1.42 (NLCT)]
+\ProvidesPackage{glossary-longextra}[2020/02/28 v1.43 (NLCT)]
% \end{macrocode}
%Load required packages.
% \begin{macrocode}
@@ -32644,7 +32646,7 @@ defined}{}%
%topic.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-topic}[2020/02/13 v1.42 (NLCT)]
+\ProvidesPackage{glossary-topic}[2020/02/28 v1.43 (NLCT)]
% \end{macrocode}
%Load required package.
% \begin{macrocode}
diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra.ins b/macros/latex/contrib/glossaries-extra/glossaries-extra.ins
index 15c23359bc..bacff85a3f 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra.ins
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra.ins
@@ -1,4 +1,4 @@
-% glossaries-extra.ins generated using makedtx version 1.2 2020/2/13 22:19
+% glossaries-extra.ins generated using makedtx version 1.2 2020/2/28 14:07
\input docstrip
\preamble
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf
index 46ac6633fb..0d5e28ab74 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdf
index 105622c5b3..7dc6f75d69 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdf
index 59d56201f1..91e10c0da3 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdf
index fde058b22a..2b970d09f1 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdf
index 834fd8a21c..74a702f89a 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-alias.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-alias.pdf
index 0e67a7e656..07e1c7067a 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-alias.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-alias.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdf
index 6af97621c1..78dc23a71f 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdf
index 05e98dd8fd..8f20ec37ca 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdf
index 7872159833..4d5a897506 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdf
index 2886317c20..6a8198598f 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdf
index a9a5d2ef07..79fafa75b2 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdf
index fe70ab034e..8d66626e15 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdf
index 101f2177b9..bffb593101 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdf
index 8d3b894677..d52ae88768 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdf
index f347c9d1ac..0013810733 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdf
index b98a44c348..ac04b75fa2 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-external.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-external.pdf
index 111ffbd425..391a9f40a3 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-external.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-external.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdf
index 6a80f79529..4baec182fb 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdf
index 635649c794..4d7a8986c4 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-header.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-header.pdf
index 989f2abff3..854fc08c48 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-header.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-header.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdf
index 661eb97698..c8f1b365c7 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdf
index 529b736db5..b06e8aa068 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdf
index 97f55c724a..3db76f29b1 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdf
index 2bb22efbc4..5180b2c0a1 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdf
index 38618c77ff..7528b6dfd5 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdf
index dc9949c10f..a8d09d23c0 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdf
index 58b22ff3ec..0633f150c7 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-nested.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-nested.pdf
index 129318d42f..c7daf6c3b8 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-nested.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-nested.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdf
index 66fef87fc1..7f6ba898bd 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdf
index dc37111458..a0d377ef51 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdf
index 2f84f3cfac..9a3e4e68fc 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdf
index 42de4b8284..05a391589b 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdf
index 69edc38f55..28b99f59a5 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-pages.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-pages.pdf
index f58924d327..916499b513 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-pages.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-pages.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdf
index eb72d3c9ca..e91b9234bd 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdf
index 37e3373e60..7519bb1fe7 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdf
index ccd41032a1..2cfe4e45c4 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdf
index 06c0982167..53e0484c8a 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-record.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-record.pdf
index 0aa072d73a..79938f2d40 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-record.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-record.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdf
index f2eee1be1d..268ad93647 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdf
index 118ce6594c..1abb85bfe4 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdf
index 95a34c9e53..02a1bd5202 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdf
index 5aa05dbffd..e58aac152a 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdf
index c5fba24811..9f15c6fa03 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-trans.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-trans.pdf
index 4a92c2ab8c..0da0a6fa2e 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-trans.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-trans.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-undef.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-undef.pdf
index 2bf1f97dd8..f1bca94f07 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-undef.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-undef.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdf
index 0c0dda6159..a3ce49dc0b 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdf
Binary files differ
diff --git a/macros/latex/contrib/glossaries-extra/samples/sample.pdf b/macros/latex/contrib/glossaries-extra/samples/sample.pdf
index 4ac0e58c85..093173f9ef 100644
--- a/macros/latex/contrib/glossaries-extra/samples/sample.pdf
+++ b/macros/latex/contrib/glossaries-extra/samples/sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 31d18ea42e..3b7adbbf92 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 05af9a1b73..5a8d655762 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -18,17 +18,6 @@
\usepackage{unicode-math}
-\newbox\ExampleOne
-
-\setbox\ExampleOne\hbox{%
-$\begin{NiceArray}{|*{4}{C|}}[hlines,first-row,first-col]
- & e & a & b & c \\
-e & e & a & b & c \\
-a & a & e & c & b \\
-b & b & c & e & a \\
-c & c & b & a & e
-\end{NiceArray}$}
-
\usepackage{arydshln}
\usepackage{verbatim}
@@ -53,6 +42,8 @@ c & c & b & a & e
\usepackage{footnote}
+\usepackage{booktabs}
+
\usepackage[hyperfootnotes = false]{hyperref}
\hypersetup
@@ -99,8 +90,9 @@ tableau.
Cette extension peut être utilisée avec |xelatex|, |lualatex| et |pdflatex| mais aussi avec le cheminement
classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). Deux ou trois compilations successives peuvent être
nécessaires. Cette extension nécessite et charge les extensions \pkg{expl3}, \pkg{l3keys2e}, \pkg{xparse},
-\pkg{array}, \pkg{amsmath} et \pkg{tikz}. Elle charge aussi la bibliothèque Tikz \pkg{fit}. L'utilisateur final
-n'a qu'à charger l'extension \pkg{nicematrix} avec l'instruction habituelle : |\usepackage{nicematrix}|.
+\pkg{array}, \pkg{amsmath} et \pkg{tikz}. Elle charge aussi la bibliothèque Tikz \pkg{fit}. L'utilisateur final n'a
+qu'à charger l'extension \pkg{nicematrix} avec l'instruction habituelle :
+|\usepackage{nicematrix}|.
@@ -224,12 +216,10 @@ doivent pas être employées. Voir p.~\pageref{NiceArray} la partie concernant |
\section{Les lignes en pointillés continues}
-
-
À l'intérieur des environnements de l'extension \pkg{nicematrix}, de nouvelles commandes sont définies : |\Ldots|,
-|\Cdots|, |\Vdots|, |\Ddots|, and |\Iddots|. Ces commandes sont conçues pour être utilisées à la place de |\dots|,
+|\Cdots|, |\Vdots|, |\Ddots|, et |\Iddots|. Ces commandes sont conçues pour être utilisées à la place de |\dots|,
|\cdots|, |\vdots|, |\ddots| et |\iddots|.\footnote{La commande |\iddots|, définie dans \pkg{nicematrix}, est une
- variante de |\ddots| avec les points allant vers le haut : \smash{$\iddots$}. Si \pkg{mathdots} est chargée, la
+ variante de |\ddots| avec les points allant vers le haut. Si \pkg{mathdots} est chargée, la
version de \pkg{mathdots} est utilisée. Elle correspond à la commande |\adots| de \pkg{unicode-math}.}
\newcounter{fniddots}
\setcounter{fniddots}{\thefootnote}
@@ -574,7 +564,7 @@ L'extension \pkg{nicematrix} crée un nœud Tikz pour chaque case du tableau con
tracer les lignes en pointillés entre les cases du tableau. Toutefois, l'utilisateur peut aussi utiliser
directement ces nœuds. On commence par donner un nom au tableau (avec l'option |name|). Cela étant fait, les nœuds
sont accessibles à travers les noms «\textsl{nom}-$i$-$j$» où \textsl{nom} est le nom donné au tableau et $i$ et
-$j$ les numéros de ligne et de colonne de la case considérée.
+$j$ les numéros de rangée et de colonne de la case considérée.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=11cm]
@@ -646,8 +636,8 @@ a & a & a
\medskip
Les noms des «nœuds larges» s'obtiennent en ajoutant le suffixe «|-large|» au nom des nœuds normaux. Dans l'exemple
suivant, on a surligné tous les «nœuds larges». Nous considérons que cet exemple se suffit à lui-même comme
-définition de ces nœuds.\footnote{Il n'y a pas de «nœuds larges» créés dans les lignes et colonnes extérieures
- (pour ces lignes et colonnes, voir p.~\pageref{exterior}).}
+définition de ces nœuds.\footnote{Il n'y a pas de «nœuds larges» créés dans les rangées et colonnes extérieures
+ (pour ces rangées et colonnes, voir p.~\pageref{exterior}).}
\[\begin{pNiceMatrix}[
create-large-nodes,
@@ -785,19 +775,118 @@ L'environnement |{NiceArray}| est similaire à l'environnement |{array}|. Comme
obligatoire est le préambule du tableau. Néanmoins, pour des raisons techniques, l'utilisateur doit utiliser les
lettres |L|, |C| et |R|\footnote{Les types de colonnes |L|, |C| et |R| sont définis localement à l'intérieur de
|{NiceArray}| avec la commande |\newcolumntype| de \pkg{array}. Cette définition masque une éventuelle définition
- précédente. En fait, les types de colonnes |w| and |W| sont également redéfinis.} au lieu de |l|, |c| et |r|.
+ précédente. En fait, les types de colonnes |w| et |W| sont également redéfinis.} au lieu de |l|, |c| et |r|.
Il est possible d'utiliser les constructions |w{...}{...}|, |W{...}{...}|, \verb+|+, |>{...}|, |<{...}|, |@{...}|,
|!{...}| et |*{n}{...}| mais les lettres |p|, |m| et |b| ne doivent pas être employées.\footnote{Dans une commande
|\multicolumn|, on doit également utiliser les lettres |L|, |C| et |R|.}
\medskip
-L'environnement |{NiceArray}| accepte les options classiques |t|, |c| et |b| de |{array}| mais aussi d'autres
-options définies par \pkg{nicematrix} (|renew-dots|, |columns-width|, etc.).
+En plus des options proposées pour |{pNiceMatrix}| et ses variantes, l'environnement |{NiceArray}| propose une
+option |baseline| qui prend en argument un entier qui indique le numéro de rangée dont la ligne de base servira de
+ligne de base pour l'environnement |{NiceArray}|.
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+$A =
+\begin{NiceArray}{CCCC}[hvlines,~emphase#baseline=2@]
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\
+\end{NiceArray}$
+\end{BVerbatim}
+%
+$A =
+\begin{NiceArray}{CCCC}[hvlines,baseline=2]
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\
+\end{NiceArray}$
+
+\smallskip
+L'option |hvlines| est présentée plus loin (cf. p. \pageref{hvlines}).
+
+\medskip
+L'option |baseline| peut aussi prendre les trois valeurs spéciales |t|, |c| et |b|. Ces trois lettres peuvent aussi
+être utilisées de manière absolue comme pour l'option de l'environnement |{array}| de \pkg{array}. La valeur
+initiale de |baseline| est~|c|.
+
+
+\medskip
+Dans l'exemple suivant, on utilise l'option |t| (synonyme de |baseline=t|) immédiatement après un |\item| de liste.
+On remarquera que la présence d'un |\hline| initial n'empêche pas l'alignement sur la ligne de base de la première
+rangée (avec |{array}| de {array}, il faut utiliser |\firsthline|\footnote{On peut aussi utiliser |\firsthline|
+ avec |{NiceArray}|.}).
+
+
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{enumerate}
+\item un item
+\smallskip
+\item \renewcommand{\arraystretch}{1.2}
+$\begin{NiceArray}[t]{LCCCCCC}
+\hline
+n & 0 & 1 & 2 & 3 & 4 & 5 \\
+u_n & 1 & 2 & 4 & 8 & 16 & 32
+\hline
+\end{NiceArray}$
+\end{enumerate}
+\end{BVerbatim}
+%
+\begin{minipage}{5cm}
+\begin{enumerate}
+\item un item
+\smallskip
+\item \renewcommand{\arraystretch}{1.2}
+$\begin{NiceArray}[t]{LCCCCCC}
+\hline
+n & 0 & 1 & 2 & 3 & 4 & 5 \\
+u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
+\hline
+\end{NiceArray}$
+\end{enumerate}
+\end{minipage}
+
+
+\medskip
+Il est également possible d'utiliser les outils de \pkg{booktabs}: |\toprule|,
+|\bottomrule| et |\midrule|.\par\nobreak
+
+\smallskip
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{enumerate}
+\item an item
+\smallskip
+\item
+$\begin{NiceArray}[t]{LCCCCCC}
+~emphase#\toprule@
+n & 0 & 1 & 2 & 3 & 4 & 5 \\
+~emphase#\midrule@
+u_n & 1 & 2 & 4 & 8 & 16 & 32
+~emphase#\bottomrule@
+\end{NiceArray}$
+\end{enumerate}
+\end{BVerbatim}
+\begin{minipage}{5cm}
+\begin{enumerate}
+\item an item
+\smallskip
+\item
+$\begin{NiceArray}[t]{LCCCCCC}
+\toprule
+n & 0 & 1 & 2 & 3 & 4 & 5 \\
+\midrule
+u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
+\bottomrule
+\end{NiceArray}$
+\end{enumerate}
+\end{minipage}
+
+
\vspace{1cm}
-Un exemple avec un système linéaire (on a besoin de |{NiceArray}| pour le trait vertical)
+L'utilisation de |{NiceArray}| permet de tracer des filets verticaux :\par\nobreak
\bigskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -817,7 +906,8 @@ a_1 & ? & \Cdots & ? & ? \\
\vspace{1cm}
Il existe également des variantes pour l'environnement |{NiceArray}| : |{pNiceArray}|, |{bNiceArray}|,
-|{BNiceArray}|, |{vNiceArray}| et |{VNiceArray}|.
+|{BNiceArray}|, |{vNiceArray}| et |{VNiceArray}|. La clé |baseline| n'est \emph{pas} disponible pour ces
+environnements.
Dans l'exemple suivant, on utilise un environnement |{pNiceArray}| (on n'utilise pas |{pNiceMatrix}| car on
@@ -846,19 +936,19 @@ a_{n-1,1} & \Cdots & a_{n-1,n}
En fait, l'environnement |{pNiceArray}| et ses variantes sont fondés sur un environnement plus général, appelé
|{NiceArrayWithDelims}|. Les deux premiers arguments obligatoires de cet environnement sont les délimiteurs gauche
et droit qui seront utilisés dans la construction de la matrice. Il est possible d'utiliser |{NiceArrayWithDelims}|
-si on a besoin de délimiteurs atypiques.
+si on a besoin de délimiteurs atypiques ou asymétriques.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=11cm]
$\begin{~emphase#NiceArrayWithDelims@}
- {\downarrow}{\downarrow}{CCC}
+ {\downarrow}{\uparrow}{CCC}[margin]
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{~emphase#NiceArrayWithDelims@}$
\end{BVerbatim}
$\begin{NiceArrayWithDelims}
- {\downarrow}{\downarrow}{CCC}
+ {\downarrow}{\uparrow}{CCC}[margin]
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
@@ -874,7 +964,7 @@ Les environnements de \pkg{nicematrix} permettent de composer des rangées et de
Si elle est présente, la première rangée est numérotée par $0$ (et non $1$). Il en est de même pour la première
colonne. Dans le cas général, on doit spécifier le numéro de la dernière rangée et de la dernière colonne comme
-valeurs des options |last-row| and |last-col| (si elles sont présentes).
+valeurs des options |last-row| et |last-col| (si elles sont présentes).
\begin{Verbatim}
$\begin{pNiceMatrix}[~emphase#first-row,last-row=5,first-col,last-col=5@]
@@ -902,8 +992,8 @@ Il y a plusieurs remarques à formuler.
\begin{itemize}[beginpenalty=10000]
\item Si on utilise un environnement avec préambule explicite (c'est-à-dire |{NiceArray}| ou l'une de ses
variantes), on ne doit pas mettre dans ce préambule de spécification de colonne pour les éventuelles première et
-dernière colonne : la première colonne sera automatiquement (et nécessairement) de type |R| et la dernière de type
-|L|.
+dernière colonne : ce sera automatiquement (et nécessairement) une colonne |R| pour la première colonne et une
+colonne |L| pour la dernière.
\item Si on utilise un environnement avec préambule explicite et une dernière colonne, on doit utiliser l'option
|last-col| \emph{sans} valeur. En effet le numéro de la dernière colonne est, dans ce cas, déduit du préambule (qui
@@ -1079,6 +1169,12 @@ $\begin{pNiceArray}{C|C:CVC}
\end{pNiceArray}$
\end{scope}
+\bigskip
+\emph{Remarque} : Quand l'extension \pkg{array} (sur laquelle s'appuie \pkg{nicematrix}) est chargée, les traits
+verticaux et horizontaux que l'on insère rendent le tableau plus large ou plus long d'une quantité égale à la
+largeur du trait\footnote{En fait, cela est vrai pour |\hline| et ``\verb+|+'' mais pas pour |\cline|.}. Avec
+\pkg{nicematrix}, les lignes en pointillés tracées par |\hdottedline| et ``|:|'' ont le même effet.
+
\section{La largeur des colonnes}
\label{width}
@@ -1176,8 +1272,10 @@ c & d
\bigskip
Mais il est aussi possible de fixer une zone dans laquelle toutes les matrices auront leurs colonnes de la même
largeur, égale à la largeur de la case la plus large de toutes les matrices de la zone. Cette construction utilise
-l'environnement |{NiceMatrixBlock}| avec l'option |auto-columns-width|.\footnote{Pour le moment, c'est le seul
- usage de l'environnement |{NiceMatrixBlock}| mais il pourrait y en avoir davantage dans le futur.}
+l'environnement |{NiceMatrixBlock}| avec l'option |auto-columns-width|\footnote{Pour le moment, c'est le seul
+ usage de l'environnement |{NiceMatrixBlock}| mais il pourrait y en avoir davantage dans le futur.}.
+L'environnement |{NiceMatrixBlock}| n'a pas de rapport direct avec la commande |\Block| présentée juste ci-dessous
+(cf.~p.~\pageref{Block}).
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
@@ -1206,6 +1304,8 @@ $\begin{pNiceMatrix}
\section{Les matrices par blocs}
+\label{Block}
+
Cette partie, qui introduit une commande |\Block|, n'a pas de rapport direct avec l'environnement
|{NiceMatrixBlock}| présenté dans la section précédente.
@@ -1216,8 +1316,12 @@ d'un rectangle de cases fusionnées.
La commande |\Block| doit être utilisée dans la case supérieure gauche du bloc avec deux arguments. Le premier
argument est la taille de ce bloc avec la syntaxe $i$-$j$ où $i$ est le nombre de rangées et $j$ le nombre de
colonnes du bloc. Le deuxième argument, est, sans surprise, le contenu du bloc (en mode mathématique). Un nœud Tikz
-correspondant à l'ensemble des cellules fusionnées est créé sous le nom «\textsl{nom}-$i$-$j$» où \textsl{nom} est
-le nom donné au tableau.
+correspondant à l'ensemble des cases fusionnées est créé sous le nom «$i$-$j$-block» où \textsl{nom} est le
+nom donné au tableau. Si on a demandé la création des nœuds |medium|, alors un nœud de ce type est aussi créé pour
+ce bloc avec un nom suffixé par |-medium|.
+
+\medskip
+Dans les exemples qui suivent, on utilise la commande |\arrayrulecolor| de \pkg{colortbl}.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
@@ -1281,6 +1385,43 @@ Pour des raisons techniques, il n'est pas possible d'écrire |\Block{|$i$|-|$j$|
\section{Fonctionnalités avancées}
+\subsection{La commande \textbackslash rotate}
+
+Utilisée au début d'une case, la commande |\rotate| (fournie par \pkg{nicematrix}) compose le contenu après une
+rotation de 90° dans le sens direct.
+
+Dans l'exemple suivant, on l'utilise dans le |code-for-first-row|.
+
+\bigskip
+
+\begin{BVerbatim}[baseline=c,boxwidth=12cm]
+\NiceMatrixOptions%
+ {code-for-first-row = \scriptstyle ~emphase#\rotate@ \text{image de },
+ code-for-last-col = \scriptstyle }
+$\begin{pNiceMatrix}[first-row,last-col=4]
+e_1 & e_2 & e_3 \\
+1 & 2 & 3 & e_1 \\
+4 & 5 & 6 & e_2 \\
+7 & 8 & 9 & e_3 \\
+\end{pNiceMatrix}$
+\end{BVerbatim}
+%
+\begin{scope}
+\NiceMatrixOptions%
+ {code-for-first-row = \scriptstyle\rotate \text{image de },
+ code-for-last-col = \scriptstyle }
+\begin{minipage}{3cm}
+$\begin{pNiceMatrix}[first-row,last-col=4]
+e_1 & e_2 & e_3 \\
+1 & 2 & 3 & e_1 \\
+4 & 5 & 6 & e_2 \\
+7 & 8 & 9 & e_3 \\
+\end{pNiceMatrix}$
+\end{minipage}
+\end{scope}
+
+
+
\subsection{L'option small}
Avec l'option |small|, les environnements de l'extension \pkg{nicematrix} sont composés d'une manière proche de ce
@@ -1365,8 +1506,8 @@ motif général. Ces commandes sont nommées |\pAutoNiceMatrix|, |\bAutoNiceMatr
|\VAutoNiceMatrix| et |\BAutoNiceMatrix|.
Chacune de ces commandes prend deux arguments obligatoires : le premier est la taille de la matrice, sous la forme
-$n$-$p$, où $n$ est le nombre de lignes et $p$ est le nombre de colonnes et le deuxième est le motif (c'est-à-dire
-simplement des tokens qui seront insérés dans chaque case de la matrice, exceptées celles des éventuelles lignes et
+$n$-$p$, où $n$ est le nombre de rangées et $p$ est le nombre de colonnes et le deuxième est le motif (c'est-à-dire
+simplement des tokens qui seront insérés dans chaque case de la matrice, exceptées celles des éventuelles rangées et
colonnes extérieures).
\medskip
@@ -1377,24 +1518,93 @@ $C = ~emphase#\pAutoNiceMatrix@{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$
$C = \pAutoNiceMatrix{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$
-\subsection{L'option hlines}
+\subsection{Les options hlines, vlines et hvlines}
+
+\label{hvlines}
-Dans les environnements de \pkg{nicematrix}, on peut bien entendu ajouter des filets horizontaux entre les lignes
-avec la commande~|\hline|. Par souci de commodité, l'extension \pkg{nicematrix} fournit l'option |hlines| qui impose
-directement que tous les filets horizontaux soient tracés (à l'exception, très naturelle, du filet avant
-l'éventuelle «première rangée» et après l'éventuelle «dernière rangée»).
+Dans les environnements de \pkg{nicematrix}, on peut bien entendu ajouter des filets horizontaux entre les rangées
+avec la commande~|\hline| et des filets verticaux avec le spécificateur ``\verb+|+'' dans le préambule de
+l'environnement. Par souci de commodité, l'extension \pkg{nicematrix} fournit aussi l'option |hlines| (resp.
+|vlines|) qui impose directement que tous les filets horizontaux (resp. verticaux) soient tracés (à l'exception,
+très naturelle, des filets extérieurs aux rangées et colonnes extérieures). L'option |lines| est la conjonction des
+options |hlines| et |vlines|.
\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
-$\begin{NiceArray}{|*{4}{C|}}[~emphase#hlines@,first-row,first-col]
+Dans l'exemple suivant, on utilise la commande |\arrayrulecolor| de \pkg{colortbl}.
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+\arrayrulecolor{cyan}
+$\begin{NiceArray}{CCCC}%
+ [~emphase#hvlines@,first-row,first-col]
& e & a & b & c \\
e & e & a & b & c \\
a & a & e & c & b \\
b & b & c & e & a \\
c & c & b & a & e
\end{NiceArray}$
+\arrayrulecolor{black}
\end{BVerbatim}
-\raisebox{-5mm}{\box\ExampleOne}
+%
+\arrayrulecolor{cyan}
+$\begin{NiceArray}{CCCC}[hvlines,first-row,first-col]
+ & e & a & b & c \\
+e & e & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e
+\end{NiceArray}$
+\arrayrulecolor{black}
+
+
+\bigskip
+Il y a néanmoins une différence entre l'utilisation de l'option |vlines| et du spécificateur ``\verb+|+'' dans le
+préambule de l'environnement : les filets tracés par |vlines| traversent les double-filets horizontaux tracés par
+|\hline\hline|.
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=11.5cm]
+$\begin{NiceArray}{CCCC}[vlines] \hline
+a & b & c & d \\ \hline \hline
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\ \hline
+\end{NiceArray}$
+\end{BVerbatim}
+%
+$\begin{NiceArray}{CCCC}[vlines]
+\hline
+a & b & c & d \\
+\hline \hline
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\
+\hline
+\end{NiceArray}$
+
+\bigskip
+Dans le cas d'un environnement avec délimiteurs (par exemple |{pNiceArray}| ou |pNiceMatrix|), l'option |vlines| ne
+trace pas de filets verticaux au niveau des deux délimiteurs (bien entendu).
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
+\setlength{\arrayrulewidth}{0.2pt}
+$\begin{pNiceMatrix}[vlines]
+1 & 2 & 3 & 4 & 5 & 6 \\
+1 & 2 & 3 & 4 & 5 & 6 \\
+1 & 2 & 3 & 4 & 5 & 6 \\
+\end{pNiceMatrix}$
+\end{BVerbatim}
+%
+\begin{scope}
+\setlength{\arrayrulewidth}{0.2pt}
+$\begin{pNiceMatrix}[vlines]
+1 & 2 & 3 & 4 & 5 & 6 \\
+1 & 2 & 3 & 4 & 5 & 6 \\
+1 & 2 & 3 & 4 & 5 & 6 \\
+\end{pNiceMatrix}$
+\end{scope}
+
+
+
\subsection{L'option light-syntax}
@@ -1470,8 +1680,8 @@ L'extension \pkg{nicematrix} fournit la commande |\OnlyMainNiceMatrix| qui est d
définitions de nouveaux types de colonnes. Son argument n'est exécuté que si on se place dans la partie principale
du tableau, c'est-à-dire que l'on n'est pas dans l'une des éventuelles rangées extérieures.
-Par exemple, si on souhaite définir un type de colonne |?| pour tracer un trait fort d'épaisseur 1~pt, on pourra
-écrire :
+Par exemple, si on souhaite définir un type de colonne |?| pour tracer un trait fort (noir) d'épaisseur 1~pt, on
+pourra écrire\footnote{La commande |\vrule| est une commande de TeX (et non de LaTeX).} :
\begin{Verbatim}
\newcolumntype{?}{!{\OnlyMainNiceMatrix{\vrule width 1 pt}}}
\end{Verbatim}
@@ -1513,7 +1723,7 @@ ne peuvent pas se croiser entre elles.\footnote{En revanche, les lignes créées
Cela signifie qu'une ligne en pointillés créée par l'une des ces commandes s'arrête automatiquement quand elle
arrive à une autre ligne pointillée déjà tracée par l'une de ces commandes. Par conséquent, l'ordre dans lequel les
lignes sont tracées a son importance pour le résultat final. Voici cet ordre (c'est à dessein qu'il a été choisi
-ainsi) : |\Hdotsfor|, |\Vdots|, |\Ddots|, |\Iddots|, |\Cdots| and |\Ldots|.
+ainsi) : |\Hdotsfor|, |\Vdots|, |\Ddots|, |\Iddots|, |\Cdots| et |\Ldots|.
De ce fait, on peut tracer la matrice suivante :
@@ -1550,8 +1760,8 @@ Les environnements créés par \pkg{nicematrix} sont numérotés par un compteur
complètement développable — et non d'un compteur).
Si l'environnement concerné a le numéro $n$, alors le nœud de la rangée~$i$ et de la colonne~$j$ a pour nom
-|nm-|$n$|-|$i$|-|$j$. Les noms des nœuds |medium| et |large| correspondants s'obtiennent suffixant par |-medium| et
-|-large|.
+|nm-|$n$|-|$i$|-|$j$. Les noms des nœuds |medium| et |large| correspondants s'obtiennent en suffixant par |-medium|
+et |-large|.
\subsection{Lignes diagonales}
@@ -1774,10 +1984,9 @@ obsolètes :
\end{itemize}
\medskip
-Depuis la version 3.8 de \pkg{nicematrix}, une erreur est levée dès qu'un de ces environnements est utilisé.
-Néanmoins, pour le moment, il reste possible de les utiliser si on charge l'extension \pkg{nicematrix} avec
-l'option |obsolete-environments|. Il faut toutefois avoir conscience que ces environnements seront sans doute
-supprimés dans une version future de \pkg{nicematrix}.
+Depuis la version 3.12 de \pkg{nicematrix}, on ne peut utiliser ces environnements que si on a chargé l'extension
+\pkg{nicematrix} avec l'option |obsolete-environments|. Il faut toutefois avoir conscience que ces environnements
+seront certainement supprimés dans une prochaine version de \pkg{nicematrix}.
@@ -2093,7 +2302,11 @@ a_{21} & a_{22} & a_{23} & a_{24} \\
a_{31} & a_{32} & a_{33} & a_{34} \\
a_{41} & a_{42} & a_{43} & a_{44}
\end{pNiceArray}\]
-
+%
+On remarquera que les traits que l'on vient de tracer sont dessinés \emph{après} la matrice sans modifier la
+position des composantes de celle-ci. En revanche, les traits tracés par |\hline| ou le spécificateur ``\verb+|+"''
+«écartent» les composantes de la matrice (quand l'extension \pkg{array} est chargée, ce qui est toujours le cas
+avec \pkg{nicematrix}).\footnote{En revanche les traits tracés par |\ncline| n'écartent pas les lignes de la matrice.}
\vspace{1cm}
@@ -2159,15 +2372,20 @@ les \emph{blend modes}. Néanmoins, le code suivant, dans le préambule du docum
\end{scope}
\vspace{1cm}
-On rappelle que dans le cas d'un ensemble de cellules fusionnées (avec la commande |\Block|), un nœud Tikz est créé
-pour l'ensemble des cellules avec pour nom $i$|-|$j$ où $i$ et $j$ sont les numéros de ligne et de colonne de
-la cellule en haut à gauche (où a été utilisée la commande |\Block|).
+On rappelle que dans le cas d'un ensemble de cases fusionnées (avec la commande |\Block|), un nœud Tikz est créé
+pour l'ensemble des cases avec pour nom $i$|-|$j$|-block| où $i$ et $j$ sont les numéros de ligne et de colonne de
+la case en haut à gauche (où a été utilisée la commande |\Block|). Si on a demandé la création des nœuds |medium|,
+alors un nœud de ce type est aussi créé pour ce bloc avec un nom suffixé par |-medium|.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=11.6cm]
$\begin{pNiceMatrix}%
- [margin,
- code-after = { \tikz \node [~emphase#highlight = (1-1)@] {} ; } ]
+ [
+ margin,
+ create-medium-nodes,
+ code-after =
+ { \tikz \node [~emphase#highlight = (1-1-block-medium)@] {} ; }
+ ]
\Block{3-3}<\Large>{A} & & & 0 \\
& \hspace*{1cm} & & \Vdots \\
& & & 0 \\
@@ -2175,8 +2393,12 @@ $\begin{pNiceMatrix}%
\end{pNiceMatrix}$
\end{BVerbatim}
$\begin{pNiceMatrix}%
- [margin,
- code-after = { \tikz \node [highlight = (1-1)] {} ; } ]
+ [
+ margin,
+ create-medium-nodes,
+ code-after =
+ { \tikz \node [highlight = (1-1-block-medium)] {} ; }
+ ]
\Block{3-3}<\Large>{A} & & & 0 \\
& \hspace*{1cm} & & \Vdots \\
& & & 0 \\
@@ -2431,5 +2653,11 @@ L_i & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} \\
\draw [color = gray] (A-3-3) to [bend left] (B-3-3) ;
\end{tikzpicture}
+\section*{Autre documentation}
+
+Le document |nicematrix.pdf| (fourni avec l'extension \pkg{nicematrix}) contient une traduction anglaise de la
+documentation ici présente, ainsi que le code source commenté et un historique des versions.
+
+
\end{document}
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index 2752f0dd6f..9e446e9d48 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{3.11}
-\def\myfiledate{2020/02/07}
+\def\myfileversion{3.12}
+\def\myfiledate{2020/02/28}
%
%
%<*batchfile>
@@ -55,16 +55,6 @@ version 2005/12/01 or later.
\usepackage{nicematrix}
\usepackage{siunitx}
-\newbox\ExampleOne
-
-\setbox\ExampleOne\hbox{$\begin{NiceArray}{|*{4}{C|}}[hlines,first-row,first-col]
- & e & a & b & c \\
-e & e & a & b & c \\
-a & a & e & c & b \\
-b & b & c & e & a \\
-c & c & b & a & e
-\end{NiceArray}$}
-
\NewDocumentEnvironment {scope} {} {} {}
\def\interitem{\vspace{7mm plus 2 mm minus 3mm}}
@@ -118,7 +108,7 @@ c & c & b & a & e
% three compilations may be necessary. This package requires and \textbf{loads}
% the packages \pkg{expl3}, \pkg{l3keys2e}, \pkg{xparse}, \pkg{array},
% \pkg{amsmath} and \pkg{tikz}. It also loads the Tikz library \pkg{fit}. The
-% final user only has to load the extension with |\usepackage{nicematrix}|.
+% final user only has to load the extension with |\usepackage{nicematrix}|.
%
%
% \medskip
@@ -240,10 +230,10 @@ c & c & b & a & e
% defined: |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, and |\Iddots|. These commands
% are intended to be used in place of |\dots|, |\cdots|, |\vdots|, |\ddots| and
% |\iddots|.\footnote{The command |\iddots|, defined in \pkg{nicematrix}, is a
-% variant of |\ddots| with dots going forward: \smash{$\iddots$}. If |mathdots|
-% is loaded, the version of |mathdots| is used. It corresponds to the command
-% |\adots| of \pkg{unicode-math}.}
-% \newcounter{fniddots}
+% variant of |\ddots| with dots going forward. If |mathdots| is loaded, the
+% version of |mathdots| is used. It corresponds to the command |\adots| of
+% \pkg{unicode-math}.}
+% \newcounter{fniddots}
% \setcounter{fniddots}{\thefootnote}
%
% \smallskip
@@ -590,7 +580,7 @@ c & c & b & a & e
%
% The distance between a node and the end of a dotted line is set by
% |dotted-lines-margin|. The initial value of this key is $0.3$~em (it's
-% recommended to use a unit dependant of the current font). For an example,
+% recommended to use a unit dependent of the current font). For an example,
% cf.~p.~\pageref{permutation}.
%
%
@@ -834,13 +824,109 @@ c & c & b & a & e
% the letters |L|, |C|, |R|.}
%
% \medskip
-% The environment |{NiceArray}| accepts the classical options |t|, |c| and |b|
-% of |{array}| but also other options defined by \pkg{nicematrix} (|renew-dots|,
-% |columns-width|, etc.).
+% The environment |{NiceArray}| accepts the options available for
+% |{pNiceMatrix}| and its variants but also a option |baseline| whose value is
+% an integer which indicates the number of the row whose baseline is used
+% as baseline for the environment |{NiceArray}|.
+%
+% \medskip
+% \begin{BVerbatim}[baseline=c,boxwidth=11cm]
+% $A =
+% \begin{NiceArray}{CCCC}[hvlines,~emphase#baseline=2@]
+% 1 & 2 & 3 & 4 \\
+% 1 & 2 & 3 & 4 \\
+% 1 & 2 & 3 & 4 \\
+% \end{NiceArray}$
+% \end{BVerbatim}
+% $A =
+% \begin{NiceArray}{CCCC}[hvlines,baseline=2]
+% 1 & 2 & 3 & 4 \\
+% 1 & 2 & 3 & 4 \\
+% 1 & 2 & 3 & 4 \\
+% \end{NiceArray}$
+%
+% \small
+% (The option |hvlines| is presented further: cf. p. \pageref{hvlines}.)
+%
+% \medskip
+% It's also possible to use the option |baseline| with one of the special values
+% |t|, |c| or |b|. These letters may also be used absolutely like the option of
+% the environment |{array}| of \pkg{array}. The initial value of |baseline| is~|c|.
+%
+%
+% \medskip
+% In the following example, we use the option |t| (equivalent to |baseline=t|)
+% immediately after an |\item| of list. One should remark that the presence of
+% a |\hline| at the beginning of the array doesn't prevent the alignment of the
+% baseline with the baseline of the first row (with |{array}| of \pkg{array},
+% one must use |\firsthline|\footnote{It's also possible to use |\firsthline|
+% with |{NiceArray}|.}).
+%
+% \smallskip
+% \begin{BVerbatim}[baseline=c,boxwidth=9cm]
+% \begin{enumerate}
+% \item an item
+% \smallskip
+% \item \renewcommand{\arraystretch}{1.2}
+% $\begin{NiceArray}~emphase#[t]@{LCCCCCC}
+% \hline
+% n & 0 & 1 & 2 & 3 & 4 & 5 \\
+% u_n & 1 & 2 & 4 & 8 & 16 & 32
+% \hline
+% \end{NiceArray}$
+% \end{enumerate}
+% \end{BVerbatim}
+% \begin{minipage}{5cm}
+% \begin{enumerate}
+% \item an item
+% \smallskip
+% \item \renewcommand{\arraystretch}{1.2}
+% $\begin{NiceArray}[t]{LCCCCCC}
+% \hline
+% n & 0 & 1 & 2 & 3 & 4 & 5 \\
+% u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
+% \hline
+% \end{NiceArray}$
+% \end{enumerate}
+% \end{minipage}
+%
+% \medskip
+% However, it's also possible to use the tools of \pkg{booktabs}: |\toprule|,
+% |\bottomrule| and |\midrule|.\par\nobreak
%
+% \smallskip
+% \begin{BVerbatim}[baseline=c,boxwidth=9cm]
+% \begin{enumerate}
+% \item an item
+% \smallskip
+% \item
+% $\begin{NiceArray}[t]{LCCCCCC}
+% ~emphase#\toprule@
+% n & 0 & 1 & 2 & 3 & 4 & 5 \\
+% ~emphase#\midrule@
+% u_n & 1 & 2 & 4 & 8 & 16 & 32
+% ~emphase#\bottomrule@
+% \end{NiceArray}$
+% \end{enumerate}
+% \end{BVerbatim}
+% \begin{minipage}{5cm}
+% \begin{enumerate}
+% \item an item
+% \smallskip
+% \item
+% $\begin{NiceArray}[t]{LCCCCCC}
+% \toprule
+% n & 0 & 1 & 2 & 3 & 4 & 5 \\
+% \midrule
+% u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
+% \bottomrule
+% \end{NiceArray}$
+% \end{enumerate}
+% \end{minipage}
+%
%
% \vspace{1cm}
-% An example with a linear system (we need |{NiceArray}| for the vertical rule):
+% With |{NiceArray}|, it's possible to draw vertical rules:\par\nobreak
%
% \bigskip
% \begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -861,7 +947,7 @@ c & c & b & a & e
% \bigskip
% In fact, there is also variants for the environment |{NiceArray}|:
% |{pNiceArray}|, |{bNiceArray}|, |{BNiceArray}|, |{vNiceArray}| and
-% |{VNiceArray}|.
+% |{VNiceArray}|. The key |baseline| is not available for these environments.
%
% In the following example, we use an environment |{pNiceArray}| (we don't use
% |{pNiceMatrix}| because we want to use the types |L| and |R|
@@ -889,19 +975,19 @@ c & c & b & a & e
% more general environment, called |{NiceArrayWithDelims}|. The first two
% mandatory arguments of this environment are the left and right delimiters used
% in the construction of the matrix. It's possible to use
-% |{NiceArrayWithDelims}| if we want to use atypical delimiters.
+% |{NiceArrayWithDelims}| if we want to use atypical or asymetrical delimiters.
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=11cm]
% $\begin{~emphase#NiceArrayWithDelims@}
-% {\downarrow}{\downarrow}{CCC}
+% {\downarrow}{\uparrow}{CCC}[margin]
% 1 & 2 & 3 \\
% 4 & 5 & 6 \\
% 7 & 8 & 9 \\
% \end{~emphase#NiceArrayWithDelims@}$
% \end{BVerbatim}
% $\begin{NiceArrayWithDelims}
-% {\downarrow}{\downarrow}{CCC}
+% {\downarrow}{\uparrow}{CCC}[margin]
% 1 & 2 & 3 \\
% 4 & 5 & 6 \\
% 7 & 8 & 9 \\
@@ -944,9 +1030,8 @@ c & c & b & a & e
% \begin{itemize}
% \item For the environments with an explicit preamble (i.e. |{NiceArray}| and
% its variants), no letter must be given in that preamble for the potential
-% first column and the potential last column: the first column will be
-% automatically (and necessarily) of type |R| and the last column will be
-% automatically of % type |L|.
+% first column and the potential last column: they will automatically (and
+% necessarily) be of type |R| for the first column and |L| for the last one.
% \item In an environment with an explicit preamble, the option |last-col| must
% be used \emph{without} value: the number of columns will be automatically
% computed from the preamble of the array.
@@ -1104,7 +1189,7 @@ c & c & b & a & e
% It's possible to change in \pkg{nicematrix} the letter used to specify a
% vertical dotted line with the option |letter-for-dotted-lines| available in
% |\NiceMatrixOptions|. For example, in this document, we have loaded the
-% extension \pkg{arydshln} which uses the letter ``:'' to specify a vertical
+% extension \pkg{arydshln} which uses the letter ``|:|'' to specify a vertical
% dashed line. Thus, by using |letter-for-dotted-lines|, we can use the
% vertical lines of both \pkg{arydshln} and \pkg{nicematrix}.
%
@@ -1126,6 +1211,16 @@ c & c & b & a & e
% \end{NiceArray}\right)$
% \end{scope}
%
+% \bigskip
+% \emph{Remark} : In the extension \pkg{array} (on which the extension
+% \pkg{nicematrix} relies), horizontal and vertical rules make the array larger
+% or wider by a quantity equal to the width of the rule\footnote{In fact, this
+% is true only for |\hline| and ``"|"'' but not for |\cline|.}. In
+% \pkg{nicematrix}, the dotted lines drawn |\hdottedline| and ``|:|'' do
+% likewise.
+%
+%
+%
% \section{The width of the columns}
% \label{width}
%
@@ -1225,9 +1320,11 @@ c & c & b & a & e
% But it's also possible to fix a zone where all the matrices will have their
% columns of the same width, equal to the widest cell of all the matrices. This
% construction uses the environment |{NiceMatrixBlock}| with the option
-% |auto-columns-width|.\footnote{At this time, this is the only usage of the
-% environment |{NiceMatrixBlock}| but it may have other usages in the future.}
-%
+% |auto-columns-width|\footnote{At this time, this is the only usage of the
+% environment |{NiceMatrixBlock}| but it may have other usages in the future.}.
+% The environment |{NiceMatrixBlock}| has no direct link with the command
+% |\Block| presented just below (cf.~p.~\pageref{Block}).
+%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
% ~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@
@@ -1255,6 +1352,7 @@ c & c & b & a & e
%
%
% \section{Block matrices}
+% \label{Block}
%
% This section has no direct link with the previous one where an environment
% |{NiceMatrixBlock}| was introduced.
@@ -1268,8 +1366,13 @@ c & c & b & a & e
% $i$\verb|-|$j$ where $i$ is the number of rows of the block and $j$ its number
% of columns. The second argument is the content of the block (composed in math
% mode). A Tikz node corresponding to the merged cells is created with the name
-% ``\textsl{name}-$i$-$j$'' where \textsl{name} is the name given to the array.
+% ``$i$-$j$-block''. If the user has required the creation of the ``medium
+% nodes'', a node of this type is also created with a name suffixed by
+% |-medium|.
%
+% \medskip
+% In the following examples, we use the command |\arrayrulecolor| of
+% \pkg{colortbl}.
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
@@ -1300,7 +1403,7 @@ c & c & b & a & e
% previous example. Since this element is composed in math mode, it's not
% possible to use directly a command like |\large|, |\Large| and |\LARGE|.
% That's why the command |\Block| provides an option between angle brackets to
-% specificy some TeX code which will be inserted before the beginning of the
+% specify some TeX code which will be inserted before the beginning of the
% math mode.
%
% \medskip
@@ -1334,6 +1437,41 @@ c & c & b & a & e
%
% \section{Advanced features}
%
+% \subsection{The command \textbackslash rotate}
+%
+% The package \pkg{nicematrix} provides a command |\rotate|. When used in the
+% beginning of a cell, this command composes the contents of the cell after a
+% rotation of 90° in the direct sens.
+%
+% In the following command, we use that command in the |code-for-first-row|.
+%
+%\bigskip
+%
+% \begin{BVerbatim}[baseline=c,boxwidth=12cm]
+% \NiceMatrixOptions%
+% {code-for-first-row = \scriptstyle ~emphase#\rotate@ \text{image of },
+% code-for-last-col = \scriptstyle }
+% $\begin{pNiceMatrix}[first-row,last-col=4]
+% e_1 & e_2 & e_3 \\
+% 1 & 2 & 3 & e_1 \\
+% 4 & 5 & 6 & e_2 \\
+% 7 & 8 & 9 & e_3 \\
+% \end{pNiceMatrix}$
+% \end{BVerbatim}
+% \begin{scope}
+% \NiceMatrixOptions%
+% {code-for-first-row = \scriptstyle\rotate \text{image of },
+% code-for-last-col = \scriptstyle }
+% \begin{minipage}{3cm}
+% $\begin{pNiceMatrix}[first-row,last-col=4]
+% e_1 & e_2 & e_3 \\
+% 1 & 2 & 3 & e_1 \\
+% 4 & 5 & 6 & e_2 \\
+% 7 & 8 & 9 & e_3 \\
+% \end{pNiceMatrix}$
+% \end{minipage}
+% \end{scope}
+%
% \subsection{The option small}
%
% With the option |small|, the environments of the extension \pkg{nicematrix}
@@ -1383,8 +1521,8 @@ c & c & b & a & e
%
% In the cells of the array, it's possible to use the LaTeX counters |iRow| and
% |jCol| which represent the number of the current row and the number of the
-% current col\footnote{We recall that the first row (if it exists) has the
-% number~$0$ and that the first col (if it exists) has also the number~$0$.}.
+% current column\footnote{We recall that the first row (if it exists) has the
+% number~$0$ and that the first column (if it exists) has also the number~$0$.}.
% Of course, the user must not change the value of these counters which are used
% internally by \pkg{nicematrix}.
%
@@ -1436,27 +1574,90 @@ c & c & b & a & e
%
% $C = \pAutoNiceMatrix{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$
%
-% \subsection{The option hlines}
+% \subsection{The options hlines, vlines and hvlines}
%
+% \label{hvlines}
% You can add horizontal rules between rows in the environments of
-% \pkg{nicematrix} with the usual command |\hline|. But, by convenience, the
-% extension \pkg{nicematrix} also provides the option |hlines|. With this
-% option, all the horizontal rules will be drawn (excepted, of course, the rule
-% before the potential ``first row'' and the rule after the potential ``last
-% row'').
+% \pkg{nicematrix} with the usual command |\hline| and you can use the specifier
+% ``"|"'' to add vertical rules. However, by convenience, the extension
+% \pkg{nicematrix} also provides the option |hlines| (resp. |vlines|) which will
+% draw all the horizontal (resp. vertical) rules (excepted, of course, the
+% exterior rules corresponding to the exterior rows and columns). The key
+% |hvlines| is an alias for the conjonction for the keys |hlines| et |vlines|.
+%
+% % \medskip
+% In the following example, we use the command |\arrayrulecolor| of
+% \pkg{colortbl}.
%
% \medskip
-% \begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
-% $\begin{NiceArray}{|*{4}{C|}}[~emphase#hlines@,first-row,first-col]
+% \begin{BVerbatim}[baseline=c,boxwidth=11cm]
+% \arrayrulecolor{cyan}
+% $\begin{NiceArray}{CCCC}%
+% [~emphase#hvlines@,first-row,first-col]
+% % & e & a & b & c \\
+% e & e & a & b & c \\
+% a & a & e & c & b \\
+% b & b & c & e & a \\
+% c & c & b & a & e
+% \end{NiceArray}$
+% \arrayrulecolor{black}
+% \end{BVerbatim}
+% \arrayrulecolor{cyan}
+% $\begin{NiceArray}{CCCC}[hvlines,first-row,first-col]
% & e & a & b & c \\
% e & e & a & b & c \\
% a & a & e & c & b \\
% b & b & c & e & a \\
% c & c & b & a & e
% \end{NiceArray}$
+% \arrayrulecolor{black}
+%
+% \bigskip
+% However, there is a difference between the key |vlines| and the use of
+% the specifier ``"|"'' in the preamble of the environment: the rules drawn by
+% |vlines| completely cross the double-rules drawn by |\hline\hline|.
+%
+% \medskip
+% \begin{BVerbatim}[baseline=c,boxwidth=11.5cm]
+% $\begin{NiceArray}{CCCC}[vlines] \hline
+% a & b & c & d \\ \hline \hline
+% 1 & 2 & 3 & 4 \\
+% 1 & 2 & 3 & 4 \\ \hline
+% \end{NiceArray}$
% \end{BVerbatim}
-% \raise-5mm\box\ExampleOne
-%
+% $\begin{NiceArray}{CCCC}[vlines]
+% \hline
+% a & b & c & d \\
+% \hline \hline
+% 1 & 2 & 3 & 4 \\
+% 1 & 2 & 3 & 4 \\
+% \hline
+% \end{NiceArray}$
+%
+% \bigskip
+% For the environments with delimiters (for example |{pNiceArray}| or
+% |{pNiceMatrix}|), the option |vlines| don't draw vertical rules on both sides,
+% where are the delimiters (fortunately).
+%
+% \medskip
+% \begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
+% \setlength{\arrayrulewidth}{0.2pt}
+% $\begin{pNiceMatrix}[vlines]
+% 1 & 2 & 3 & 4 & 5 & 6 \\
+% 1 & 2 & 3 & 4 & 5 & 6 \\
+% 1 & 2 & 3 & 4 & 5 & 6 \\
+% \end{pNiceMatrix}$
+% \end{BVerbatim}
+% \begin{scope}
+% \setlength{\arrayrulewidth}{0.2pt}
+% $\begin{pNiceMatrix}[vlines]
+% 1 & 2 & 3 & 4 & 5 & 6 \\
+% 1 & 2 & 3 & 4 & 5 & 6 \\
+% 1 & 2 & 3 & 4 & 5 & 6 \\
+% \end{pNiceMatrix}$
+% \end{scope}
+%
+%
% \subsection{The option light-syntax}
%
% The option |light-syntax|\footnote{This option is inspired by the extension
@@ -1494,7 +1695,7 @@ c & c & b & a & e
% It's possible to change the character used to mark the end of rows with the
% option |end-of-row|. As said before, the initial value is a semicolon.
%
-% \subsection{Utilisation of the column type S of siunitx}
+% \subsection{Use of the column type S of siunitx}
%
% If the package \pkg{siunitx} is loaded (before or after \pkg{nicematrix}),
% it's possible to use the |S| column type of \pkg{siunitx} in the environments
@@ -1538,7 +1739,8 @@ c & c & b & a & e
% not in an eventual exterior row.
%
% For example, one may wish to define a new column type |?| in order to draw a
-% thick rule of width 1~pt. The following definition will do the job:
+% (black) thick rule of width 1~pt. The following definition will do the
+% job\footnote{The command |\vrule| is a TeX (and not LaTeX) command.}:
%
% \begin{Verbatim}
% \newcolumntype{?}{!{\OnlyMainNiceMatrix{\vrule width 1 pt}}}
@@ -1859,11 +2061,10 @@ c & c & b & a & e
% |{VNiceArrayRC}|.
% \end{itemize}
%
-% Since the version 3.8, an error is raised when one of these environments is
-% used. It's still possible to use these environments by loading
+% Since the version 3.12, the only way to use these environments is loading
% \pkg{nicematrix} with the option |obsolete-environments|.
%
-% However, these environments will probably be completely deleted in a future
+% However, these environments will certainly be completely deleted in a future
% version of \pkg{nicematrix}.
%
% \section{Examples}
@@ -2185,6 +2386,14 @@ c & c & b & a & e
% a_{41} & a_{42} & a_{43} & a_{44}
% \end{pNiceArray}\]
%
+% We should remark that the rules we have drawn are drawn \emph{after} the
+% construction of the array and, hence, they don't spread the cells of the
+% array. We recall that, on the other side, the command |\hline| and the
+% specifier ``"|"'' spread the cells (when the package \pkg{array} is loaded
+% but, when the package \pkg{nicematrix} is loaded, \pkg{array} is always
+% loaded).\footnote{On the other side, the command |\cline| doesn't spread the
+% rows of the array.}
+%
%
% \vspace{1cm}
% The package \pkg{nicematrix} is constructed upon the environment |{array}|
@@ -2249,25 +2458,35 @@ c & c & b & a & e
% |\ExplSyntaxOff|
% \end{scope}
%
-% \vspace{1cm}
+% \vspace{1cm}
% We recall that, for a rectangle of merged cells (with the command |\Block|), a
-% Tikz node is created for the set of merged cells with the name $i$|-|$j$ where
-% $i$ and $j$ are the number of the row and the number of the column of the
-% upper left cell (where the command |\Block| has been issued).
+% Tikz node is created for the set of merged cells with the name
+% $i$|-|$j$-|block| where $i$ and $j$ are the number of the row and the number
+% of the column of the upper left cell (where the command |\Block| has been
+% issued). If the user has required the creation of the |medium| nodes, a node
+% of this type is also created with a name suffixed by |-medium|.
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=11.6cm]
% $\begin{pNiceMatrix}%
-% [margin,
-% code-after = { \tikz \node [~emphase#highlight = (1-1)@] {} ; } ]
+% [
+% margin,
+% create-medium-nodes,
+% code-after =
+% { \tikz \node [~emphase#highlight = (1-1-block-medium)@] {} ; }
+% ]
% \Block{3-3}<\Large>{A} & & & 0 \\
% & \hspace*{1cm} & & \Vdots \\
% & & & 0 \\
% 0 & \Cdots& 0 & 0
% \end{pNiceMatrix}$
% \end{BVerbatim}
-% $\begin{pNiceMatrix}[margin,
-% code-after = { \tikz \node [highlight = (1-1)] {} ; } ]
+% $\begin{pNiceMatrix}[
+% margin,
+% create-medium-nodes,
+% code-after =
+% { \tikz \node [highlight = (1-1-block-medium)] {} ; }
+% ]
% \Block{3-3}<\Large>{A} & & & 0 \\
% & \hspace*{1cm} & & \Vdots \\
% & & & 0 \\
@@ -2416,13 +2635,13 @@ c & c & b & a & e
% \end{pNiceArray}\]
%
%
-% \subsection{Direct utilisation of the Tikz nodes}
+% \subsection{Direct use of the Tikz nodes}
%
% In the following example, we illustrate the mathematical product of two
% matrices.
%
% \medskip
-% The utilisation of |{NiceMatrixBlock}| with the option |auto-columns-width|
+% The use of |{NiceMatrixBlock}| with the option |auto-columns-width|
% gives the same width for all the columns and, therefore, a perfect alignment
% of the two superposed matrices.
% \begin{Verbatim}
@@ -2550,8 +2769,14 @@ c & c & b & a & e
% |\halign|.
%
%
-% \subsection{Declaration of the package and extensions loaded}
+% \bigskip
+% \subsection*{Declaration of the package and extensions loaded}
+%
%
+% The prefix |nicematrix| has been registred for this extension.
+%
+% See: |http://mirrors.ctan.org/macros/latex/contrib/l3kernel/l3prefixes.pdf|
+%
%<@@=nicematrix>
%
% \bigskip
@@ -2563,7 +2788,7 @@ c & c & b & a & e
% \begin{macrocode}
\RequirePackage{tikz}
\usetikzlibrary{fit}
-\RequirePackage{expl3}[2019/07/01]
+\RequirePackage{expl3}[2020/02/08]
% \end{macrocode}
%
% We give the traditionnal declaration of a package written with |expl3|:
@@ -2576,10 +2801,28 @@ c & c & b & a & e
{Mathematical matrices with TikZ}
% \end{macrocode}
%
+%
+% \medskip
+% The version of 2020/02/08 of \pkg{expl3} has replaced |\l_keys_key_tl| by
+% |\l_keys_key_str|. We have immediately changed in this file. Now, you test the
+% existence of |\l_keys_key_str| in order to detect whether the version of LaTeX
+% used by the final user is up to date.
+% \begin{macrocode}
+\msg_new:nnn { nicematrix } { expl3~too~old }
+ {
+ Your~version~of~LaTeX~(especially~expl3)~is~too~old.~
+ You~can~go~on~but~you~will~probably~have~other~errors~
+ if~you~use~the~functionalities~of~nicematrix.
+ }
+\cs_if_exist:NF \l_keys_key_str
+ { \msg_error:nn { nicematrix } { expl3~too~old } }
+% \end{macrocode}
+%
+%
% \bigskip
-% We test if the class option |draft| has been used. In this case, we raise the
-% flag |\c_@@_draft_bool| because we won't draw the dotted lines if the option
-% |draft| is used.
+% We test the class option |draft|. In this case, we raise the flag
+% |\c_@@_draft_bool| because we won't draw the dotted lines if the option
+% |draft| is used.
% \begin{macrocode}
\bool_new:N \c_@@_draft_bool
\DeclareOption { draft } { \bool_set_true:N \c_@@_draft_bool }
@@ -2606,7 +2849,7 @@ c & c & b & a & e
\cs_new_protected:Npn \@@_error:nn { \msg_error:nnn { nicematrix } }
\cs_new_protected:Npn \@@_error:nnn { \msg_error:nnnn { nicematrix } }
\cs_new_protected:Npn \@@_fatal:n { \msg_fatal:nn { nicematrix } }
-\cs_new_protected:Npn \@@_fatal:nn { \msg_fatal:nn { nicematrix } }
+\cs_new_protected:Npn \@@_fatal:nn { \msg_fatal:nnn { nicematrix } }
\cs_new_protected:Npn \@@_msg_new:nn { \msg_new:nnn { nicematrix } }
\cs_new_protected:Npn \@@_msg_new:nnn { \msg_new:nnnn { nicematrix } }
% \end{macrocode}
@@ -2617,7 +2860,8 @@ c & c & b & a & e
% \end{macrocode}
%
%
-% \subsection{Technical definitions}
+% \bigskip
+% \subsection*{Technical definitions}
%
% We test whether the current class is \cls{revtex4-1} or \cls{revtex4-2}
% because these classes redefines |\array| (of \pkg{array}) in a way
@@ -2657,12 +2901,14 @@ c & c & b & a & e
{
\mathinner
{
- \mkern 1 mu
- \raise \p@ \hbox:n { . }
- \mkern 2 mu
- \raise 4 \p@ \hbox:n { . }
- \mkern 2 mu
- \raise 7 \p@ \vbox { \kern 7 pt \hbox:n { . } } \mkern 1 mu
+ \tex_mkern:D 1 mu
+ \box_move_up:nn { 1 pt } { \hbox:n { . } }
+ \tex_mkern:D 2 mu
+ \box_move_up:nn { 4 pt } { \hbox:n { . } }
+ \tex_mkern:D 2 mu
+ \box_move_up:nn { 7 pt }
+ { \vbox:n { \kern 7 pt \hbox:n { . } } }
+ \tex_mkern:D 1 mu
}
}
% \end{macrocode}
@@ -2756,10 +3002,10 @@ c & c & b & a & e
\bool_new:N \l_@@_impossible_line_bool
% \end{macrocode}
%
-%
+%
% \bigskip
% We have to know whether \pkg{colortbl} is loaded for the redefinition of
-% |\everycr| and for |\vline|.
+% |\everycr| and |\vline| and for the options |hlines| and |vlines|.
% \begin{macrocode}
\bool_new:N \c_@@_colortbl_loaded_bool
\AtBeginDocument
@@ -2773,6 +3019,14 @@ c & c & b & a & e
}
% \end{macrocode}
%
+% \bigskip
+% We have put a argument |w| (\emph{weird}) for the following function because
+% its argument should be a specifier of \pkg{pgf} point between rounded
+% brackets.
+% \begin{macrocode}
+\cs_set_protected:Npn \@@_extract_coords:w
+ { \tikz@parse@node \pgfutil@firstofone }
+% \end{macrocode}
%
% \bigskip
% The length |\l_@@_inter_dots_dim| is the distance between two dots for the
@@ -2795,20 +3049,40 @@ c & c & b & a & e
%
% \bigskip
% The length |\l_@@_radius_dim| is the radius of the dots for the dotted lines.
-% The default value is 0.34~pt but it will be changed if the option |small| is
-% used.
+% The default value is 0.53~pt but it will be changed if the option |small| is
+% used (to 0.37~pt).
% \begin{macrocode}
\dim_new:N \l_@@_radius_dim
\dim_set:Nn \l_@@_radius_dim { 0.53 pt }
% \end{macrocode}
%
% \bigskip
-% The name of the current environment or the current command (will be used only
-% in the error messages).
+% The name of the current environment or the current command (despite the name).
% \begin{macrocode}
-\str_new:N \g_@@_type_env_str
+\str_new:N \g_@@_name_env_str
% \end{macrocode}
-%
+%
+% The string |\g_@@_com_or_env_str| will contain the word \emph{command} or
+% \emph{environment} whether we are in a command of \pkg{nicematrix} or a an
+% environment of \pkg{nicematrix}. The default value is \emph{environment}.
+% \begin{macrocode}
+\str_new:N \g_@@_com_or_env_str
+\str_set:Nn \g_@@_com_or_env_str { environment }
+% \end{macrocode}
+%
+% The following control sequence will be able to reconstruct the full name of
+% the current command or environment (despite the name). This command must
+% \emph{not} be protected since it's used in error messages.
+% \begin{macrocode}
+\cs_new:Npn \@@_full_name_env:
+ {
+ \str_if_eq:VnTF \g_@@_com_or_env_str { command }
+ { command \space \c_backslash_str \g_@@_name_env_str }
+ { environment \space \{ \g_@@_name_env_str \} }
+ }
+% \end{macrocode}
+%
+% \bigskip
% \begin{macrocode}
\tl_new:N \g_@@_code_after_tl
% \end{macrocode}
@@ -2824,11 +3098,17 @@ c & c & b & a & e
% \end{macrocode}
%
% The TeX counters |\c@iRow| and |\c@jCol| will be created in the beginning of
-% the environment |{NiceArrayWithDelims}| (if they don't exist previously).
+% |{NiceArrayWithDelims}| (if they don't exist previously).
%
+% \begin{macrocode}
+\bool_new:N \g_@@_row_of_col_done_bool
+% \end{macrocode}
+%
+%
% \bigskip
-% \subsubsection{Variables for the exterior rows and columns}
+% \textbf{Variables for the exterior rows and columns}\par\nobreak
%
+% \medskip
% The keys for the exterior rows and columns are |first-row|, |first-col|,
% |last-row| and |last-col|. However, internally, these keys are not coded in a
% similar way.
@@ -2907,9 +3187,9 @@ c & c & b & a & e
% \end{itemize}
%
% \bigskip
-% \subsubsection{The column S of siunitx}
+% \textbf{The column S of siunitx}\par\nobreak
%
-%
+% \medskip
% We want to know whether the package \pkg{siunitx} is loaded and, if it is
% loaded, we redefine the |S| columns of \pkg{siunitx}.
% \begin{macrocode}
@@ -2965,7 +3245,7 @@ c & c & b & a & e
% when \pkg{siunitx} is loaded (and it may be loaded after \pkg{nicematrix})
% and, in fact, after the beginning of the document --- because some
% instructions of \pkg{siunitx} are executed in a |\AtBeginDocument|). That's
-% why this extraction will be done only at the first utilisation of an
+% why this extraction will be done only at the first use of an
% environment of \pkg{nicematrix} with the command |\@@_adapt_S_column:|.
% \begin{macrocode}
\cs_set_protected:Npn \@@_adapt_S_column:
@@ -2975,9 +3255,8 @@ c & c & b & a & e
% won't be known. That's why we test the existence of
% |\c_@@_siunitx_loaded_bool| and not its value.\footnote{Indeed,
% \pkg{nicematrix} may be used in the preamble of the LaTeX document. For
-% example, in this document, we compose a matrix in the box |\ExampleOne| before
-% loading \pkg{arydshln} (because \pkg{arydshln} is not totally compatible with
-% \pkg{nicematrix}).}
+% example, you can compose a matrix in a box before the loading of
+% \pkg{arydshln} (not totally compatible with \pkg{nicematrix}).}
% \begin{macrocode}
\bool_if:NT \c_@@_siunitx_loaded_bool
{
@@ -3036,7 +3315,7 @@ c & c & b & a & e
%
%
% \bigskip
-% \subsection{The options}
+% \subsection*{The options}
%
% The boolean |\l_@@_light_syntax_bool| corresponds to the option |light-syntax|.
% \begin{macrocode}
@@ -3044,15 +3323,15 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% The token list |\l_@@_pos_env_str| will contain one of the three values |t|,
+% The token list |\l_@@_baseline_str| will contain one of the three values |t|,
% |c| or |b| and will indicate the position of the environment as in the option
% of the environment |{array}|. For the environment |{pNiceMatrix}|,
% |{pNiceArray}| and their variants, the value will programmatically be fixed to
% |c|. For the environment |{NiceArray}|, however, the three values |t|, |c| and
% |b| are possible.
% \begin{macrocode}
-\str_new:N \l_@@_pos_env_str
-\str_set:Nn \l_@@_pos_env_str c
+\str_new:N \l_@@_baseline_str
+\str_set:Nn \l_@@_baseline_str c
% \end{macrocode}
%
% \bigskip
@@ -3073,9 +3352,11 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% The flag |\l_@@_hlines_bool| corresponds to the option |\hlines|.
+% The flag |\l_@@_hlines_bool| corresponds to the option |\hlines| and the flag
+% |\l_@@_vlines_bool| to the option |\vlines|.
% \begin{macrocode}
\bool_new:N \l_@@_hlines_bool
+\bool_new:N \l_@@_vlines_bool
% \end{macrocode}
%
% \bigskip
@@ -3117,11 +3398,17 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% The dimensions |\l_@@_left_margin_dim| and |\l_@@_right_margin_dim| correspond
-% to the options |left-margin| and |right-margin|.
+% The dimension |\l_@@_left_margin_dim| correspondto the option |left-margin|
+% (idem for the right margin).
% \begin{macrocode}
\dim_new:N \l_@@_left_margin_dim
\dim_new:N \l_@@_right_margin_dim
+% \end{macrocode}
+%
+% \bigskip
+% The following dimensions will be used internally to compute the width of the
+% potential ``first column'' and ``last column''.
+% \begin{macrocode}
\dim_new:N \g_@@_width_last_col_dim
\dim_new:N \g_@@_width_first_col_dim
% \end{macrocode}
@@ -3144,6 +3431,20 @@ c & c & b & a & e
\tl_set:Nn \l_@@_end_of_row_tl { ; }
% \end{macrocode}
%
+% \medskip
+% Sometimes, we want to have several arrays vertically juxtaposed in order to
+% have an alignment of the columns of these arrays. To acheive this goal, one
+% may wish to use the same width for all the columns (for example with the
+% option |columns-width| or the option |auto-columns-width| of the environment
+% |{NiceMatrixBlock}|). However, even if we use the same type of delimiters, the
+% width of the delimiters may be different from an array to another because the
+% width of the delimiter is fonction of its size. That's why we create an option
+% called |max-delimiter-width| which will give to the delimiters the width of
+% a delimiter (of the same type) of big size. The following boolean corresponds
+% to this option.
+% \begin{macrocode}
+\bool_new:N \l_@@_max_delimiter_width_bool
+% \end{macrocode}
%
% \bigskip
% First, we define a set of keys ``|NiceMatrix / Global|'' which will be used
@@ -3151,6 +3452,7 @@ c & c & b & a & e
% \begin{macrocode}
\keys_define:nn { NiceMatrix / Global }
{
+ max-delimiter-width .bool_set:N = \l_@@_max_delimiter_width_bool ,
dotted-lines-margin .dim_set:N = \l_@@_dotted_lines_margin_dim ,
dotted-lines-margin .value_required:n = true ,
light-syntax .bool_set:N = \l_@@_light_syntax_bool ,
@@ -3167,6 +3469,8 @@ c & c & b & a & e
code-for-last-row .value_required:n = true ,
small .bool_set:N = \l_@@_small_bool ,
hlines .bool_set:N = \l_@@_hlines_bool ,
+ vlines .bool_set:N = \l_@@_vlines_bool ,
+ hvlines .meta:n = { hlines , vlines } ,
parallelize-diags .bool_set:N = \l_@@_parallelize_diags_bool ,
% \end{macrocode}
%
@@ -3213,13 +3517,14 @@ c & c & b & a & e
{ \dim_set:Nn \l_@@_columns_width_dim { #1 } } ,
columns-width .value_required:n = true ,
name .code:n =
- \unless \ifmeasuring@
- \str_set:Nn \l_tmpa_str { #1 }
- \seq_if_in:NVTF \g_@@_names_seq \l_tmpa_str
- { \@@_error:nn { Duplicate~name } { #1 } }
- { \seq_gput_left:NV \g_@@_names_seq \l_tmpa_str }
- \str_set_eq:NN \l_@@_name_str \l_tmpa_str
- \fi ,
+ \legacy_if:nF { measuring@ }
+ {
+ \str_set:Nn \l_tmpa_str { #1 }
+ \seq_if_in:NVTF \g_@@_names_seq \l_tmpa_str
+ { \@@_error:nn { Duplicate~name } { #1 } }
+ { \seq_gput_left:NV \g_@@_names_seq \l_tmpa_str }
+ \str_set_eq:NN \l_@@_name_str \l_tmpa_str
+ } ,
name .value_required:n = true ,
code-after .tl_gset:N = \g_@@_code_after_tl ,
code-after .value_required:n = true ,
@@ -3275,10 +3580,8 @@ c & c & b & a & e
% \begin{macrocode}
renew-matrix .code:n = \@@_renew_matrix: ,
renew-matrix .value_forbidden:n = true ,
- RenewMatrix .code:n = \@@_error:n { Option~RenewMatrix~suppressed } ,
transparent .meta:n = { renew-dots , renew-matrix } ,
transparent .value_forbidden:n = true,
- Transparent .code:n = \@@_error:n { Option~Transparent~suppressed } ,
% \end{macrocode}
%
%
@@ -3321,7 +3624,7 @@ c & c & b & a & e
% \begin{macrocode}
letter-for-dotted-lines .code:n =
{
- \int_compare:nTF { \tl_count:n { #1 } = \c_one_int }
+ \int_compare:nTF { \tl_count:n { #1 } = 1 }
{ \str_set:Nx \l_@@_letter_for_dotted_lines_str { #1 } }
{ \@@_error:n { Bad~value~for~letter~for~dotted~lines } }
} ,
@@ -3378,9 +3681,11 @@ c & c & b & a & e
% The options |c|, |t| and |b| of the environment |{NiceArray}| have the same
% meaning as the option of the classical environment |{array}|.
% \begin{macrocode}
- c .code:n = \str_set:Nn \l_@@_pos_env_str c ,
- t .code:n = \str_set:Nn \l_@@_pos_env_str t ,
- b .code:n = \str_set:Nn \l_@@_pos_env_str b ,
+ c .code:n = \str_set:Nn \l_@@_baseline_str c ,
+ t .code:n = \str_set:Nn \l_@@_baseline_str t ,
+ b .code:n = \str_set:Nn \l_@@_baseline_str b ,
+ baseline .tl_set:N = \l_@@_baseline_str ,
+ baseline .value_required:n = true ,
% \end{macrocode}
%
% In the environments |{NiceArray}| and its variants, the option |last-col| must
@@ -3411,7 +3716,8 @@ c & c & b & a & e
% \end{macrocode}
%
%
-% \subsection{Important code used by \{NiceArrayWithDelims\} }
+% \bigskip
+% \subsection*{Important code used by \{NiceArrayWithDelims\} }
%
% The pseudo-environment |\@@_Cell:|--|\@@_end_Cell:| will be used to format the
% cells of the array. In the code, the affectations are global because this
@@ -3419,7 +3725,7 @@ c & c & b & a & e
% environment |{array}|).
%
% \begin{macrocode}
-\cs_new_protected:Nn \@@_Cell:
+\cs_new_protected:Npn \@@_Cell:
{
% \end{macrocode}
% We increment |\c@jCol|, which is the counter of the columns.
@@ -3430,29 +3736,30 @@ c & c & b & a & e
% the |\everycr| because some packages, like \pkg{arydshln}, create special rows
% in the |\halign| that we don't want to take into account.
% \begin{macrocode}
- \int_compare:nNnT \c@jCol = \c_one_int
+ \int_compare:nNnT \c@jCol = 1
{
- \int_compare:nNnT \l_@@_first_col_int = \c_one_int
+ \int_compare:nNnT \l_@@_first_col_int = 1
\@@_begin_of_row:
}
\int_gset:Nn \g_@@_col_total_int
{ \int_max:nn \g_@@_col_total_int \c@jCol }
% \end{macrocode}
-% The content of the cell is composed in the box |\l_tmpa_box| because we want
+% The content of the cell is composed in the box |\l_@@_cell_box| because we want
% to compute some dimensions of the box. The |\hbox_set_end:| corresponding to
% this |\hbox_set:Nw| will be in the |\@@_end_Cell:| (and the
% |\c_math_toggle_token| also).
% \begin{macrocode}
- \hbox_set:Nw \l_tmpa_box
+ \hbox_set:Nw \l_@@_cell_box
\c_math_toggle_token
\bool_if:NT \l_@@_small_bool \scriptstyle
% \end{macrocode}
%
% We will call \emph{corners} of the matrix the cases which are at the
% intersection of the exterior rows and exterior columns (of course, the four
-% corners doesn't always exist simultaneously). The codes
-% |\l_@@_code_for_first_row_tl| and \emph{al} don't apply in the corners of the
-% matrix.
+% corners doesn't always exist simultaneously).
+%
+% The codes |\l_@@_code_for_first_row_tl| and \emph{al} don't apply in the
+% corners of the matrix.
% \begin{macrocode}
\int_compare:nNnTF \c@iRow = 0
{ \int_compare:nNnT \c@jCol > 0 \l_@@_code_for_first_row_tl }
@@ -3465,15 +3772,17 @@ c & c & b & a & e
%
% \interitem
% The following macro |\@@_begin_of_row| is usually used in the cell
-% number~$1$ of the array. However, when the key |first-col| is used,
-% |\@@_begin_of_row| is executed in the cell number~$0$ of the array.
+% number~$1$ of the row. However, when the key |first-col| is used,
+% |\@@_begin_of_row| is executed in the cell number~$0$ of the row.
% \begin{macrocode}
-\cs_new_protected:Nn \@@_begin_of_row:
+\cs_new_protected:Npn \@@_begin_of_row:
{
\int_gincr:N \c@iRow
\dim_gset_eq:NN \g_@@_dp_ante_last_row_dim \g_@@_dp_last_row_dim
\dim_gset:Nn \g_@@_dp_last_row_dim { \box_dp:N \@arstrutbox }
\dim_gset:Nn \g_@@_ht_last_row_dim { \box_ht:N \@arstrutbox }
+ \tikz [ remember~picture , baseline ] \coordinate
+ ( nm - \int_use:N \g_@@_env_int - row - \int_use:N \c@iRow - base ) ;
}
% \end{macrocode}
%
@@ -3481,31 +3790,31 @@ c & c & b & a & e
% \interitem
% The following code is used in each cell of the array. It actualises quantities
% that, at the end of the array, will give informations about the vertical
-% dimension of the two first rows and the two last rows.
+% dimension of the two first rows and the two last rows. If the user uses the
+% |last-row|, some lines will be dynamically added to this command.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_actualization_for_first_and_last_row:
+\cs_new_protected:Npn \@@_update_for_first_and_last_row:
{
- \int_compare:nNnT \c@iRow = 0
+ \int_compare:nNnTF \c@iRow = 0
{
\dim_gset:Nn \g_@@_dp_row_zero_dim
- { \dim_max:nn \g_@@_dp_row_zero_dim { \box_dp:N \l_tmpa_box } }
+ { \dim_max:nn \g_@@_dp_row_zero_dim { \box_dp:N \l_@@_cell_box } }
\dim_gset:Nn \g_@@_ht_row_zero_dim
- { \dim_max:nn \g_@@_ht_row_zero_dim { \box_ht:N \l_tmpa_box } }
+ { \dim_max:nn \g_@@_ht_row_zero_dim { \box_ht:N \l_@@_cell_box } }
}
- \int_compare:nNnT \c@iRow = \c_one_int
- {
- \dim_gset:Nn \g_@@_ht_row_one_dim
- { \dim_max:nn \g_@@_ht_row_one_dim { \box_ht:N \l_tmpa_box } }
+ {
+ \int_compare:nNnT \c@iRow = 1
+ {
+ \dim_gset:Nn \g_@@_ht_row_one_dim
+ { \dim_max:nn \g_@@_ht_row_one_dim { \box_ht:N \l_@@_cell_box } }
+ }
}
- \dim_gset:Nn \g_@@_ht_last_row_dim
- { \dim_max:nn \g_@@_ht_last_row_dim { \box_ht:N \l_tmpa_box } }
- \dim_gset:Nn \g_@@_dp_last_row_dim
- { \dim_max:nn \g_@@_dp_last_row_dim { \box_dp:N \l_tmpa_box } }
}
% \end{macrocode}
-%
+%
+%
% \begin{macrocode}
-\cs_new_protected:Nn \@@_end_Cell:
+\cs_new_protected:Npn \@@_end_Cell:
{
\c_math_toggle_token
\hbox_set_end:
@@ -3517,12 +3826,12 @@ c & c & b & a & e
%
% \begin{macrocode}
\dim_gset:Nn \g_@@_max_cell_width_dim
- { \dim_max:nn \g_@@_max_cell_width_dim { \box_wd:N \l_tmpa_box } }
+ { \dim_max:nn \g_@@_max_cell_width_dim { \box_wd:N \l_@@_cell_box } }
% \end{macrocode}
%
% The following computations are for the ``first row'' and the ``last row''.
% \begin{macrocode}
- \@@_actualization_for_first_and_last_row:
+ \@@_update_for_first_and_last_row:
% \end{macrocode}
%
% Now, we can create the Tikz node of the cell.
@@ -3548,9 +3857,7 @@ c & c & b & a & e
\int_use:N \c@jCol
}
]
- \bgroup
- \box_use:N \l_tmpa_box
- \egroup ;
+ { \box_use_drop:N \l_@@_cell_box } ;
}
% \end{macrocode}
%
@@ -3561,19 +3868,18 @@ c & c & b & a & e
%
% \bigskip
% In the environment |{NiceArrayWithDelims}|, we will have to redefine the
-% column types |w| and |W|. These definitions are rather long because we have to
-% construct the |w|-nodes in these columns. The redefinition of these two column
-% types are very close and that's why we use a macro |\@@_renewcolumntype:nn|.
-% The first argument is the type of the column (|w| or |W|) and the second
-% argument is a code inserted at a special place and which is the only
-% difference between the two definitions.
-% \begin{macrocode}
-\cs_new_protected:Nn \@@_renewcolumntype:nn
+% column types |w| and |W|. The redefinition of these two column types are very
+% close and that's why we use a macro |\@@_renewcolumntype:nn|. The first
+% argument is the type of the column (|w| or |W|) and the second argument is a
+% code inserted at a special place and which is the only difference between the
+% two definitions.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_renewcolumntype:nn #1 #2
{
\newcolumntype #1 [ 2 ]
{
> {
- \hbox_set:Nw \l_tmpa_box
+ \hbox_set:Nw \l_@@_cell_box
\@@_Cell:
}
c
@@ -3581,23 +3887,7 @@ c & c & b & a & e
\@@_end_Cell:
\hbox_set_end:
#2
- \tikz [ remember~picture ]
- \node
- [
- name = nm - \int_use:N \g_@@_env_int -
- \int_use:N \c@iRow -
- \int_use:N \c@jCol - w,
- alias =
- \str_if_empty:NF \l_@@_name_str
- {
- \l_@@_name_str -
- \int_use:N \c@iRow -
- \int_use:N \c@jCol - w
- } ,
- inner~sep = \c_zero_dim ,
- ]
- { \makebox [ ##2 ] [ ##1 ] { \box_use:N \l_tmpa_box } }
- ;
+ \makebox [ ##2 ] [ ##1 ] { \box_use_drop:N \l_@@_cell_box }
}
}
}
@@ -3608,7 +3898,7 @@ c & c & b & a & e
% The argument of the following command |\@@_instruction_of_type:n| defined
% below is the type of the instruction (|Cdots|, |Vdots|, |Ddots|, etc.). This
% command writes in the corresponding |\g_@@_|\textsl{type}|_lines_tl| the
-% instruction which will really draw the line after the construction of the
+% instruction which will actually draw the line after the construction of the
% matrix.
%
% \medskip
@@ -3684,25 +3974,44 @@ c & c & b & a & e
}
\array
% \end{macrocode}
-% |\l_@@_pos_env_str| may have the value |t|, |c| or |b|.
+% |\l_@@_baseline_str| may have the value |t|, |c| or |b|. However, if the value
+% is |b|, we compose the |\array| (of \pkg{array}) with the option |t| and the
+% right translation will be done further.
% \begin{macrocode}
- [ \l_@@_pos_env_str ]
+ [ \str_if_eq:VnTF \l_@@_baseline_str c c t ]
}
% \end{macrocode}
%
-%
+% \medskip
+% We keep in memory the standard version of |\ialign| because we will redefine
+% |\ialign| in the environment |{NiceArrayWithDelims}| but restore the standard
+% version for use in the cells of the array.
+% \begin{macrocode}
+\cs_set_eq:NN \@@_standard_ialign: \ialign
+% \end{macrocode}
%
% \bigskip
% The following must \emph{not} be protected because it begins with |\noalign|.
% \begin{macrocode}
-\cs_new:Npn \@@_everycr:
- { \noalign { \@@_everycr_i: } }
+\cs_new:Npn \@@_everycr: { \noalign { \@@_everycr_i: } }
% \end{macrocode}
%
% \begin{macrocode}
\cs_new_protected:Npn \@@_everycr_i:
{
\int_gzero:N \c@jCol
+% \end{macrocode}
+% The |\hbox:n| is mandatory.
+% \begin{macrocode}
+ \hbox:n
+ {
+ \tikz [ remember~picture ]
+ \coordinate
+ ( nm - \int_use:N \g_@@_env_int - row - \int_eval:n { \c@iRow + 1 } ) ;
+ }
+% \end{macrocode}
+% We add the potential horizontal lines specified by the option |hlines|.
+% \begin{macrocode}
\bool_if:NT \l_@@_hlines_bool
{
% \end{macrocode}
@@ -3712,10 +4021,14 @@ c & c & b & a & e
% \begin{macrocode}
\int_compare:nNnT \c@iRow > { -1 }
{
- \int_compare:nNnF \c@iRow = \l_@@_last_row_int
- {
- \hrule \@height \arrayrulewidth
- \skip_vertical:n { - \arrayrulewidth }
+ \bool_if:NF \g_@@_row_of_col_done_bool
+ {
+ \int_compare:nNnF \c@iRow = \l_@@_last_row_int
+ {
+ \bool_if:NTF \c_@@_colortbl_loaded_bool
+ { { \CT@arc@ \hrule height \arrayrulewidth } }
+ { \hrule height \arrayrulewidth }
+ }
}
}
}
@@ -3730,6 +4043,7 @@ c & c & b & a & e
% \begin{macrocode}
\cs_new_protected:Npn \@@_pre_array:
{
+ \box_clear_new:N \l_@@_cell_box
\cs_if_exist:NT \theiRow
{ \int_set_eq:NN \l_@@_save_iRow_int \c@iRow }
\int_gzero_new:N \c@iRow
@@ -3804,18 +4118,13 @@ c & c & b & a & e
\dim_gzero_new:N \g_@@_dp_last_row_dim
\dim_gset:Nn \g_@@_dp_last_row_dim { \box_dp:N \@arstrutbox }
% \end{macrocode}
-% After its first utilisation, the definition of |\ialign| will revert
+% After its first use, the definition of |\ialign| will revert
% automatically to its default definition. With this programmation, we will
% have, in the cells of the array, a clean version of |\ialign|.\footnote{The
% user will probably not employ directly |\ialign| in the array... but more
% likely environments that utilize |\ialign| internally (e.g.: |{substack}|).}
% \begin{macrocode}
- \cs_set:Npn \ialign
- {
- \everycr { }
- \tabskip = \c_zero_skip
- \halign
- }
+ \cs_set_eq:NN \ialign \@@_standard_ialign:
\halign
}
% \end{macrocode}
@@ -3829,6 +4138,8 @@ c & c & b & a & e
% \end{macrocode}
%
% \begin{macrocode}
+ \cs_set_eq:NN \firsthline \hline
+ \cs_set_eq:NN \lasthline \hline
\cs_set_eq:NN \Ldots \@@_Ldots
\cs_set_eq:NN \Cdots \@@_Cdots
\cs_set_eq:NN \Vdots \@@_Vdots
@@ -3839,6 +4150,7 @@ c & c & b & a & e
\cs_set_eq:NN \Hdotsfor \@@_Hdotsfor:
\cs_set_eq:NN \multicolumn \@@_multicolumn:nnn
\cs_set_eq:NN \Block \@@_Block:
+ \cs_set_eq:NN \rotate \@@_rotate:
\cs_set_eq:NN \OnlyMainNiceMatrix \@@_OnlyMainNiceMatrix:n
\bool_if:NT \l_@@_renew_dots_bool
{
@@ -3919,18 +4231,18 @@ c & c & b & a & e
{
!
{
- \skip_horizontal:n { 0.53 pt }
% \end{macrocode}
-% If the array is an array with all the columns of the same width, we don't ask
-% for the creation of the extra nodes because we will use the ``|col|'' nodes
-% for the vertical dotted line.
+%
+% \medskip
+% The following code because we want the dotted line to have exactly the same
+% position as a vertical rule drawn by ``"|"'' (considering the rule having a
+% width equal to the diameter of the dots).
% \begin{macrocode}
- \bool_if:nF
+ \int_compare:nNnF \c@iRow = 0
{
- \l_@@_auto_columns_width_bool
- || \dim_compare_p:nNn \l_@@_columns_width_dim > \c_zero_dim
+ \int_compare:nNnF \c@iRow = \l_@@_last_row_int
+ { \skip_horizontal:n { 2 \l_@@_radius_dim } }
}
- { \bool_gset_true:N \g_@@_large_nodes_bool }
% \end{macrocode}
%
% \medskip
@@ -3986,24 +4298,24 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% \subsection{The environment \{NiceArrayWithDelims\}}
+% \subsection*{The environment \{NiceArrayWithDelims\}}
%
% \begin{macrocode}
\NewDocumentEnvironment { NiceArrayWithDelims } { m m O { } m ! O { } }
{
- \str_if_empty:NT \g_@@_type_env_str
- {
- \str_gset:Nn \g_@@_type_env_str
- { environment ~ { NiceArrayWithDelims } }
- }
+ \bool_gset_false:N \g_@@_row_of_col_done_bool
+ \str_if_empty:NT \g_@@_name_env_str
+ { \str_gset:Nn \g_@@_name_env_str { NiceArrayWithDelims } }
\@@_adapt_S_column:
\@@_test_if_math_mode:
\bool_if:NT \l_@@_in_env_bool { \@@_fatal:n { Yet~in~env } }
\bool_set_true:N \l_@@_in_env_bool
% \end{macrocode}
%
-% We deactivate Tikz externalization (since we use Tikz pictures with the
-% options |overlay| and |remember picture|, there would be errors).
+% We deactivate Tikz externalization.
+%
+% Since we use Tikz pictures with the options |overlay| and |remember picture|,
+% there would be errors).
% \begin{macrocode}
\cs_if_exist:NT \tikz@library@external@loaded
{
@@ -4038,13 +4350,24 @@ c & c & b & a & e
{ \keys_set:nn { NiceMatrix / pNiceArray } }
{ #3 , #5 }
% \end{macrocode}
-%
+%
+%
% A value of $-1$ for the counter |\l_@@_last_row_int| means that the user has
% used the option |last-row| without value, that is to say without specifying
% the number of that last row. In this case, we try to read that value from the
% |aux| file (if it has been written on a previous run).
%
% \begin{macrocode}
+ \int_compare:nNnT \l_@@_last_row_int > { -2 }
+ {
+ \tl_put_right:Nn \@@_update_for_first_and_last_row:
+ {
+ \dim_gset:Nn \g_@@_ht_last_row_dim
+ { \dim_max:nn \g_@@_ht_last_row_dim { \box_ht:N \l_@@_cell_box } }
+ \dim_gset:Nn \g_@@_dp_last_row_dim
+ { \dim_max:nn \g_@@_dp_last_row_dim { \box_dp:N \l_@@_cell_box } }
+ }
+ }
\int_compare:nNnT \l_@@_last_row_int = { -1 }
{
\bool_set_true:N \l_@@_last_row_without_value_bool
@@ -4070,8 +4393,7 @@ c & c & b & a & e
}
% \end{macrocode}
%
-% The code in |\@@_pre_array:| is used only by |{NiceArrayWithDelims}|. It
-% exists only for historical reasons. We should change that.
+% The code in |\@@_pre_array:| is used only by |{NiceArrayWithDelims}|.
% \begin{macrocode}
\@@_pre_array:
% \end{macrocode}
@@ -4079,32 +4401,30 @@ c & c & b & a & e
% \medskip
% We compute the width of the two delimiters.
% \begin{macrocode}
- \dim_gzero_new:N \g_@@_left_delim_dim
- \dim_gzero_new:N \g_@@_right_delim_dim
+ \dim_zero_new:N \l_@@_left_delim_dim
+ \dim_zero_new:N \l_@@_right_delim_dim
\bool_if:NTF \l_@@_NiceArray_bool
{
- \dim_gset:Nn \g_@@_left_delim_dim { 2 \arraycolsep }
- \dim_gset:Nn \g_@@_right_delim_dim { 2 \arraycolsep }
+ \dim_gset:Nn \l_@@_left_delim_dim { 2 \arraycolsep }
+ \dim_gset:Nn \l_@@_right_delim_dim { 2 \arraycolsep }
}
{
- \group_begin:
- \dim_set_eq:NN \nulldelimiterspace \c_zero_dim
\hbox_set:Nn \l_tmpa_box
{
\c_math_toggle_token
\left #1 \vcenter to 3 cm { } \right.
\c_math_toggle_token
}
- \dim_gset:Nn \g_@@_left_delim_dim { \box_wd:N \l_tmpa_box }
+ \dim_set:Nn \l_@@_left_delim_dim
+ { \box_wd:N \l_tmpa_box - \nulldelimiterspace }
\hbox_set:Nn \l_tmpa_box
{
- \dim_set_eq:NN \nulldelimiterspace \c_zero_dim
\c_math_toggle_token
\left. \vcenter to 3 cm { } \right #2
\c_math_toggle_token
}
- \dim_gset:Nn \g_@@_right_delim_dim { \box_wd:N \l_tmpa_box }
- \group_end:
+ \dim_set:Nn \l_@@_right_delim_dim
+ { \box_wd:N \l_tmpa_box - \nulldelimiterspace }
}
% \end{macrocode}
%
@@ -4122,27 +4442,44 @@ c & c & b & a & e
\int_compare:nNnTF \l_@@_first_col_int = 0
{ \tl_put_left:NV \l_tmpa_tl \c_@@_preamble_first_col_tl }
{
- \bool_if:NT \l_@@_NiceArray_bool
- {
- \bool_if:NF \l_@@_exterior_arraycolsep_bool
- { \tl_put_left:Nn \l_tmpa_tl { @ { } } }
+ \bool_if:nT
+ {
+ \l_@@_NiceArray_bool
+ && ! \l_@@_vlines_bool
+ && ! \l_@@_exterior_arraycolsep_bool
}
+ { \tl_put_left:Nn \l_tmpa_tl { @ { } } }
}
\int_compare:nNnTF \l_@@_last_col_int > { -1 }
{ \tl_put_right:NV \l_tmpa_tl \c_@@_preamble_last_col_tl }
{
- \bool_if:NT \l_@@_NiceArray_bool
- {
- \bool_if:NF \l_@@_exterior_arraycolsep_bool
- { \tl_put_right:Nn \l_tmpa_tl { @ { } } }
+ \bool_if:nT
+ {
+ \l_@@_NiceArray_bool
+ && ! \l_@@_vlines_bool
+ && ! \l_@@_exterior_arraycolsep_bool
}
+ { \tl_put_right:Nn \l_tmpa_tl { @ { } } }
}
+ \tl_put_right:Nn \l_tmpa_tl { > { \@@_error_too_much_cols: } l }
% \end{macrocode}
% Here is the beginning of the box which will contain the array. The
% |\hbox_set_end:| corresponding to this |\hbox_set:Nw| will be in the second
% part of the environment (and the closing |\c_math_toggle_token| also).
% \begin{macrocode}
\hbox_set:Nw \l_@@_the_array_box
+% \end{macrocode}
+% If the key |\vlines| is used, we increase |\arraycolsep| by
+% |0.5\arrayrulewidth| in order to reserve space for the width of the vertical
+% rules drawn with Tikz after the end of the array. However, the first
+% |\arraycolsep| is used once (between columns, |\arraycolsep| is used twice).
+% That's why we add a |0.5\arrayrulewidth| more.
+% \begin{macrocode}
+ \bool_if:NT \l_@@_vlines_bool
+ {
+ \dim_add:Nn \arraycolsep { 0.5 \arrayrulewidth }
+ \skip_horizontal:n { 0.5 \arrayrulewidth }
+ }
\skip_horizontal:n \l_@@_left_margin_dim
\skip_horizontal:n \l_@@_extra_left_margin_dim
\c_math_toggle_token
@@ -4161,13 +4498,22 @@ c & c & b & a & e
\c_math_toggle_token
\skip_horizontal:n \l_@@_right_margin_dim
\skip_horizontal:n \l_@@_extra_right_margin_dim
+% \end{macrocode}
+% If the key |\vlines| is used, we have increased |\arraycolsep| by
+% |0.5\arrayrulewidth| in order to reserve space for the width of the vertical
+% rules drawn with Tikz after the end of the array. However, the last
+% |\arraycolsep| is used once (between columns, |\arraycolsep| is used twice).
+% That's we add a |0.5 \arrayrulewidth| more.
+% \begin{macrocode}
+ \bool_if:NT \l_@@_vlines_bool { \skip_horizontal:n { 0.5 \arrayrulewidth } }
\hbox_set_end:
% \end{macrocode}
-% Now, the box containing the array is constructed (in |\l_@@_the_array_box|).
-% However, we have some computations to do before inserting that box in the TeX
-% flow (mainly because the exterior columns are in overlapping positions).
+% End of the construction of the array (in the box |\l_@@_the_array_box|).
%
% \bigskip
+% It the user has used the key |last-row| with a value, we control that the
+% given value is correct (since we have just contructed the array, we know the
+% real number of rows of the array).
% \begin{macrocode}
\int_compare:nNnT \l_@@_last_row_int > { -2 }
{
@@ -4181,6 +4527,25 @@ c & c & b & a & e
}
}
% \end{macrocode}
+%
+% Now, the definition of |\c@jCol| and
+% |\g_@@_col_total_int| change: |\c@jCol| will be the number of
+% columns without the ``last column''; |\g_@@_col_total_int| will be the
+% number of columns with this ``last column''.\footnote{We remind that the
+% potential ``first column'' has the number~$0$.}
+% \begin{macrocode}
+ \int_gset_eq:NN \c@jCol \g_@@_col_total_int
+ \bool_if:nT \g_@@_last_col_found_bool { \int_gdecr:N \c@jCol }
+% \end{macrocode}
+%
+% We fix also the value of |\c@iRow| and |\g_@@_row_total_int| with the
+% same principle.
+% \begin{macrocode}
+ \int_gset_eq:NN \g_@@_row_total_int \c@iRow
+ \int_compare:nNnT \l_@@_last_row_int > { -1 } { \int_gdecr:N \c@iRow }
+% \end{macrocode}
+%
+%
%
% \bigskip
% \textbf{Now, we begin the real construction in the output flow of TeX}. First, we take
@@ -4203,24 +4568,76 @@ c & c & b & a & e
% \begin{macrocode}
\bool_if:NTF \l_@@_NiceArray_bool
{
- \int_compare:nNnTF \l_@@_first_row_int = 0
+% \end{macrocode}
+% Remember that, when the key |b| is used, the |\array| (of \pkg{array}) is
+% constructed with the option |t| (and not |b|). Now, we do the translation to
+% take into account the option |b|.
+% \begin{macrocode}
+ \str_if_eq:VnTF \l_@@_baseline_str { b }
{
- \str_if_eq:VnT \l_@@_pos_env_str { t }
- {
- \box_move_up:nn { \g_@@_dp_row_zero_dim + \g_@@_ht_row_one_dim }
- }
+ \begin { tikzpicture }
+ \@@_extract_coords:w ( nm - \int_use:N \g_@@_env_int - row - 1 )
+ \dim_gset_eq:NN \g_tmpa_dim \pgf@y
+ \@@_extract_coords:w
+ (
+ nm - \int_use:N \g_@@_env_int -
+ row - \int_use:N \c@iRow - base
+ )
+ \dim_gsub:Nn \g_tmpa_dim \pgf@y
+ \end { tikzpicture }
+ \int_compare:nNnT \l_@@_first_row_int = 0
+ {
+ \dim_gadd:Nn \g_tmpa_dim
+ { \g_@@_ht_row_zero_dim + \g_@@_dp_row_zero_dim }
+ }
+ \box_move_up:nn \g_tmpa_dim { \box_use_drop:N \l_@@_the_array_box }
}
- {
- \int_compare:nNnT \l_@@_last_row_int > 0
+ {
+ \str_if_eq:VnTF \l_@@_baseline_str { c }
+ { \box_use_drop:N \l_@@_the_array_box }
{
- \str_if_eq:VnT \l_@@_pos_env_str { b }
+% \end{macrocode}
+% We convert a value of |t| to a value of |1|.
+% \begin{macrocode}
+ \str_if_eq:VnT \l_@@_baseline_str { t }
+ { \str_set:Nn \l_@@_baseline_str { 1 } }
+% \end{macrocode}
+% Now, we convert the value of |\l_@@_baseline_str| (which should represent an
+% integer) to an integer stored in |\l_tmpa_int|.
+% \begin{macrocode}
+ \int_set:Nn \l_tmpa_int \l_@@_baseline_str
+ \bool_if:nT
+ {
+ \int_compare_p:nNn \l_tmpa_int < 0
+ || \int_compare_p:nNn \l_tmpa_int > \g_@@_row_total_int
+ }
+ {
+ \@@_error:n { bad~value~for~baseline }
+ \int_set:Nn \l_tmpa_int 1
+ }
+% \end{macrocode}
+% We use a |{tikzpicture}| to extract coordinates (nothing is drawn).
+% \begin{macrocode}
+ \begin { tikzpicture }
+ \@@_extract_coords:w
+ ( nm - \int_use:N \g_@@_env_int - row - 1 )
+ \dim_gset_eq:NN \g_tmpa_dim \pgf@y
+ \@@_extract_coords:w
+ (
+ nm - \int_use:N \g_@@_env_int -
+ row - \int_use:N \l_tmpa_int- base
+ )
+ \dim_gsub:Nn \g_tmpa_dim \pgf@y
+ \end { tikzpicture }
+ \int_compare:nNnT \l_@@_first_row_int = 0
{
- \box_move_down:nn
- { \g_@@_ht_last_row_dim + \g_@@_dp_ante_last_row_dim }
+ \dim_gadd:Nn \g_tmpa_dim
+ { \g_@@_ht_row_zero_dim + \g_@@_dp_row_zero_dim }
}
+ \box_move_up:nn \g_tmpa_dim
+ { \box_use_drop:N \l_@@_the_array_box }
}
}
- { \box_use_drop:N \l_@@_the_array_box }
}
% \end{macrocode}
%
@@ -4236,6 +4653,7 @@ c & c & b & a & e
}
{ \dim_zero:N \l_tmpa_dim }
% \end{macrocode}
+%
% We compute |\l_tmpb_dim| which is the total height of the ``last row''
% below the array (when the key |last-row| is used). A value of $-2$ for
% |\l_@@_last_row_int| means that there is no ``last row''.\footnote{A value of
@@ -4278,25 +4696,96 @@ c & c & b & a & e
\right #2
\c_math_toggle_token
}
- \box_set_ht:Nn \l_tmpa_box { \box_ht:N \l_tmpa_box + \l_tmpa_dim }
- \box_set_dp:Nn \l_tmpa_box { \box_dp:N \l_tmpa_box + \l_tmpb_dim }
- \box_use_drop:N \l_tmpa_box
+% \end{macrocode}
+% Now, the box |\l_tmpa_box| is created with the correct delimiters.
+%
+% \smallskip
+% We will put the box in the TeX flow. However, we have a small work to do
+% when the option |max-delimiter-width| is used.
+% \begin{macrocode}
+ \bool_if:NTF \l_@@_max_delimiter_width_bool
+ { \@@_put_box_in_flow_bis:nn { #1 } { #2 } }
+ \@@_put_box_in_flow:
}
% \end{macrocode}
+%
% We take into account a potential ``last column'' (this ``last column'' has
% been constructed in an overlapping position and we have computed its width in
% |\g_@@_width_last_col_dim|: see p.~\pageref{overlap-right}).
% \begin{macrocode}
\bool_if:NT \g_@@_last_col_found_bool
- {
- \skip_horizontal:n \g_@@_width_last_col_dim
- \skip_horizontal:n \arraycolsep
- }
+ { \skip_horizontal:n { \g_@@_width_last_col_dim + \arraycolsep } }
\@@_after_array:
}
% \end{macrocode}
% This is the end of the environment |{NiceArrayWithDelims}|.
%
+% \bigskip
+% The command |\@@_put_box_in_flow:| puts the box |\l_tmpa_box| (which contains
+% the array) in the flow. It is used for the environments with delimiters.
+% First, we have to modify the height and the depth to take back into account
+% the potential exterior rows (the total height of the first row has been
+% computed in |\l_tmpa_dim| and the total height of the potential last row in
+% |\l_tmpb_dim|).
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_put_box_in_flow:
+ {
+ \box_set_ht:Nn \l_tmpa_box { \box_ht:N \l_tmpa_box + \l_tmpa_dim }
+ \box_set_dp:Nn \l_tmpa_box { \box_dp:N \l_tmpa_box + \l_tmpb_dim }
+ \box_use_drop:N \l_tmpa_box
+ }
+% \end{macrocode}
+%
+% \bigskip
+% The command |\@@_put_box_in_flow_bis:| is used when the option
+% |max-delimiter-width| is used because, in this case, we have to adjust the
+% widths of the delimiters. The arguments |#1| and |#2| are the delimiters
+% specified by the user.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_put_box_in_flow_bis:nn #1 #2
+ {
+% \end{macrocode}
+% We will compute the real width of both delimiters used.
+% \begin{macrocode}
+ \dim_zero_new:N \l_@@_real_left_delim_dim
+ \dim_zero_new:N \l_@@_real_right_delim_dim
+ \hbox_set:Nn \l_tmpb_box
+ {
+ \c_math_toggle_token
+ \left #1
+ \vcenter
+ {
+ \vbox_to_ht:nn
+ { \box_ht:N \l_tmpa_box + \box_dp:N \l_tmpa_box }
+ { }
+ }
+ \right .
+ \c_math_toggle_token
+ }
+ \dim_set:Nn \l_@@_real_left_delim_dim
+ { \box_wd:N \l_tmpb_box - \nulldelimiterspace }
+ \hbox_set:Nn \l_tmpb_box
+ {
+ \c_math_toggle_token
+ \left .
+ \vbox_to_ht:nn
+ { \box_ht:N \l_tmpa_box + \box_dp:N \l_tmpa_box }
+ { }
+ \right #2
+ \c_math_toggle_token
+ }
+ \dim_set:Nn \l_@@_real_right_delim_dim
+ { \box_wd:N \l_tmpb_box - \nulldelimiterspace }
+% \end{macrocode}
+%
+% Now, we can put the box in the TeX flow with the horizontal adjustments on
+% both sides.
+% \begin{macrocode}
+ \skip_horizontal:n { \l_@@_left_delim_dim - \l_@@_real_left_delim_dim }
+ \@@_put_box_in_flow:
+ \skip_horizontal:n { \l_@@_right_delim_dim - \l_@@_real_right_delim_dim }
+ }
+% \end{macrocode}
%
% \interitem
% The construction of the array in the environment |{NiceArrayWithDelims}| is,
@@ -4307,21 +4796,32 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { @@-normal-syntax } { }
% \end{macrocode}
+% First, we test whether the environment is empty. If it is empty, we raise a
+% fatal error (it's only a security). In order to detect whether it is empty, we
+% test whether the next token is |\end| and, if it's the case, we test if this
+% is the end of the environment (if it is not, an standard error will be raised
+% by LaTeX for incorrect nested environments).
+% \begin{macrocode}
+ {
+ \peek_meaning_ignore_spaces:NTF \end
+ { \@@_analyze_end:Nn }
+% \end{macrocode}
% Here is the call to |\array| (we have a dedicated macro |\@@_array:| because
% of compatibility with the classes \cls{revtex4-1} and \cls{revtex4-2}).
% \begin{macrocode}
- { \exp_args:NV \@@_array: \l_tmpa_tl }
+ { \exp_args:NV \@@_array: \l_tmpa_tl }
+ }
{
% \end{macrocode}
%
% If all the columns must have the same width (if the user has used the option
-% |columns-width| or the option |auto-column-width| of the environment
+% |columns-width| or the option |auto-columns-width| of the environment
% |{NiceMatrixBlock}|), we will add a row in the array to fix the width of the
% columns and construct the ``|col|'' nodes |nm-|\textsl{a}|-col-|\textsl{j}
% (these nodes will be used by the horizontal open dotted lines and by the
% commands |\@@_vdottedline:n|). We have written a dedicated function for that job.
% \begin{macrocode}
- \@@_create_row_of_col_nodes:
+ \@@_create_col_nodes:
\endarray
}
% \end{macrocode}
@@ -4334,6 +4834,12 @@ c & c & b & a & e
\NewDocumentEnvironment { @@-light-syntax } { b }
{
% \end{macrocode}
+% First, we test whether the environment is empty. It's only a security. Of
+% course, this test is more easy than the similar test for the ``normal syntax''
+% because we have the whole body of the environment in |#1|.
+% \begin{macrocode}
+ \tl_if_empty:nT { #1 } { \@@_fatal:n { empty~environment } }
+% \end{macrocode}
% Here is the call to |\array| (we have a dedicated macro |\@@_array:| because
% of compatibility with the classes \cls{revtex4-1} and \cls{revtex4-2}).
% \begin{macrocode}
@@ -4352,7 +4858,7 @@ c & c & b & a & e
\seq_gpop_left:NN \g_@@_rows_seq \l_tmpa_tl
\exp_args:NV \@@_line_with_light_syntax_i:n \l_tmpa_tl
\seq_map_function:NN \g_@@_rows_seq \@@_line_with_light_syntax:n
- \@@_create_row_of_col_nodes:
+ \@@_create_col_nodes:
\endarray
}
% \end{macrocode}
@@ -4387,102 +4893,106 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% The command |\@@_create_row_of_col_nodes:| will construct the potential last
-% row. That last row (when it is created) is a false row used to fix the width
-% of the columns (when the array is constructed with an option whhich specify
-% the width of the columns) and create the |col|-nodes (that nodes will be used
-% by |\vdottedline| for instance).
+% The following command is used by the code which detects whether the
+% environment is empty (we raise a fatal error in this case: it's only a
+% security).
% \begin{macrocode}
-\cs_new:Npn \@@_create_row_of_col_nodes:
+\cs_new_protected:Npn \@@_analyze_end:Nn #1 #2
{
- \bool_if:nT
- {
- \l_@@_auto_columns_width_bool
- || \dim_compare_p:nNn \l_@@_columns_width_dim > \c_zero_dim
- }
- {
- \crcr
- \int_compare:nNnT \l_@@_first_col_int = 0 { \omit & }
- \omit
+ \str_if_eq:VnT \g_@@_name_env_str { #2 }
+ { \@@_fatal:n { empty~environment } }
+% \end{macrocode}
+% We reput in the stream the |\end{...}| we have extracted and the user will
+% have an error for incorrect nested environments.
+% \begin{macrocode}
+ \end { #2 }
+ }
+% \end{macrocode}
+%
+% \bigskip
+% The command |\@@_create_col_nodes:| will construct a special last row.
+% That last row is a false row used to create the |col|-nodes and to fix the
+% width of the columns (when the array is constructed with an option which
+% specify the width of the columns).
+% \begin{macrocode}
+\cs_new:Npn \@@_create_col_nodes:
+ {
+ \crcr
+ \int_compare:nNnT \c@iRow = 0 { \@@_fatal:n { Zero~row } }
+ \int_compare:nNnT \l_@@_first_col_int = 0 { \omit & }
+ \omit
+% \end{macrocode}
+% The following instruction must be put after the instructions |\omit|.
+% \begin{macrocode}
+ \bool_gset_true:N \g_@@_row_of_col_done_bool
% \end{macrocode}
% First, we put a ``|col|'' node on the left of the first column (of course, we
% have to do that \emph{after} the |\omit|).
% \begin{macrocode}
- \skip_horizontal:N \arraycolsep
- \tikz [ remember~picture , overlay ]
- \coordinate [ name = nm - \int_use:N \g_@@_env_int - col - 0 ] ;
- \skip_horizontal:n { - \arraycolsep }
+ \tikz [ remember~picture ]
+ \coordinate ( nm - \int_use:N \g_@@_env_int - col - 1 ) ;
% \end{macrocode}
-% We compute in |\g_tmpa_dim| the common width of the columns. We use a global
-% variable because we are in a cell of an |\halign| and because we have to use this
-% variable in other cells (of the same row). The affectation of |\g_tmpa_dim|,
-% like all the affectations, must be done after the |\omit| of the cell.
+% We compute in |\g_tmpa_skip| the common width of the columns (it's a skip and
+% not a dimension). We use a global variable because we are in a cell of an
+% |\halign| and because we have to use this variable in other cells (of the same
+% row). The affectation of |\g_tmpa_skip|, like all the affectations, must be
+% done after the |\omit| of the cell.
% \begin{macrocode}
+ \bool_if:nTF
+ {
+ \l_@@_auto_columns_width_bool
+ || \dim_compare_p:nNn \l_@@_columns_width_dim > \c_zero_dim
+ }
+ {
\bool_if:nTF
{
\l_@@_auto_columns_width_bool
&& ! \l_@@_block_auto_columns_width_bool
}
{
- \dim_gset:Nn \g_tmpa_dim
+ \skip_gset:Nn \g_tmpa_skip
{ \g_@@_max_cell_width_dim + 2 \arraycolsep }
}
{
- \dim_gset:Nn \g_tmpa_dim
+ \skip_gset:Nn \g_tmpa_skip
{ \l_@@_columns_width_dim + 2 \arraycolsep }
- }
- \skip_horizontal:N \g_tmpa_dim
- \tikz [ remember~picture , overlay ]
- \coordinate [ name = nm - \int_use:N \g_@@_env_int - col - 1 ] ;
+ }
+ }
+ { \skip_gset:Nn \g_tmpa_skip { 0 pt~plus 1 fill } }
+ \skip_horizontal:N \g_tmpa_skip
+ \hbox:n
+ {
+ \tikz [ remember~picture ]
+ \coordinate ( nm - \int_use:N \g_@@_env_int - col - 2 ) ;
+ }
% \end{macrocode}
% We begin a loop over the columns. The integer |\g_tmpa_int| will be the
-% number of the current column. This integer is not used to fix the
-% width of the column (since all the columns have the same width equal to
-% |\g_@@_tmpa_dim|) but for the Tikz nodes.
-% \begin{macrocode}
- \int_gset:Nn \g_tmpa_int 1
- \bool_if:nTF \g_@@_last_col_found_bool
- { \prg_replicate:nn { \g_@@_col_total_int - 3 } }
- { \prg_replicate:nn { \g_@@_col_total_int - 2 } }
- {
- &
- \omit
+% number of the current column. This integer is used for the Tikz nodes.
+% \begin{macrocode}
+ \int_gset:Nn \g_tmpa_int 1
+ \bool_if:NTF \g_@@_last_col_found_bool
+ { \prg_replicate:nn { \g_@@_col_total_int - 2 } }
+ { \prg_replicate:nn { \g_@@_col_total_int - 1 } }
+ {
+ &
+ \omit
% \end{macrocode}
% The incrementation of the counter |\g_tmpa_int| must be done after the |\omit|
% of the cell.
% \begin{macrocode}
- \int_gincr:N \g_tmpa_int
- \skip_horizontal:N \g_tmpa_dim
-% \end{macrocode}
-% We create a ``|col|'' node on the right of the current column.
-% \begin{macrocode}
- \@@_create_col_node:
- }
+ \int_gincr:N \g_tmpa_int
+ \skip_horizontal:N \g_tmpa_skip
% \end{macrocode}
-% For the last column, we want a special treatment because of the final
-% |\arraycolsep|.
+% We create the ``|col|'' node on the right of the current column.
% \begin{macrocode}
- &
- \omit
- \int_gincr:N \g_tmpa_int
- \skip_horizontal:N \g_tmpa_dim
- \skip_horizontal:n { - \arraycolsep }
- \@@_create_col_node:
- \skip_horizontal:N \arraycolsep
+ \tikz [ remember~picture ]
+ \coordinate
+ (
+ nm - \int_use:N \g_@@_env_int -
+ col - \int_eval:n { \g_tmpa_int + 1 }
+ ) ;
}
- }
-% \end{macrocode}
-%
-% \bigskip
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_create_col_node:
- {
- \tikz [ remember~picture , overlay ]
- \coordinate
- [
- name = nm - \int_use:N \g_@@_env_int -
- col - \int_use:N \g_tmpa_int
- ] ;
+ \cr
}
% \end{macrocode}
%
@@ -4497,10 +5007,10 @@ c & c & b & a & e
{
\@@_begin_of_row:
% \end{macrocode}
-% The contents of the cell is constructed in the box |\l_tmpa_box| because we
+% The contents of the cell is constructed in the box |\l_@@_cell_box| because we
% have to compute some dimensions of this box.
% \begin{macrocode}
- \hbox_set:Nw \l_tmpa_box
+ \hbox_set:Nw \l_@@_cell_box
\c_math_toggle_token
\bool_if:NT \l_@@_small_bool \scriptstyle
% \end{macrocode}
@@ -4519,12 +5029,16 @@ c & c & b & a & e
}
{ \l_@@_code_for_first_col_tl }
}
+% \end{macrocode}
+% Be careful: despite this letter |l| the cells of the ``first column'' are
+% composed in a |R| manner since they are composed in a |\hbox_overlap_left:n|.
+% \begin{macrocode}
l
<
{
\c_math_toggle_token
\hbox_set_end:
- \@@_actualization_for_first_and_last_row:
+ \@@_update_for_first_and_last_row:
% \end{macrocode}
% We actualise the width of the ``first column'' because we will use this width
% after the construction of the array.
@@ -4533,7 +5047,7 @@ c & c & b & a & e
{
\dim_max:nn
\g_@@_width_first_col_dim
- { \box_wd:N \l_tmpa_box }
+ { \box_wd:N \l_@@_cell_box }
}
% \end{macrocode}
% The content of the cell is inserted in an overlapping position.
@@ -4564,10 +5078,10 @@ c & c & b & a & e
0
}
]
- { \box_use:N \l_tmpa_box } ;
+ { \box_use_drop:N \l_@@_cell_box } ;
\skip_horizontal:n
{
- \g_@@_left_delim_dim +
+ \l_@@_left_delim_dim +
\l_@@_left_margin_dim +
\l_@@_extra_left_margin_dim
}
@@ -4597,7 +5111,7 @@ c & c & b & a & e
% The contents of the cell is constructed in the box |\l_tmpa_box| because we
% have to compute some dimensions of this box.
% \begin{macrocode}
- \hbox_set:Nw \l_tmpa_box
+ \hbox_set:Nw \l_@@_cell_box
\c_math_toggle_token
\bool_if:NT \l_@@_small_bool \scriptstyle
% \end{macrocode}
@@ -4621,7 +5135,7 @@ c & c & b & a & e
{
\c_math_toggle_token
\hbox_set_end:
- \@@_actualization_for_first_and_last_row:
+ \@@_update_for_first_and_last_row:
% \end{macrocode}
% We actualise the width of the ``last column'' because we will use this width
% after the construction of the array.
@@ -4630,7 +5144,7 @@ c & c & b & a & e
{
\dim_max:nn
\g_@@_width_last_col_dim
- { \box_wd:N \l_tmpa_box }
+ { \box_wd:N \l_@@_cell_box }
}
\skip_horizontal:n { - 2 \arraycolsep }
% \end{macrocode}
@@ -4641,7 +5155,7 @@ c & c & b & a & e
{
\skip_horizontal:n
{
- \g_@@_right_delim_dim +
+ \l_@@_right_delim_dim +
\l_@@_right_margin_dim +
\l_@@_extra_right_margin_dim
}
@@ -4668,7 +5182,7 @@ c & c & b & a & e
\int_use:N \c@jCol
}
]
- { \box_use:N \l_tmpa_box } ;
+ { \box_use_drop:N \l_@@_cell_box } ;
}
}
}
@@ -4684,8 +5198,8 @@ c & c & b & a & e
\NewDocumentEnvironment { NiceArray } { }
{
\bool_set_true:N \l_@@_NiceArray_bool
- \str_if_empty:NT \g_@@_type_env_str
- { \str_gset:Nn \g_@@_type_env_str { environment ~ { NiceArray } } }
+ \str_if_empty:NT \g_@@_name_env_str
+ { \str_gset:Nn \g_@@_name_env_str { NiceArray } }
% \end{macrocode}
% We put . and . for the delimiters but, in fact, that doesn't matter because
% these arguments won't be used in |{NiceArrayWithDelims}| (because the flag
@@ -4704,8 +5218,8 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { pNiceArray } { }
{
- \str_if_empty:NT \g_@@_type_env_str
- { \str_gset:Nn \g_@@_type_env_str { environment ~ { pNiceArray } } }
+ \str_if_empty:NT \g_@@_name_env_str
+ { \str_gset:Nn \g_@@_name_env_str { pNiceArray } }
\@@_test_if_math_mode:
\NiceArrayWithDelims ( )
}
@@ -4715,8 +5229,8 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { bNiceArray } { }
{
- \str_if_empty:NT \g_@@_type_env_str
- { \str_gset:Nn \g_@@_type_env_str { environment ~ { bNiceArray } } }
+ \str_if_empty:NT \g_@@_name_env_str
+ { \str_gset:Nn \g_@@_name_env_str { bNiceArray } }
\@@_test_if_math_mode:
\NiceArrayWithDelims [ ]
}
@@ -4726,8 +5240,8 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { BNiceArray } { }
{
- \str_if_empty:NT \g_@@_type_env_str
- { \str_gset:Nn \g_@@_type_env_str { environment ~ { BNiceArray } } }
+ \str_if_empty:NT \g_@@_name_env_str
+ { \str_gset:Nn \g_@@_name_env_str { BNiceArray } }
\@@_test_if_math_mode:
\NiceArrayWithDelims \{ \}
}
@@ -4737,8 +5251,8 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { vNiceArray } { }
{
- \str_if_empty:NT \g_@@_type_env_str
- { \str_gset:Nn \g_@@_type_env_str { environment ~ { vNiceArray } } }
+ \str_if_empty:NT \g_@@_name_env_str
+ { \str_gset:Nn \g_@@_name_env_str { vNiceArray } }
\@@_test_if_math_mode:
\NiceArrayWithDelims | |
}
@@ -4748,8 +5262,8 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { VNiceArray } { }
{
- \str_if_empty:NT \g_@@_type_env_str
- { \str_gset:Nn \g_@@_type_env_str { environment ~ { VNiceArray } } }
+ \str_if_empty:NT \g_@@_name_env_str
+ { \str_gset:Nn \g_@@_name_env_str { VNiceArray } }
\@@_test_if_math_mode:
\NiceArrayWithDelims \| \|
}
@@ -4757,14 +5271,14 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% \subsection{The environment \{NiceMatrix\} and its variants}
+% \subsection*{The environment \{NiceMatrix\} and its variants}
%
% \begin{macrocode}
\cs_new_protected:Npn \@@_define_env:n #1
{
\NewDocumentEnvironment { #1 NiceMatrix } { ! O { } }
{
- \str_gset:Nn \g_@@_type_env_str { environment ~ { #1 NiceMatrix } }
+ \str_gset:Nn \g_@@_name_env_str { #1 NiceMatrix }
\keys_set:nn { NiceMatrix / NiceMatrix } { ##1 }
\begin { #1 NiceArray }
{
@@ -4792,7 +5306,7 @@ c & c & b & a & e
%
%
% \bigskip
-% \subsection{How to know whether a cell is ``empty''}
+% \subsection*{How to know whether a cell is ``empty''}
%
% The conditionnal |\@@_if_not_empty_cell:nnT| tests whether a cell is empty.
% The first two arguments must be LaTeX3 counters for the row and the column of
@@ -4893,49 +5407,22 @@ c & c & b & a & e
% \end{macrocode}
%
%
-% \subsection{After the construction of the array}
-%
-%
-% \begin{macrocode}
-\cs_new_protected:Nn \@@_after_array:
- {
- \int_compare:nNnTF \c@iRow > 0
- \@@_after_array_i:
- {
- \@@_error:n { Zero~row }
- \@@_restore_iRow_jCol:
- }
- }
-% \end{macrocode}
+% \bigskip
+% \subsection*{After the construction of the array}
%
%
% \medskip
-% We deactivate Tikz externalization (since we use Tikz pictures with the
-% options |overlay| and |remember picture|, there would be errors).
+% We deactivate Tikz externalization.
+%
+% Since we use Tikz pictures with the options |overlay| and |remember picture|,
+% there would be errors.
% \begin{macrocode}
-\cs_new_protected:Nn \@@_after_array_i:
+\cs_new_protected:Npn \@@_after_array:
{
\group_begin:
\cs_if_exist:NT \tikz@library@external@loaded
{ \tikzset { external / export = false } }
% \end{macrocode}
-% Now, the definition of |\c@jCol| and
-% |\g_@@_col_total_int| change: |\c@jCol| will be the number of
-% columns without the ``last column''; |\g_@@_col_total_int| will be the
-% number of columns with this ``last column''.\footnote{We remind that the
-% potential ``first column'' has the number~$0$.}
-% \begin{macrocode}
- \int_gset_eq:NN \c@jCol \g_@@_col_total_int
- \bool_if:nT \g_@@_last_col_found_bool { \int_gdecr:N \c@jCol }
-% \end{macrocode}
-%
-% We fix also the value of |\c@iRow| and |\g_@@_row_total_int| with the
-% same principle.
-% \begin{macrocode}
- \int_gset_eq:NN \g_@@_row_total_int \c@iRow
- \int_compare:nNnT \l_@@_last_row_int > { -1 }
- { \int_gsub:Nn \c@iRow \c_one_int }
-% \end{macrocode}
%
% In the user has used the option |last-row| without value, we write in the
% |aux| file the number of that last row for the next run.
@@ -4995,10 +5482,9 @@ c & c & b & a & e
% The booleans |\g_@@_medium_nodes_bool| and |\g_@@_large_nodes_bool| may be
% raised directly in cells of the array (for example in commands |\Block|) but
% also because the user has used the options |create-medium-nodes| and
-% |create-large-nodes| (these options raise the booleans
-% |\l_@@_medium_nodes_bool| and |\l_@@_large_nodes_bool| but theses booleans are
-% converted into the global version |\g_@@_medium_nodes_bool| and
-% |\g_@@_large_nodes_bool| before the creation of the array).
+% |create-large-nodes| (these options raise |\l_@@_medium_nodes_bool| and
+% |\l_@@_large_nodes_bool| but theses booleans are converted into the global
+% versions before the creation of the array).
% \begin{macrocode}
\bool_if:nTF \g_@@_medium_nodes_bool
{
@@ -5037,6 +5523,8 @@ c & c & b & a & e
\g_@@_Ldots_lines_tl
% \end{macrocode}
%
+%
+%
% \bigskip
% Now, the |code-after|.
% \begin{macrocode}
@@ -5049,17 +5537,71 @@ c & c & b & a & e
name~prefix = nm - \int_use:N \g_@@_env_int -
}
}
+ \bool_if:NT \l_@@_vlines_bool \@@_draw_vlines:
\cs_set_eq:NN \line \@@_line:nn
\g_@@_code_after_tl
\tl_gclear:N \g_@@_code_after_tl
\group_end:
- \str_gclear:N \g_@@_type_env_str
+ \str_gclear:N \g_@@_name_env_str
\@@_restore_iRow_jCol:
}
% \end{macrocode}
%
+% \bigskip
% \begin{macrocode}
-\cs_new_protected:Nn \@@_restore_iRow_jCol:
+\cs_new_protected:Npn \@@_draw_vlines:
+ {
+ \group_begin:
+% \end{macrocode}
+% The command |\CT@arc@| is a command of color from \pkg{colortbl}.
+% \begin{macrocode}
+ \bool_if:NT \c_@@_colortbl_loaded_bool \CT@arc@
+ \begin { tikzpicture } [ line~width = \arrayrulewidth ]
+% \end{macrocode}
+% First, we compute in |\l_tmpa_dim| the height of the rules we have to draw.
+% \begin{macrocode}
+ \@@_extract_coords:w ( row - 1 )
+ \dim_set_eq:NN \l_tmpa_dim \pgf@y
+ \@@_extract_coords:w ( row - \int_eval:n { \c@iRow + 1 } )
+ \dim_set:Nn \l_tmpa_dim { \l_tmpa_dim - \pgf@y }
+% \end{macrocode}
+% We translate vertically to take into account the potential ``last row''.
+% \begin{macrocode}
+ \dim_zero:N \l_tmpb_dim
+ \int_compare:nNnT \l_@@_last_row_int > { -1 }
+ {
+ \dim_set:Nn \l_tmpb_dim
+ { \g_@@_dp_last_row_dim + \g_@@_ht_last_row_dim }
+% \end{macrocode}
+% We adjust the value of |\l_tmpa_dim| by the width of the horizontal rule just
+% before the ``last row''.
+% \begin{macrocode}
+ \@@_extract_coords:w ( row - \int_eval:n { \c@iRow + 1 } )
+ \dim_add:Nn \l_tmpa_dim \pgf@y
+ \@@_extract_coords:w ( row - \int_eval:n { \g_@@_row_total_int + 1 } )
+ \dim_sub:Nn \l_tmpa_dim \pgf@y
+ \dim_sub:Nn \l_tmpa_dim \l_tmpb_dim
+ }
+% \end{macrocode}
+%
+% Now, we can draw the lines with a loop.
+% \begin{macrocode}
+ \int_step_inline:nnn
+ { \bool_if:NTF \l_@@_NiceArray_bool 1 2 }
+ { \bool_if:NTF \l_@@_NiceArray_bool { \c@jCol + 1 } \c@jCol }
+ {
+ \draw ( col - ##1 ) ++ ( 0 , \dim_use:N \l_tmpb_dim )
+ -- ++ ( 0 , \dim_use:N \l_tmpa_dim ) ;
+ }
+ \end { tikzpicture }
+ \group_end:
+ }
+% \end{macrocode}
+%
+%
+% \bigskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_restore_iRow_jCol:
{
\cs_if_exist:NT \theiRow { \int_gset_eq:NN \c@iRow \l_@@_save_iRow_int }
\cs_if_exist:NT \thejCol { \int_gset_eq:NN \c@jCol \l_@@_save_jCol_int }
@@ -5076,7 +5618,7 @@ c & c & b & a & e
% a & a+b & a+b+c
% \end{pNiceMatrix}\]
% For a closed extremity, we use the normal node and for a open one, we use the
-% ``medium node'' or, if it exists, the |w|-node.
+% ``medium node'' or the |col|-node.
% \[ \begin{pNiceMatrix}[create-medium-nodes,
% code-after = {\begin{tikzpicture}
% \node [highlight = (2-1)] {} ;
@@ -5114,7 +5656,7 @@ c & c & b & a & e
% \end{itemize}
%
% \begin{macrocode}
-\cs_new_protected:Nn \@@_find_extremities_of_line:nnnn
+\cs_new_protected:Npn \@@_find_extremities_of_line:nnnn #1 #2 #3 #4
{
% \end{macrocode}
% First, we declare the current cell as ``dotted'' because we forbide
@@ -5203,9 +5745,8 @@ c & c & b & a & e
% \end{macrocode}
% We test wether the initial extremity of the dotted line is an implicit cell
% already dotted (by another dotted line). In this case, we can't draw the line
-% because we have no Tikz node at the extremity of the arrow (and we can't use
-% the ``medium node'' or the ``large node'' because we should use the normal
-% node since the extremity is not open).
+% because we have no Tikz node at the extremity of the arrow.
+%
% \begin{macrocode}
\cs_if_free:cT
{
@@ -5275,11 +5816,9 @@ c & c & b & a & e
}
}
% \end{macrocode}
-% We test wether the initial extremity of the dotted line is an implicit cell
+% We test whether the initial extremity of the dotted line is an implicit cell
% already dotted (by another dotted line). In this case, we can't draw the line
-% because we have no Tikz node at the extremity of the arrow (and we can't use
-% the ``medium node'' or the ``large node'' because we should use the normal
-% node since the extremity is not open).
+% because we have no Tikz node at the extremity of the arrow.
% \begin{macrocode}
\cs_if_free:cT
{
@@ -5298,12 +5837,12 @@ c & c & b & a & e
}
% \end{macrocode}
% If we have at least one open extremity, we create the ``medium nodes'' in the
-% matrix\footnote{We should change this. Indeed, for an open extremity of an
-% \emph{horizontal} dotted line, we use the |w|-node, if, it exists, and not the
-% ``medium node''.}. We remind that, when used once, the command
-% |\@@_create_medium_nodes:| becomes no-op in the current TeX group.
+% matrix but we should change that because, for an open extremity on the left or
+% the right side of the array, we actually use the |col|-nodes.
+% We remind that, when used once, the command |\@@_create_medium_nodes:| becomes
+% no-op in the current TeX group.
% \begin{macrocode}
- \bool_if:nT \l_@@_initial_open_bool \@@_create_medium_nodes:
+ \bool_if:NT \l_@@_initial_open_bool \@@_create_medium_nodes:
\bool_if:NT \l_@@_final_open_bool \@@_create_medium_nodes:
}
% \end{macrocode}
@@ -5321,25 +5860,31 @@ c & c & b & a & e
% The two arguments of the command |\@@_retrieve_coords:nn| are the suffix and
% the anchor that must be used for the two nodes.
%
-% The coordinates are stored in |\g_@@_x_initial_dim|, |\g_@@_y_initial_dim|,
-% |\g_@@_x_final_dim|, |\g_@@_y_final_dim|. These variables are global for
-% technical reasons: we have to do an affectation in an environment
-% |{tikzpicture}|.
+% The coordinates are stored in four variables:
+% \begin{itemize}
+% \item |\g_@@_x_initial_dim|
+% \item |\g_@@_y_initial_dim|
+% \item |\g_@@_x_final_dim|
+% \item |\g_@@_y_final_dim|.
+% \end{itemize}
+%
+% These variables are global for technical reasons: we have to do an affectation
+% in an environment |{tikzpicture}|.
% \begin{macrocode}
-\cs_new_protected:Nn \@@_retrieve_coords:nn
+\cs_new_protected:Npn \@@_retrieve_coords:nn #1 #2
{
\dim_gzero_new:N \g_@@_x_initial_dim
\dim_gzero_new:N \g_@@_y_initial_dim
\dim_gzero_new:N \g_@@_x_final_dim
\dim_gzero_new:N \g_@@_y_final_dim
\begin { tikzpicture } [ remember~picture ]
- \tikz@parse@node \pgfutil@firstofone
+ \@@_extract_coords:w
( nm - \int_use:N \g_@@_env_int -
\int_use:N \l_@@_initial_i_int -
\int_use:N \l_@@_initial_j_int #1 )
\dim_gset:Nn \g_@@_x_initial_dim \pgf@x
\dim_gset:Nn \g_@@_y_initial_dim \pgf@y
- \tikz@parse@node \pgfutil@firstofone
+ \@@_extract_coords:w
( nm - \int_use:N \g_@@_env_int -
\int_use:N \l_@@_final_i_int -
\int_use:N \l_@@_final_j_int #2 )
@@ -5351,96 +5896,69 @@ c & c & b & a & e
% \end{macrocode}
%
% \interitem
-% For the horizontal lines with open extremities, we must take into account the
-% ``|col|'' nodes created in the environments which have a fixed width of the
-% columns. The following command will recompute the $x$-value of the extremities
-% in this case (erasing the value computed in |\@@_retrieve_coords:nn|).
+% For the horizontal lines with open extremities, we take into account the
+% ``|col|'' nodes. The following command will recompute the $x$-value of the
+% extremities in this case (erasing the value computed in
+% |\@@_retrieve_coords:nn|).
% \begin{macrocode}
-\cs_new_protected:Nn \@@_adjust_with_col_nodes:
+\cs_new_protected:Npn \@@_adjust_with_col_nodes:
{
\bool_if:NT \l_@@_initial_open_bool
{
- \cs_if_exist:cT
- { pgf@sh@ns@nm - \int_use:N \g_@@_env_int - col - 0 }
- {
- \begin { tikzpicture } [ remember~picture ]
- \tikz@parse@node \pgfutil@firstofone
- ( nm - \int_use:N \g_@@_env_int - col - 0 )
- \dim_gset:Nn \g_@@_x_initial_dim \pgf@x
- \end { tikzpicture }
- }
- }
+ \begin { tikzpicture } [ remember~picture ]
+ \@@_extract_coords:w ( nm - \int_use:N \g_@@_env_int - col - 1 )
+ \dim_gset:Nn \g_@@_x_initial_dim \pgf@x
+ \end { tikzpicture }
+ }
\bool_if:NT \l_@@_final_open_bool
{
- \cs_if_exist:cT
- {
- pgf@sh@ns@nm - \int_use:N \g_@@_env_int - col -
- \int_use:N \c@jCol
- }
- {
- \begin { tikzpicture } [ remember~picture ]
- \tikz@parse@node \pgfutil@firstofone
- ( nm - \int_use:N \g_@@_env_int - col - \int_use:N \c@jCol )
- \dim_gset:Nn \g_@@_x_final_dim \pgf@x
- \end { tikzpicture }
- }
- }
+ \begin { tikzpicture } [ remember~picture ]
+ \@@_extract_coords:w
+ ( nm - \int_use:N \g_@@_env_int - col - \int_eval:n { \c@jCol + 1 } )
+ \dim_gset:Nn \g_@@_x_final_dim \pgf@x
+ \end { tikzpicture }
+ }
}
% \end{macrocode}
%
% \interitem
% \begin{macrocode}
-\cs_new_protected:Nn \@@_draw_Ldots:nn
+\cs_new_protected:Npn \@@_draw_Ldots:nn #1 #2
{
\cs_if_free:cT { @@ _ dotted _ #1 - #2 }
{
\bool_set_false:N \l_@@_impossible_line_bool
- \@@_find_extremities_of_line:nnnn { #1 } { #2 } 0 \c_one_int
+ \@@_find_extremities_of_line:nnnn { #1 } { #2 } 0 1
\bool_if:NF \l_@@_impossible_line_bool \@@_actually_draw_Ldots:
}
}
% \end{macrocode}
%
% \medskip
-% The command |\@@_actually_draw_Ldots:| draws the |Ldots| line using
-% |\l_@@_initial_i_int|, |\l_@@_initial_j_int|, |\l_@@_initial_open_bool|,
-% |\l_@@_final_i_int|, |\l_@@_final_j_int| and |\l_@@_final_open_bool|. We have
-% a dedicated command because if is used also by |\Hdotsfor|.
+% The command |\@@_actually_draw_Ldots:| draws the |Ldots| line using the
+% following variables:
+% \begin{itemize}
+% \item |\l_@@_initial_i_int|
+% \item |\l_@@_initial_j_int|
+% \item |\l_@@_initial_open_bool|
+% \item |\l_@@_final_i_int|
+% \item |\l_@@_final_j_int|
+% \item |\l_@@_final_open_bool|.
+% \end{itemize}
+%
+% We have a dedicated command because it is used also by |\Hdotsfor|.
% \begin{macrocode}
-\cs_new_protected:Nn \@@_actually_draw_Ldots:
+\cs_new_protected:Npn \@@_actually_draw_Ldots:
{
\@@_retrieve_coords:xx
{
\bool_if:NTF \l_@@_initial_open_bool
- {
-% \end{macrocode}
-% If a |w|-node exists we use the |w|-node for the extremity.
-% \begin{macrocode}
- \cs_if_exist:cTF
- {
- pgf@sh@ns@nm
- - \int_use:N \g_@@_env_int
- - \int_use:N \l_@@_initial_i_int
- - \int_use:N \l_@@_initial_j_int - w
- }
- { - w.base~west }
- { - medium.base~west }
- }
- { .base~east }
+ { - medium.base~west }
+ { .base~east }
}
{
\bool_if:NTF \l_@@_final_open_bool
- {
- \cs_if_exist:cTF
- {
- pgf@sh@ns@nm
- - \int_use:N \g_@@_env_int
- - \int_use:N \l_@@_final_i_int
- - \int_use:N \l_@@_final_j_int - w
- }
- { - w.base~east }
- { - medium.base~east }
- }
+ { - medium.base~east }
{ .base~west }
}
\@@_adjust_with_col_nodes:
@@ -5460,43 +5978,23 @@ c & c & b & a & e
%
% \bigskip
% \begin{macrocode}
-\cs_new_protected:Nn \@@_draw_Cdots:nn
+\cs_new_protected:Npn \@@_draw_Cdots:nn #1 #2
{
\cs_if_free:cT { @@ _ dotted _ #1 - #2 }
{
\bool_set_false:N \l_@@_impossible_line_bool
- \@@_find_extremities_of_line:nnnn { #1 } { #2 } 0 \c_one_int
+ \@@_find_extremities_of_line:nnnn { #1 } { #2 } 0 1
\bool_if:NF \l_@@_impossible_line_bool
{
\@@_retrieve_coords:xx
{
\bool_if:NTF \l_@@_initial_open_bool
- {
- \cs_if_exist:cTF
- {
- pgf@sh@ns@nm
- - \int_use:N \g_@@_env_int
- - \int_use:N \l_@@_initial_i_int
- - \int_use:N \l_@@_initial_j_int - w
- }
- { - w.mid~west }
- { - medium.mid~west }
- }
+ { - medium.mid~west }
{ .mid~east }
}
{
\bool_if:NTF \l_@@_final_open_bool
- {
- \cs_if_exist:cTF
- {
- pgf@sh@ns@nm
- - \int_use:N \g_@@_env_int
- - \int_use:N \l_@@_final_i_int
- - \int_use:N \l_@@_final_j_int - w
- }
- { - w.mid~east }
- { - medium.mid~east }
- }
+ { - medium.mid~east }
{ .mid~west }
}
\@@_adjust_with_col_nodes:
@@ -5516,12 +6014,12 @@ c & c & b & a & e
% command |\@@_retrieve_coords:nn| in the arguments |T| and |F| of the
% \pkg{expl3} commands (why?).
% \begin{macrocode}
-\cs_new_protected:Nn \@@_draw_Vdots:nn
+\cs_new_protected:Npn \@@_draw_Vdots:nn #1 #2
{
\cs_if_free:cT { @@ _ dotted _ #1 - #2 }
{
\bool_set_false:N \l_@@_impossible_line_bool
- \@@_find_extremities_of_line:nnnn { #1 } { #2 } \c_one_int 0
+ \@@_find_extremities_of_line:nnnn { #1 } { #2 } 1 0
\bool_if:NF \l_@@_impossible_line_bool
{
\@@_retrieve_coords:xx
@@ -5578,12 +6076,12 @@ c & c & b & a & e
% default, we parallelize the diagonals lines. The first diagonal line is drawn
% and then, all the other diagonal lines are drawn parallel to the first one.
% \begin{macrocode}
-\cs_new_protected:Nn \@@_draw_Ddots:nn
+\cs_new_protected:Npn \@@_draw_Ddots:nn #1 #2
{
\cs_if_free:cT { @@ _ dotted _ #1 - #2 }
{
\bool_set_false:N \l_@@_impossible_line_bool
- \@@_find_extremities_of_line:nnnn { #1 } { #2 } \c_one_int \c_one_int
+ \@@_find_extremities_of_line:nnnn { #1 } { #2 } 1 1
\bool_if:NF \l_@@_impossible_line_bool
{
\@@_retrieve_coords:xx
@@ -5609,7 +6107,7 @@ c & c & b & a & e
% We test if the diagonal line is the first one (the counter |\l_@@_ddots_int|
% is created for this usage).
% \begin{macrocode}
- \int_compare:nNnTF \l_@@_ddots_int = \c_one_int
+ \int_compare:nNnTF \l_@@_ddots_int = 1
% \end{macrocode}
% If the diagonal line is the first one, we have no adjustment of the line to do
% but we store the $\Delta_x$ and the $\Delta_y$ of the line because these
@@ -5648,7 +6146,7 @@ c & c & b & a & e
% \bigskip
% We draw the |\Iddots| diagonals in the same way.
% \begin{macrocode}
-\cs_new_protected:Nn \@@_draw_Iddots:nn
+\cs_new_protected:Npn \@@_draw_Iddots:nn #1 #2
{
\cs_if_free:cT { @@ _ dotted _ #1 - #2 }
{
@@ -5670,7 +6168,7 @@ c & c & b & a & e
\bool_if:NT \l_@@_parallelize_diags_bool
{
\int_incr:N \l_@@_iddots_int
- \int_compare:nNnTF \l_@@_iddots_int = \c_one_int
+ \int_compare:nNnTF \l_@@_iddots_int = 1
{
\dim_set:Nn \l_@@_delta_x_two_dim
{ \g_@@_x_final_dim - \g_@@_x_initial_dim }
@@ -5705,7 +6203,7 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% \subsection{The actual instructions for drawing the dotted line with Tikz}
+% \subsection*{The actual instructions for drawing the dotted line with Tikz}
%
% The command |\@@_draw_tikz_line:| draws the line using four implicit
% arguments:
@@ -5715,7 +6213,7 @@ c & c & b & a & e
% first affectation was in an instruction |\tikz|.
%
% \begin{macrocode}
-\cs_new_protected:Nn \@@_draw_tikz_line:
+\cs_new_protected:Npn \@@_draw_tikz_line:
{
% \end{macrocode}
% The dimension |\l_@@_l_dim| is the length $\ell$ of the line to draw. We use
@@ -5777,7 +6275,7 @@ c & c & b & a & e
\int_set:Nn \l_tmpa_int
{
\dim_ratio:nn
- { \l_@@_l_dim - ( \l_@@_dotted_lines_margin_dim * 2 ) }
+ { \l_@@_l_dim - ( 2 \l_@@_dotted_lines_margin_dim ) }
\l_@@_inter_dots_dim
}
}
@@ -5811,10 +6309,9 @@ c & c & b & a & e
{ \bool_if:NTF \l_@@_final_open_bool 2 1 }
}
% \end{macrocode}
-% In the loop over the dots (|\int_step_inline:nnnn|), the dimensions
-% |\g_@@_x_initial_dim| and |\g_@@_y_initial_dim| will be used for the
-% coordinates of the dots. But, before the loop, we must move until the
-% first dot.
+% In the loop over the dots, the dimensions |\g_@@_x_initial_dim| and
+% |\g_@@_y_initial_dim| will be used for the coordinates of the dots. But,
+% before the loop, we must move until the first dot.
%
% \begin{macrocode}
\dim_gadd:Nn \g_@@_x_initial_dim
@@ -5822,20 +6319,16 @@ c & c & b & a & e
( \g_@@_x_final_dim - \g_@@_x_initial_dim ) *
\dim_ratio:nn
{ \l_@@_l_dim - \l_@@_inter_dots_dim * \l_tmpa_int }
- { \l_@@_l_dim * 2 }
+ { 2 \l_@@_l_dim }
* \l_tmpb_int
}
-% \end{macrocode}
-% (In a multiplication of a dimension and an integer, the integer must always be
-% put in second position.)
-% \begin{macrocode}
\dim_gadd:Nn \g_@@_y_initial_dim
{
( \g_@@_y_final_dim - \g_@@_y_initial_dim ) *
\dim_ratio:nn
{ \l_@@_l_dim - \l_@@_inter_dots_dim * \l_tmpa_int }
- { \l_@@_l_dim * 2 } *
- \l_tmpb_int
+ { 2 \l_@@_l_dim }
+ * \l_tmpb_int
}
\begin { tikzpicture } [ overlay ]
\int_step_inline:nnn 0 \l_tmpa_int
@@ -5852,7 +6345,8 @@ c & c & b & a & e
}
% \end{macrocode}
%
-% \subsection{User commands available in the new environments}
+% \bigskip
+% \subsection*{User commands available in the new environments}
%
% We give new names for the commands |\ldots|, |\cdots|, |\vdots| and |\ddots|
% because these commands will be redefined (if the option |renew-dots| is used).
@@ -5865,12 +6359,10 @@ c & c & b & a & e
% \end{macrocode}
%
% \interitem
-% The command |\@@_add_to_empty_cells:| adds the current cell to
-% |\g_@@_empty_cells_seq| which is the list of the empty cells (the cells
-% explicitly declared ``empty'': there may be, of course, other empty cells in
-% the matrix).
+% The command |\@@_add_to_empty_cells:| declares the current cell as empty. For
+% efficiency, this is done by creating a special control sequence.
% \begin{macrocode}
-\cs_new_protected:Nn \@@_add_to_empty_cells:
+\cs_new_protected:Npn \@@_add_to_empty_cells:
{
\cs_gset:cpx
{ @@ _ empty _ \int_use:N \c@iRow - \int_use:N \c@jCol }
@@ -5939,7 +6431,7 @@ c & c & b & a & e
% \bigskip
% The command |\@@_Hspace:| will be linked to |\hspace| in |{NiceArray}|.
% \begin{macrocode}
-\cs_new_protected:Nn \@@_Hspace:
+\cs_new_protected:Npn \@@_Hspace:
{
\@@_add_to_empty_cells:
\hspace
@@ -5967,14 +6459,15 @@ c & c & b & a & e
%
%
% \bigskip
-% The command |\@@_Hdotsfor| will be linked to |\Hdotsfor| in |{NiceArray}|.
-% This command uses an optional argument like |\hdotsfor| but this argument is
-% discarded (in |\hdotsfor|, this argument is used for fine tuning of the space
-% between two consecutive dots). Tikz nodes are created for all the cells of
-% the array, even the implicit cells of the |\Hdotsfor|.
+% The command |\@@_Hdotsfor| will be linked to |\Hdotsfor| in
+% |{NiceArrayWithDelims}|. This command uses an optional argument (as does
+% |\hdotsfor|) but this argument is discarded (in |\hdotsfor|, this argument is
+% used for fine tuning of the space between two consecutive dots). Tikz nodes
+% are created for all the cells of the array, even the implicit cells of the
+% |\Hdotsfor|.
%
% \medskip
-% This command must not be protected since it begins with |\multicolumn|.
+% This command must \emph{not} be protected since it begins with |\multicolumn|.
% \begin{macrocode}
\cs_new:Npn \@@_Hdotsfor:
{
@@ -5984,7 +6477,7 @@ c & c & b & a & e
% \end{macrocode}
%
% The command |\@@_Hdotsfor_i| is defined with the tools of \pkg{xparse} because
-% it has an optionnal argument. Note that such a command defined by
+% it has an optional argument. Note that such a command defined by
% |\NewDocumentCommand| is protected and that's why we have put the
% |\multicolumn| before (in the definition of |\@@_Hdotsfor:|).
% \begin{macrocode}
@@ -5998,10 +6491,10 @@ c & c & b & a & e
{
\tl_gput_right:Nx \g_@@_Hdotsfor_lines_tl
{
- \@@_draw_Hdotsfor:nnn
- { \int_use:N \c@iRow }
+ \@@_Hdotsfor:nnn
+ { \int_use:N \c@iRow }
{ \int_use:N \c@jCol }
- { #2 }
+ { #2 }
}
\prg_replicate:nn { #2 - 1 } { & \multicolumn { 1 } { C } { } }
}
@@ -6010,7 +6503,7 @@ c & c & b & a & e
%
% \medskip
% \begin{macrocode}
-\cs_new_protected:Nn \@@_draw_Hdotsfor:nnn
+\cs_new_protected:Npn \@@_Hdotsfor:nnn #1 #2 #3
{
\bool_set_false:N \l_@@_initial_open_bool
\bool_set_false:N \l_@@_final_open_bool
@@ -6032,7 +6525,7 @@ c & c & b & a & e
\@@_if_not_empty_cell:nnTF \l_@@_initial_i_int \l_tmpa_int
{ \int_set:Nn \l_@@_initial_j_int { #2 - 1 } }
{
- \int_set:Nn \l_@@_initial_j_int {#2}
+ \int_set:Nn \l_@@_initial_j_int { #2 }
\bool_set_true:N \l_@@_initial_open_bool
}
}
@@ -6052,8 +6545,23 @@ c & c & b & a & e
}
\bool_if:nT { \l_@@_initial_open_bool || \l_@@_final_open_bool }
\@@_create_medium_nodes:
- \@@_actually_draw_Ldots:
% \end{macrocode}
+%
+% \medskip
+% The command |\@@_adjust_with_col_nodes:| is used in the command
+% |\@@_actually_draw_Ldots:| in order to recompute the $x$-value of
+% the initial point and the $x$-value of the final point with the exact position
+% of the left side and the right side of the array (these informations are in
+% the |col|-node. However, we don't want this operation with the dotted lines
+% drawn by |\Hdotsfor|. That's why we deactivate locally this command.
+% \begin{macrocode}
+ \group_begin:
+ \cs_set:Npn \@@_adjust_with_col_nodes: { }
+ \@@_actually_draw_Ldots:
+ \group_end:
+% \end{macrocode}
+%
+% \medskip
% We declare all the cells concerned by the |\Hdotsfor| as ``dotted'' (for the
% dotted lines created by |\Cdots|, |\Ldots|, etc., this job is done by
% |\@@_find_extremities_of_line:nnnn|). This declaration is done by defining a
@@ -6065,11 +6573,28 @@ c & c & b & a & e
% \end{macrocode}
%
%
+% \bigskip
+% The control sequence |\@@_rotate:| will be linked to |\rotate| in
+% |{NiceArrayWithDelims}|.
+%
+% The command will exit three levels of groups in order
+% to execute the command
+%
+% \qquad ``|\box_rotate:Nn \l_@@_cell_box { 90 }|''
+%
+% just after the construction of the box |\l_@@_cell_box|.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_rotate: { \group_insert_after:N \@@_rotate_i: }
+\cs_new_protected:Npn \@@_rotate_i: { \group_insert_after:N \@@_rotate_ii: }
+\cs_new_protected:Npn \@@_rotate_ii: { \group_insert_after:N \@@_rotate_iii: }
+\cs_new_protected:Npn \@@_rotate_iii: { \box_rotate:Nn \l_@@_cell_box { 90 } }
+% \end{macrocode}
%
-% \subsection{The command \textbackslash line accessible in code-after}
+% \bigskip
+% \subsection*{The command \textbackslash line accessible in code-after}
%
% In the |code-after|, the command |\@@_line:nn| will be linked to |\line|. This
-% command takes two arguments which are the specification of two cells in the
+% command takes two arguments which are the specifications of two cells in the
% array (in the format $i$-$j$) and draws a dotted line between these cells.
%
% \medskip
@@ -6101,7 +6626,7 @@ c & c & b & a & e
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_protected:Nn \@@_line_i:nn
+\cs_new_protected:Npn \@@_line_i:nn #1 #2
{
\bool_if:NF \c_@@_draft_bool
{
@@ -6120,10 +6645,10 @@ c & c & b & a & e
{
\begin { tikzpicture }
\path~(#1)~--~(#2)~node[at~start]~(i)~{}~node[at~end]~(f)~{} ;
- \tikz@parse@node \pgfutil@firstofone ( i )
+ \@@_extract_coords:w ( i )
\dim_gset:Nn \g_@@_x_initial_dim \pgf@x
\dim_gset:Nn \g_@@_y_initial_dim \pgf@y
- \tikz@parse@node \pgfutil@firstofone ( f )
+ \@@_extract_coords:w ( f )
\dim_gset:Nn \g_@@_x_final_dim \pgf@x
\dim_gset:Nn \g_@@_y_final_dim \pgf@y
\end { tikzpicture }
@@ -6142,251 +6667,93 @@ c & c & b & a & e
% this command because they have to do other settings (for example, the diagonal
% lines must be parallelized).
%
-% \bigskip
-% \subsection{The commands to draw dotted lines to separate columns and rows}
%
-% The command |\hdottedline| draws an horizontal dotted line to separate two
-% rows. Similarly, the letter ``:'' in the preamble draws a vertical dotted line
-% (the letter can be changed with the option |letter-for-dotted-lines|). Both
-% mechanisms write instructions in the |code-after|. The actual instructions in
-% the |code-after| use the commands |\@@_hdottedline:n| and |\@@_vdottedline:n|.
-%
% \bigskip
-% We want the horizontal lines at the same position\footnote{In fact, almost the
-% same position because of the width of the line: the width of a dotted line is
-% not the same as the width of a line created by |\hline|.} as the line created
-% by |\hline| (or |\hdashline| of \pkg{arydshln}). That's why we use a
-% |\noalign| to insert a box with a |\dotfill|.
+% \subsection*{The vertical rules}
%
-%
-%
-% \medskip
-% Some extensions, like the extension \pkg{doc}, do a redefinition of the
-% command |\dotfill| of LaTeX. That's why we define a command |\@@_dotfill:| as
-% we wish. We test whether we are in draft mode because, in this case, we don't
-% draw the dotted lines.
-% \begin{macrocode}
-\bool_if:NTF \c_@@_draft_bool
- { \cs_set_eq:NN \@@_dotfill: \prg_do_nothing: }
- {
- \cs_set:Npn \@@_dotfill:
- {
-% \end{macrocode}
-% If the option |small| is used, we change the space between dots (we can't
-% use |\l_@@_inter_dots_dim| which will be set after the construction of the
-% array). We can't put the |\bool_if:NT| in the first argument of
-% |\hbox_to_wd:nn| because |\cleaders| is a special TeX primitive.
+% We give to the user the possibility to define new types of columns (with
+% |\newcolumntype| of \pkg{array}) for special vertical rules (\emph{e.g.} rules
+% thicker than the standard ones) which will not extend in the potential
+% exterior rows of the array.
+%
+% We provide the command |\OnlyMainNiceMatrix| in that goal. However, that
+% command must be no-op outside the environments of \pkg{nicematrix} (and so the
+% user will be allowed to use the same new type of column in the environments
+% of \pkg{nicematrix} and in the standard environments of \pkg{array}).
+%
+% That's why we provide first a global definition of |\OnlyMainNiceMatrix|.
% \begin{macrocode}
- \bool_if:NT \l_@@_small_bool
- { \dim_set:Nn \l_@@_inter_dots_dim { 0.25 em } }
- \cleaders
- \hbox_to_wd:nn
- { \l_@@_inter_dots_dim }
- {
- \c_math_toggle_token
- \bool_if:NT \l_@@_small_bool \scriptstyle
- \hss . \hss
- \c_math_toggle_token
- }
- \hfill
- }
- }
+\cs_set_eq:NN \OnlyMainNiceMatrix \use:n
% \end{macrocode}
-%
-% This command must \emph{not} be protected because it starts with |\noalign|.
+%
+% \medskip
+% Another definition of |\OnlyMainNiceMatrix| will be linked to the command in
+% the environments of \pkg{nicematrix}. Here is that definition, called
+% |\@@_OnlyMainNiceMatrix:n|.
+%
% \begin{macrocode}
-\cs_new:Npn \@@_hdottedline:
- {
- \noalign
+\cs_new_protected:Npn \@@_OnlyMainNiceMatrix:n #1
+ {
+ \int_compare:nNnTF \l_@@_first_col_int = 0
+ { \@@_OnlyMainNiceMatrix_i:n { #1 } }
{
- \bool_gset_true:N \g_@@_large_nodes_bool
- \cs_if_exist:cTF { @@_width_ \int_use:N \g_@@_env_int }
- { \dim_set_eq:Nc \l_tmpa_dim { @@_width_ \int_use:N \g_@@_env_int } }
- { \dim_set:Nn \l_tmpa_dim { 5 mm } }
- \hbox_overlap_right:n
+ \int_compare:nNnTF \c@jCol = 0
{
- \bool_if:nT
- {
- \l_@@_NiceArray_bool
- &&
- ! \l_@@_exterior_arraycolsep_bool
- &&
- \int_compare_p:nNn \l_@@_first_col_int > 0
- }
- { \skip_horizontal:n { - \arraycolsep } }
- \hbox_to_wd:nn
- {
- \l_tmpa_dim + 2 \arraycolsep
- - \l_@@_left_margin_dim - \l_@@_right_margin_dim
- }
- \@@_dotfill:
+ \int_compare:nNnF \c@iRow = { -1 }
+ { \int_compare:nNnF \c@iRow = { \l_@@_last_row_int - 1 } { #1 } }
}
- }
- }
+ { \@@_OnlyMainNiceMatrix_i:n { #1 } }
+ }
+ }
% \end{macrocode}
+% This definition may seem complicated by we must remind that the number of row
+% |\c@iRow| is incremented in the first cell of the row, \emph{after} an
+% potential vertical rule on the left side of the first cell.
%
-% \bigskip
-% \begin{macrocode}
-\cs_new_protected:Nn \@@_vdottedline:n
+% \smallskip
+% The command |\@@_OnlyMainNiceMatrix_i:n| is only a short-cut which is used
+% twice in the above command. This command must \emph{not} be protected.
+% % \begin{macrocode}
+\cs_new_protected:Npn \@@_OnlyMainNiceMatrix_i:n #1
{
-% \end{macrocode}
-% We should allow the letter ``|:|'' in the first position of the preamble
-% but that would need a special programmation.
-% \begin{macrocode}
- \int_compare:nNnTF #1 = 0
- { \@@_error:n { Use~of~:~in~first~position } }
- {
- \bool_if:NF \c_@@_draft_bool
- {
- \dim_zero_new:N \g_@@_x_initial_dim
- \dim_zero_new:N \g_@@_y_initial_dim
- \dim_zero_new:N \g_@@_x_final_dim
- \dim_zero_new:N \g_@@_y_final_dim
- \bool_set_true:N \l_@@_initial_open_bool
- \bool_set_true:N \l_@@_final_open_bool
-% \end{macrocode}
-% If a ``|col|'' node exists (if the array has been constructed with a fixed
-% width of column), we use it.
-% \begin{macrocode}
- \cs_if_exist:cTF
- { pgf@sh@ns@nm -\int_use:N \g_@@_env_int - col - #1 }
- {
- \begin { tikzpicture } [ remember~picture ]
- \tikz@parse@node\pgfutil@firstofone
- ( col - #1 )
- \dim_gset:Nn \g_@@_x_initial_dim \pgf@x
- \dim_gset:Nn \g_@@_x_final_dim \pgf@x
- \dim_gset:Nn \g_@@_y_final_dim \pgf@y
- \end { tikzpicture }
- \dim_gset:Nn \g_@@_y_initial_dim { - \c_max_dim }
- \int_step_inline:nn \c@jCol
- {
- \begin { tikzpicture } [ remember~picture ]
- \tikz@parse@node\pgfutil@firstofone
- ( 1 - ##1 . north~east )
- \dim_gset:Nn \g_@@_y_initial_dim
- { \dim_max:nn \g_@@_y_initial_dim \pgf@y }
- \end { tikzpicture }
- }
- }
-% \end{macrocode}
-% If not, we use the ``large node''.
-% \begin{macrocode}
- {
- \begin { tikzpicture } [ remember~picture ]
- \tikz@parse@node\pgfutil@firstofone
- ( 1 - #1 - large .north~east )
- \dim_gset:Nn \g_@@_x_initial_dim \pgf@x
- \dim_gset:Nn \g_@@_y_initial_dim \pgf@y
- \tikz@parse@node\pgfutil@firstofone
- ( \int_use:N \c@iRow - #1 - large .south~east )
- \dim_gset:Nn \g_@@_x_final_dim \pgf@x
- \dim_gset:Nn \g_@@_y_final_dim \pgf@y
- \end { tikzpicture }
-% \end{macrocode}
-% However, if the previous column was constructed with a letter |w|, we use the
-% |w|-nodes (and we erase the previous computation of the $x$-value of the
-% vertical dotted line).
-% \begin{macrocode}
- \cs_if_exist:cT
- { pgf@sh@ns@nm -\int_use:N \g_@@_env_int - 1 - #1 - w }
- {
- \begin { tikzpicture } [ remember~picture ]
- \tikz@parse@node\pgfutil@firstofone
- ( 1 - #1 - w .north~east )
- \dim_gset:Nn \g_@@_x_initial_dim \pgf@x
- \tikz@parse@node\pgfutil@firstofone
- ( \int_use:N \c@iRow - #1 - w .south~east )
- \dim_gset:Nn \g_@@_x_final_dim \pgf@x
- \end { tikzpicture }
- \dim_gadd:Nn \g_@@_x_initial_dim \arraycolsep
- \dim_gadd:Nn \g_@@_x_final_dim \arraycolsep
- }
- }
- \@@_draw_tikz_line:
- }
- }
+ \int_compare:nNnF \c@iRow = 0
+ { \int_compare:nNnF \c@iRow = \l_@@_last_row_int { #1 } }
}
% \end{macrocode}
+% Remember that |\c@iRow| is not always inferior to |\l_@@_last_row_int| because
+% |\l_@@_last_row_int| may be equal to $-2$ or $-1$ (we can't write
+% |\int_compare:nNnT \c@iRow < \l_@@_last_row_int|).
%
+%
+% \medskip
+% In fact, independently of |\OnlyMainNiceMatrix|, which is a convenience given
+% to the user, we have to modify the behaviour of the standard specifier ``"|"''.
%
-% \bigskip
-% \subsection{The vertical rules}
-%
-% We don't want that a vertical rule drawn by the specifier ``"|"'' extends
-% in the eventual ``first row'' and ``last row'' of the array.
%
-% The natural way to do that would be to redefine the specifier ``"|"''
-% with |\newcolumntype|:
+% Remark first that the natural way to do that would be to redefine the
+% specifier ``"|"'' with |\newcolumntype|:
% \begin{Verbatim}[commandchars=\~\#\+]
-% \newcolumntype { | }
-% { ! { \int_compare:nNnF \c@iRow = 0 \vline } }
+% \newcolumntype { | } { ! { \OnlyMainNiceMatrix \vline } }
% \end{Verbatim}
%
% However, this code fails if the user uses "\DefineShortVerb{\|}" of
% \pkg{fancyvrb}. Moreover, it would not be able to deal correctly with two
% consecutive specifiers ``"|"'' (in a preambule like "ccc||ccc").
%
-% That's why we will do a redefinition of the macro |\@arrayrule| of \pkg{array}
-% and this redefinition will add |\@@_vline:| instead of |\vline| to the
-% preamble.
+% That's why we have done a redefinition of the macro |\@arrayrule| of
+% \pkg{array} and this redefinition will add |\@@_vline:| instead of |\vline| to
+% the preamble (that definition is in the beginning of |{NiceArrayWithDelims}|).
%
% Here is the definition of |\@@_vline:|. This definition \emph{must} be
% protected because you don't want that macro expanded during the construction
-% of the preamble (the tests must be effective in each row and not once when the
-% preamble is constructed).
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_vline:
- {
- \int_compare:nNnTF \l_@@_first_col_int = 0
- {
- \int_compare:nNnTF \c@jCol = 0
- {
- \int_compare:nNnTF \l_@@_first_row_int = 0
- {
- \int_compare:nNnF \c@iRow = 0
- {
- \int_compare:nNnF \c@iRow = \l_@@_last_row_int
- \@@_vline_i:
- }
- }
- {
- \int_compare:nNnF \c@iRow = 0
- {
- \int_compare:nNnF \c@iRow = \l_@@_last_row_int
- \@@_vline_i:
- }
- }
- }
- {
- \int_compare:nNnF \c@iRow = 0
- {
- \int_compare:nNnF \c@iRow = \l_@@_last_row_int
- \@@_vline_i:
- }
- }
- }
- {
- \int_compare:nNnTF \c@jCol = 0
- {
- \int_compare:nNnF \c@iRow = { -1 }
- {
- \int_compare:nNnF \c@iRow = { \l_@@_last_row_int - 1 }
- \@@_vline_i:
- }
- }
- {
- \int_compare:nNnF \c@iRow = 0
- {
- \int_compare:nNnF \c@iRow = \l_@@_last_row_int
- \@@_vline_i:
- }
- }
- }
- }
-% \end{macrocode}
+% of the preamble (the tests in |\@@_OnlyMainNiceMatrix:n| must be effective in
+% each row and not once for all when the preamble is constructed).
%
% \medskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_vline: { \@@_OnlyMainNiceMatrix:n { \@@_vline_i: } }
+% \end{macrocode}
+%
% If \pkg{colortbl} is loaded, the following macro will be redefined (in a
% |\AtBeginDocument|) to take into account the color fixed by |\arrayrulecolor|
% of \pkg{colortbl}.
@@ -6395,35 +6762,129 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% We give now the definition of |\OnlyMainNiceMatrix|. Internally, it is not
-% used by \pkg{nicematrix}. It's only a facility given to the final user, which
-% may be useful in the definitions of new columns types (with |\newcolumntype|).
+% \subsection*{The commands to draw dotted lines to separate columns and rows}
%
-% \smallskip
-% First, we give the definition of |\OnlyMainNiceMatrix| in the general case:
-% it's no-op (thus, a definition of column type may be used outside the
-% environments of \pkg{nicematrix}, in |{array}|, etc.).
+% These commands don't use the normal nodes, the medium nor the large nodes.
+% They only use the |col|-nodes and the |row|-nodes.
+%
+% \textbf{Horizontal dotted lines}\par\nobreak
+%
+% \medskip
+% The following command must \emph{not} be protected because it's meant to be
+% expanded in a |\noalign|.
% \begin{macrocode}
-\cs_set_eq:NN \OnlyMainNiceMatrix \use:n
+\cs_new:Npn \@@_hdottedline:
+ {
+ \bool_if:NF \c_@@_draft_bool
+ {
+ \noalign{ \skip_vertical:n { 2 \l_@@_radius_dim } }
+ \@@_hdottedline_i:
+ }
+ }
% \end{macrocode}
%
% \medskip
-% Now, we give the definition of |\OnlyMainNiceMatrix| which will be used
-% in the environments of \pkg{nicematrix}. This command
-% |\@@_OnlyMainNiceMatrix:n| will be linked to |\OnlyMainNiceMatrix| in
-% |\@@_pre_array:|. This command is ``fully expandable'' and that's why we have
-% not protected it, even tough this characteristic will probably not be used.
+% On the other side, the following command should be protected.
% \begin{macrocode}
-\cs_new:Npn \@@_OnlyMainNiceMatrix:n #1
+\cs_new_protected:Npn \@@_hdottedline_i:
+ {
+% \end{macrocode}
+% We write in the code-after the instruction that will eventually draw the
+% dotted line. It's not possible to draw this dotted line now because we don't
+% known the length of the line (we don't even know the number of columns).
+% \begin{macrocode}
+ \tl_gput_right:Nx \g_@@_code_after_tl
+ { \@@_hdottedline:n { \int_use:N \c@iRow } }
+ }
+% \end{macrocode}
+%
+%
+% \medskip
+% The command |\@@_hdottedline:n| is the command written in the |code-after|
+% that will actually draw the dotted line. Its argument is the number of the row
+% \emph{before} which we will draw the row.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_hdottedline:n #1
{
- \int_compare:nNnF \c@iRow = 0
- { \int_compare:nNnF \c@iRow = \l_@@_last_row_int { #1 } }
+ \dim_zero_new:N \g_@@_x_initial_dim
+ \dim_zero_new:N \g_@@_y_initial_dim
+ \dim_zero_new:N \g_@@_x_final_dim
+ \dim_zero_new:N \g_@@_y_final_dim
+ \bool_set_true:N \l_@@_initial_open_bool
+ \bool_set_true:N \l_@@_final_open_bool
+ \begin { tikzpicture } [ remember~picture ]
+ \@@_extract_coords:w ( row - #1 )
+% \end{macrocode}
+% We do a translation par |-\l_@@_radius_dim| because we want the dotted line to
+% have exactly the same position as a vertical rule drawn by ``"|"''
+% (considering the rule having a width equal to the diameter of the dots).
+% \begin{macrocode}
+ \dim_gset:Nn \g_@@_y_initial_dim { \pgf@y - \l_@@_radius_dim }
+ \dim_gset:Nn \g_@@_y_final_dim { \pgf@y - \l_@@_radius_dim }
+ \@@_extract_coords:w ( col - 1 )
+ \dim_gset:Nn \g_@@_x_initial_dim \pgf@x
+ \@@_extract_coords:w ( col - \int_eval:n { \c@jCol + 1 } )
+ \dim_gset:Nn \g_@@_x_final_dim \pgf@x
+ \end { tikzpicture }
+ \@@_draw_tikz_line:
+ }
+% \end{macrocode}
+%
+%
+%
+% \bigskip
+% \textbf{Vertical dotted lines}\par\nobreak
+%
+% \medskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_vdottedline:n #1
+ {
+% \end{macrocode}
+% We should allow the letter ``|:|'' in the first position of the preamble
+% but that would need a special programmation.
+% \begin{macrocode}
+ \int_compare:nNnTF #1 = 0
+ { \@@_error:n { Use~of~:~in~first~position } }
+ { \bool_if:NF \c_@@_draft_bool { \@@_vdottedline_i:n { #1 } } }
+ }
+% \end{macrocode}
+%
+% \medskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_vdottedline_i:n #1
+ {
+ \dim_zero_new:N \g_@@_x_initial_dim
+ \dim_zero_new:N \g_@@_y_initial_dim
+ \dim_zero_new:N \g_@@_x_final_dim
+ \dim_zero_new:N \g_@@_y_final_dim
+ \bool_set_true:N \l_@@_initial_open_bool
+ \bool_set_true:N \l_@@_final_open_bool
+ \begin { tikzpicture } [ remember~picture ]
+ \@@_extract_coords:w ( col - \int_eval:n { #1 + 1 } )
+% \end{macrocode}
+% We do a translation par |-\l_@@_radius_dim| because we want the dotted line to
+% have exactly the same position as a vertical rule drawn by ``"|"''
+% (considering the rule having a width equal to the diameter of the dots).
+% \begin{macrocode}
+ \dim_gset:Nn \g_@@_x_initial_dim { \pgf@x - \l_@@_radius_dim }
+ \dim_gset:Nn \g_@@_x_final_dim { \pgf@x - \l_@@_radius_dim }
+ \@@_extract_coords:w ( row - 1 )
+% \end{macrocode}
+% We arbitrary decrease the height of the dotted line by a quantity equal to
+% |\l_@@_inter_dots_dim| in order to improve the visual impact.
+% \begin{macrocode}
+ \dim_gset:Nn \g_@@_y_initial_dim { \pgf@y - ( \l_@@_inter_dots_dim / 2 ) }
+ \@@_extract_coords:w ( row - \int_eval:n { \c@iRow + 1 } )
+ \dim_gset:Nn \g_@@_y_final_dim { \pgf@y + ( \l_@@_inter_dots_dim / 2 ) }
+ \end { tikzpicture }
+ \@@_draw_tikz_line:
}
% \end{macrocode}
+%
%
%
% \bigskip
-% \subsection{The environment \{NiceMatrixBlock\}}
+% \subsection*{The environment \{NiceMatrixBlock\}}
%
% The following flag will be raised when all the columns of the environments of
% the block must have the same width in ``auto'' mode.
@@ -6485,8 +6946,8 @@ c & c & b & a & e
}
% \end{macrocode}
%
-%
-% \subsection{The extra nodes}
+% \bigskip
+% \subsection*{The extra nodes}
%
% First, two variants of the functions |\dim_min:nn| and |\dim_max:nn|.
% \begin{macrocode}
@@ -6495,10 +6956,10 @@ c & c & b & a & e
% \end{macrocode}
%
% \bigskip
-% We have three macros of creation of nodes: |\@@_create_medium_nodes:|, |\@@_create_large_nodes:| and
-% |\@@_create_medium_and_large_nodes:|. They must \emph{not} be used in the
-% |code-after| because the |code-after| is executed in a scope of |prefix name|
-% of Tikz.
+% We have three macros of creation of nodes: |\@@_create_medium_nodes:|,
+% |\@@_create_large_nodes:| and |\@@_create_medium_and_large_nodes:|. They must
+% \emph{not} be used in the |code-after| because the |code-after| is executed in
+% a scope of |prefix name| of Tikz.
%
% \bigskip
% We have to compute the mathematical coordinates of the ``medium nodes''. These
@@ -6509,6 +6970,7 @@ c & c & b & a & e
% \bigskip
% The command |\@@_computations_for_medium_nodes:| must be used in a
% |{tikzpicture}|.
+%
% \medskip
% For each row $i$, we compute two dimensions
% \texttt{l_@@_row_\textsl{i}_min_dim} and \texttt{l_@@_row_\textsl{i}_max_dim}.
@@ -6555,14 +7017,15 @@ c & c & b & a & e
% implicit ampersands |&|). In this case, of course, we don't update the
% dimensions we want to compute.
% \begin{macrocode}
- { \cs_if_exist:cT
+ {
+ \cs_if_exist:cT
{ pgf@sh@ns@nm - \int_use:N \g_@@_env_int - \@@_i: - \@@_j: }
% \end{macrocode}
% We retrieve the coordinates of the anchor |south west| of the (normal) node of
% the cell ($i$-$j$). They will be stored in |\pgf@x| and |\pgf@y|.
% \begin{macrocode}
{
- \tikz@parse@node \pgfutil@firstofone
+ \@@_extract_coords:w
( nm - \int_use:N \g_@@_env_int
- \@@_i: - \@@_j: .south~west )
\dim_set:cn { l_@@_row_\@@_i: _min_dim}
@@ -6576,7 +7039,7 @@ c & c & b & a & e
% We retrieve the coordinates of the anchor |north east| of the (normal) node of
% the cell ($i$-$j$). They will be stored in |\pgf@x| and |\pgf@y|.
% \begin{macrocode}
- \tikz@parse@node \pgfutil@firstofone
+ \@@_extract_coords:w
( nm - \int_use:N \g_@@_env_int - \@@_i: - \@@_j: .north~east )
\dim_set:cn { l_@@_row _ \@@_i: _ max_dim }
{ \dim_max:vn { l_@@_row _ \@@_i: _ max_dim } \pgf@y }
@@ -6620,10 +7083,10 @@ c & c & b & a & e
% \medskip
% The command |\@@_create_large_nodes:| must be used when we want to create only
% the ``large nodes'' and not the medium ones (if we want to create both, we
-% have to use the command |\@@_create_medium_and_large_nodes:|). However, the
+% have to use |\@@_create_medium_and_large_nodes:|). However, the
% computation of the mathematical coordinates of the ``large nodes'' needs the
-% computation of the mathematical coordinates of the ``medium nodes''. That's
-% why we use first |\@@_computations_for_medium_nodes:| and then the command
+% computation of the mathematical coordinates of the ``medium nodes''. Hence,
+% we use first |\@@_computations_for_medium_nodes:| and then the command
% |\@@_computations_for_large_nodes:|.
% \begin{macrocode}
\cs_new_protected:Npn \@@_create_large_nodes:
@@ -6634,7 +7097,6 @@ c & c & b & a & e
\tikzset { name~suffix = -large }
\@@_create_nodes:
\end { tikzpicture }
- \@@_compute_width_of_array:
\cs_set_protected:Npn \@@_create_large_nodes: { }
\cs_set_protected:Npn \@@_create_medium_and_large_nodes:
{ \@@_create_medium_nodes: }
@@ -6656,9 +7118,7 @@ c & c & b & a & e
\@@_computations_for_large_nodes:
\tikzset { name~suffix = -large }
\@@_create_nodes:
- \@@_compute_width_of_array:
\end { tikzpicture }
- \@@_compute_width_of_array:
\cs_set_protected:Npn \@@_create_medium_and_large_nodes: { }
\cs_set_protected:Npn \@@_create_medium_nodes: { }
\cs_set_protected:Npn \@@_create_large_nodes: { }
@@ -6780,37 +7240,10 @@ c & c & b & a & e
}
% \end{macrocode}
%
-%
-%
-% \medskip
-% We can now compute the width of the array (used by |\hdottedline|). We should
-% modify this point because it's a waste to construct all the ``large nodes'' only
-% for computing the width of the array.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_compute_width_of_array:
- {
- \begin { tikzpicture } [ remember~picture , overlay ]
- \tikz@parse@node \pgfutil@firstofone
- ( nm - \int_use:N \g_@@_env_int - 1 - 1 - large .north~west )
- \dim_gset:Nn \g_tmpa_dim \pgf@x
- \tikz@parse@node \pgfutil@firstofone
- ( nm - \int_use:N \g_@@_env_int - 1 -
- \int_use:N \c@jCol - large .north~east )
- \dim_gset:Nn \g_tmpb_dim \pgf@x
- \end { tikzpicture }
- \iow_now:Nn \@mainaux \ExplSyntaxOn
- \iow_now:Nx \@mainaux
- {
- \cs_gset:cpn { @@_width_ \int_use:N \g_@@_env_int }
- { \dim_eval:n { \g_tmpb_dim - \g_tmpa_dim } }
- }
- \iow_now:Nn \@mainaux \ExplSyntaxOff
- }
-% \end{macrocode}
%
% \bigskip
% \begin{macrocode}
-\cs_new_protected:Npn \@@_extract_coords: #1 - #2 \q_stop
+\cs_new_protected:Npn \@@_extract_coords_values: #1 - #2 \q_stop
{
\cs_set:Npn \@@_i: { #1 }
\cs_set:Npn \@@_j: { #2 }
@@ -6822,9 +7255,9 @@ c & c & b & a & e
% issued in the format $i$|-|$j$ and the second is the value of~$n$ (the length
% of the ``multi-cell'').
% \begin{macrocode}
-\cs_new_protected:Nn \@@_node_for_multicolumn:nn
+\cs_new_protected:Npn \@@_node_for_multicolumn:nn #1 #2
{
- \@@_extract_coords: #1 \q_stop
+ \@@_extract_coords_values: #1 \q_stop
\coordinate ( @@~south~west ) at
(
\dim_use:c { l_@@_column _ \@@_j: _ min _ dim } ,
@@ -6849,58 +7282,40 @@ c & c & b & a & e
}
% \end{macrocode}
%
-%
-% \subsection{Block matrices}
+% \bigskip
+% \subsection*{Block matrices}
%
% The code in this section if for the construction of \emph{block matrices}. It
% has no direct link with the environment |{NiceMatrixBlock}|.
+%
%
% The following command will be linked to |\Block| in the environments of
% \pkg{nicematrix}. We define it with |\NewDocumentCommand| of \pkg{xparse}
-% because it has an optionnal argument between |<| and |>| (for TeX instructions
+% because it has an optional argument between |<| and |>| (for TeX instructions
% put before the math mode of the label)
%
% \begin{macrocode}
-\NewDocumentCommand \@@_Block: { m D < > { } m }
- { \@@_Block_i #1 \q_stop { #2 } { #3 } }
+\NewDocumentCommand \@@_Block: { O { } m D < > { } m }
+ { \@@_Block_i #2 \q_stop { #1 } { #3 } { #4 } }
% \end{macrocode}
%
% \medskip
-% The first argument of |\@@_Block:| (which is required) has a special syntax.
-% It must be of the form $i$|-|$j$ where $i$ and $j$ are the size (in rows and
-% columns) of the block.
+% The first mandatory argument of |\@@_Block:| has a special syntax. It must be
+% of the form $i$|-|$j$ where $i$ and $j$ are the size (in rows and columns) of
+% the block.
% \begin{macrocode}
-\cs_new:Npn \@@_Block_i #1-#2 \q_stop { \@@_Block_ii:nnnn { #1 } { #2 } }
+\cs_new:Npn \@@_Block_i #1-#2 \q_stop { \@@_Block_ii:nnnnn { #1 } { #2 } }
% \end{macrocode}
%
% \medskip
% Now, the arguments have been extracted: |#1| is $i$ (the number of rows of the
-% block), |#2| is $j$ (the number of columns of the block), |#3| are the tokens
-% to put before the math mode and |#4| is the label of the block. The following
-% command must \emph{not} be protected because it contains a command
-% |\multicolumn| (in the case of a block of only one row).
+% block), |#2| is $j$ (the number of columns of the block), |#3| is the list of
+% key-values, |#4| are the tokens to put before the math mode and |#5| is the
+% label of the block.
% \begin{macrocode}
-\cs_new:Npn \@@_Block_ii:nnnn #1 #2 #3 #4
+\cs_new_protected:Npn \@@_Block_ii:nnnnn #1 #2 #3 #4 #5
{
% \end{macrocode}
-%
-% \medskip
-% In the case of a block of only one row, we create a special node of shape
-% |coordinate| in order to remember the $y$-value of the baseline of the current
-% row.
-% \begin{macrocode}
- \int_compare:nNnT { #1 } = 1
- {
- \begin { tikzpicture } [ remember~picture , baseline ]
- \coordinate
- ( nm - \int_use:N \g_@@_env_int
- - Block
- - \int_use:N \c@iRow
- - \int_use:N \c@jCol ) ;
- \end { tikzpicture }
- }
- \bool_gset_true:N \g_@@_medium_nodes_bool
-% \end{macrocode}
% We write an instruction in the |code-after|. We write the instruction in the
% beginning of the |code-after| (the |left| in |\tl_gput_left:Nx|) because we
% want the Tikz nodes corresponding of the block created \emph{before} potential
@@ -6909,23 +7324,57 @@ c & c & b & a & e
% \begin{macrocode}
\tl_gput_left:Nx \g_@@_code_after_tl
{
- \@@_Block_iii:nnnnn
+ \@@_Block_iii:nnnnnn
{ \int_use:N \c@iRow }
{ \int_use:N \c@jCol }
{ \int_eval:n { \c@iRow + #1 - 1 } }
{ \int_eval:n { \c@jCol + #2 - 1 } }
- \exp_not:n { { #3 $ #4 $ } }
+ { #3 }
+ \exp_not:n { { #4 $ #5 $ } }
}
+% \end{macrocode}
+% It's not allowed to use the command |\Block| twice in the same cell of the
+% array. That's why, at the first use, we link the command |\Block|
+% to a special version. The scope of this link is the cell of the array.
+% \begin{macrocode}
+ \cs_set_eq:NN \Block \@@_Block_error:nn
}
% \end{macrocode}
%
+% \begin{macrocode}
+\cs_new:Npn \@@_Block_error:nn #1 #2
+ {
+ \@@_error:n { Second~Block }
+ \cs_set_eq:NN \Block \use:nn
+ }
+% \end{macrocode}
%
+% \medskip
+% \begin{macrocode}
+\keys_define:nn { NiceMatrix / Block }
+ {
+ tikz .tl_set:N = \l_@@_tikz_tl ,
+ tikz .value_required:n = true ,
+ white .bool_set:N = \l_@@_white_bool ,
+ white .default:n = true ,
+ white .value_forbidden:n = true ,
+ }
+% \end{macrocode}
+%
%
% \medskip
-% The following command |\@@_Block_iii:nnnnn| will be used in the |code-after|.
+% The following command |\@@_Block_iii:nnnnnn| will be used in the |code-after|.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_Block_iii:nnnnn #1 #2 #3 #4 #5
+\cs_new_protected:Npn \@@_Block_iii:nnnnnn #1 #2 #3 #4 #5 #6
{
+% \end{macrocode}
+% The group is for the keys.
+% \begin{macrocode}
+ \group_begin:
+ \keys_set:nn { NiceMatrix / Block } { #5 }
+% \end{macrocode}
+%
+% \begin{macrocode}
\bool_if:nTF
{
\int_compare_p:nNn { #3 } > \c@iRow
@@ -6934,59 +7383,118 @@ c & c & b & a & e
{ \msg_error:nnnn { nicematrix } { Block~too~large } { #1 } { #2 } }
{
% \end{macrocode}
-% If the block has only one row, we have to do a special work in order to have
-% the contains of the node aligned with the contents of the other rows of the array.
-%
+% We put the contents of the cell in the box |\l_@@_cell_box| because we want
+% the command |\rotate| used in the content to be able to rotate the box.
% \begin{macrocode}
- \int_compare:nNnTF { #1 } = { #3 }
- {
- \begin { tikzpicture }
+ \hbox_set:Nn \l_@@_cell_box { #6 }
+% \end{macrocode}
+%
+% \medskip
+% The construction of the node corresponding to the merged cells. First, we
+% construct |\coordinate| corresponding to the upper-left and the lower-right
+% corners of the cell. They are called |one| and |two|.
+% \begin{macrocode}
+ \begin { tikzpicture }
+ \int_set:Nn \l_tmpa_int { #1 }
+ \int_decr:N \l_tmpa_int
+ \int_set:Nn \l_tmpb_int { #2 }
+ \int_decr:N \l_tmpb_int
+ \@@_extract_coords:w ( row - \int_eval:n { \l_tmpa_int + 1 } )
+ \dim_set_eq:NN \l_tmpa_dim \pgf@y
+ \@@_extract_coords:w ( col - \int_eval:n { \l_tmpb_int + 1 } )
+ \dim_set_eq:NN \l_tmpb_dim \pgf@x
+ \coordinate ( one ) at ( \l_tmpb_dim , \l_tmpa_dim ) ;
+ \@@_extract_coords:w ( row - \int_eval:n { #3 + 1 } )
+ \dim_set_eq:NN \l_tmpa_dim \pgf@y
+ \@@_extract_coords:w ( col - \int_eval:n { #4 + 1 } )
+ \dim_set_eq:NN \l_tmpb_dim \pgf@x
+ \coordinate ( two ) at ( \l_tmpb_dim , \l_tmpa_dim ) ;
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \bool_if:NT \l_@@_white_bool
+ {
+ \fill [ white , line~width = 0 pt]
+ ( [ yshift = -\arrayrulewidth ] one )
+ rectangle
+ ( [ xshift = -\arrayrulewidth ] two ) ;
+ }
% \end{macrocode}
-% First, we compute in |\l_tmpa_dim| the $y$-value of the baseline of the row.
-% We have constructed a special node of shape |coordinate| in this order.
+%
+% Now, we can construct the real node fitting the nodes |one| and |two|.
+% We have to insert |\l_@@_tikz_tl| in the list of the options and that's why we
+% use |\use:x|.
% \begin{macrocode}
- \tikz@parse@node \pgfutil@firstofone (Block-#1-#2)
- \dim_set:Nn \l_tmpa_dim \pgf@y
- \node
+ \use:x
+ {
+ \exp_not:N \node
[
- fit = ( #1 - #2 - medium . north~west )
- ( #3 - #4 - medium . south~east ) ,
+ fit = ( one ) ( two ) ,
inner~sep = 0 pt ,
+ \l_@@_tikz_tl
]
- (#1-#2) { } ;
+ }
% \end{macrocode}
-% With the following instruction, we retrieve the $x$-value and the $y$-value of
-% the center of the block. We will only use the $x$-value, available in |\pgf@x|.
+% The node of the block has a name |(#1-#2-block)| and we will use it internally just
+% after to put the label of the block.
% \begin{macrocode}
- \tikz@parse@node \pgfutil@firstofone (#1-#2)
- \path (\pgf@x,\l_tmpa_dim) node [ anchor = base ] { #5 } ;
- \end { tikzpicture }
- }
+ (#1-#2-block) { } ;
% \end{macrocode}
-% If the number of rows is different of $1$, it's necessary to create two Tikz
-% nodes because we want the label |#5| really drawn in the \emph{center} of the node.
+%
+% \medskip
+% If the creation of the ``medium nodes'' is required, we create a ``medium
+% node'' for the block.
% \begin{macrocode}
+ \bool_if:NT \l_@@_medium_nodes_bool
{
- \begin { tikzpicture }
- \node
- [
- fit = ( #1 - #2 - medium . north~west )
+ \node
+ [
+ fit = ( #1 - #2 - medium . north~west )
( #3 - #4 - medium . south~east ) ,
inner~sep = 0 pt ,
- ]
+ ]
+ (#1-#2-block-medium) { } ;
+ }
% \end{macrocode}
-% We don't forget the name of the node because the user may wish to use it.
+% \medskip
+% Now, we will put the label of the block.
% \begin{macrocode}
- (#1-#2) { } ;
- \node at (#1-#2.center) { #5 } ;
- \end { tikzpicture }
- }
+ \int_compare:nNnTF { #1 } = { #3 }
+ {
+% \end{macrocode}
+% If the block has only one row, we want the label of the block perfectly
+% aligned on the baseline of the row. That's why we have constructed a
+% |\coordinate| on the baseline of the row, in the first column of the array.
+% Now, we retrieve the $y$-value of that node and we store it in |\l_tmpa_dim|.
+% \begin{macrocode}
+ \@@_extract_coords:w (row-#1-base)
+ \dim_set_eq:NN \l_tmpa_dim \pgf@y
+% \end{macrocode}
+% We retrieve (in |\pgf@x|) the $x$-value of the center of the block.
+% \begin{macrocode}
+ \@@_extract_coords:w (#1-#2-block)
+% \end{macrocode}
+% We put the label of the block which has been composed in |\l_@@_cell_box|.
+% \begin{macrocode}
+ \path (\pgf@x,\l_tmpa_dim) node [ anchor = base ]
+ { \box_use_drop:N \l_@@_cell_box } ;
+ }
+% \end{macrocode}
+%
+% \medskip
+% If the number of rows is different of $1$, we put the label of the block in
+% the center of the node (the label of the block has been composed in
+% |\l_@@_cell_box|).
+% \begin{macrocode}
+ { \node at (#1-#2-block.center) { \box_use_drop:N \l_@@_cell_box } ; }
+ \end { tikzpicture }
}
+ \group_end:
}
% \end{macrocode}
-%
%
-% \subsection{How to draw the dotted lines transparently}
+% \bigskip
+% \subsection*{How to draw the dotted lines transparently}
% \begin{macrocode}
\cs_set_protected:Npn \@@_renew_matrix:
{
@@ -7009,8 +7517,8 @@ c & c & b & a & e
% \end{macrocode}
%
%
-% \medskip
-% \subsection{Automatic arrays}
+% \bigskip
+% \subsection*{Automatic arrays}
%
%
% \begin{macrocode}
@@ -7063,12 +7571,12 @@ c & c & b & a & e
{
\cs_set_protected:cpn { #1 AutoNiceMatrix }
{
- \str_gset:Nx \g_@@_type_env_str
- { command ~ \c_backslash_str #1 AutoNiceMatrix }
+ \str_gset:Nx \g_@@_name_env_str { #1 AutoNiceMatrix }
\AutoNiceMatrixWithDelims { #2 } { #3 }
}
}
% \end{macrocode}
+%
% \begin{macrocode}
\@@_define_com:nnn p ( )
\@@_define_com:nnn b [ ]
@@ -7077,8 +7585,8 @@ c & c & b & a & e
\@@_define_com:nnn B \{ \}
% \end{macrocode}
%
-% \medskip
-% \subsection{We process the options}
+% \bigskip
+% \subsection*{We process the options}
%
% We process the options when the package is loaded (with |\usepackage|) but we
% recommend to use |\NiceMatrixOptions| instead.
@@ -7104,9 +7612,113 @@ c & c & b & a & e
\ProcessKeysOptions { NiceMatrix / Package }
% \end{macrocode}
%
-% \subsection{Error messages of the package}
+% \bigskip
+% \subsection*{Error messages of the package}
+%
+% The following command converts all the elements of a sequence (which are token
+% lists) into strings.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_convert_to_str_seq:N #1
+ {
+ \seq_clear:N \l_tmpa_seq
+ \seq_map_inline:Nn #1
+ {
+ \seq_put_left:Nx \l_tmpa_seq { \tl_to_str:n { ##1 } }
+ }
+ \seq_set_eq:NN #1 \l_tmpa_seq
+ }
+% \end{macrocode}
+%
+% The following command creates a sequence of strings (|str|) from a |clist|.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_set_seq_of_str_from_clist:Nn #1 #2
+ {
+ \seq_set_from_clist:Nn #1 { #2 }
+ \@@_convert_to_str_seq:N #1
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@@_set_seq_of_str_from_clist:Nn \c_@@_types_of_matrix_seq
+ {
+ NiceMatrix ,
+ pNiceMatrix , bNiceMatrix , vNiceMatrix, BNiceMatrix, VNiceMatrix
+ }
+% \end{macrocode}
+%
+% \bigskip
+% If the user uses too much columns, the command |\@@_error_too_much_cols:| is
+% executed. This command raises an error but try to give the best information to
+% the user in the error message. The command |\seq_if_in:NVTF| is not expandable
+% and that's why we can't put it in the error message itself. We have to do the
+% test before the |\@@_fatal:n|.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_error_too_much_cols:
+ {
+ \seq_if_in:NVTF \c_@@_types_of_matrix_seq \g_@@_name_env_str
+ {
+ \int_compare:nNnTF \l_@@_last_col_int = { -1 }
+ { \@@_fatal:n { too~much~cols~for~matrix } }
+ { \@@_fatal:n { too~much~cols~for~matrix~with~last~col } }
+ }
+ { \@@_fatal:n { too~much~cols~for~array } }
+ }
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\@@_msg_new:nn { too~much~cols~for~matrix~with~last~col }
+ {
+ You~try~to~use~more~columns~than~allowed~by~your~
+ \@@_full_name_env:.~The~maximal~number~of~columns~is~
+ \int_eval:n { \l_@@_last_col_int - 1 }~(plus~the~potential~
+ exterior~ones).~This~error~is~fatal.
+ }
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\@@_msg_new:nn { too~much~cols~for~matrix }
+ {
+ You~try~to~use~more~columns~than~allowed~by~your~
+ \@@_full_name_env:.~ Recall~that~the~maximal~number~of~columns~
+ for~a~matrix~is~fixed~by~the~LaTeX~counter~'MaxMatrixCols'.~
+ Its~actual~value~is~\int_use:N \c@MaxMatrixCols.~This~error~is~fatal.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@@_msg_new:nn { too~much~cols~for~array }
+ {
+ You~try~to~use~more~columns~than~allowed~by~your~
+ \@@_full_name_env:.~The~maximal~number~of~columns~is~
+ \int_use:N \c@jCol\space (plus~the~potential~exterior~ones).~
+ This~error~is~fatal.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@@_msg_new:nn { bad~value~for~baseline }
+ {
+ The~value~you~gave~to~'baseline'~(\int_use:N \l_tmpa_int)~is~not~
+ valid.\\
+ If~you~go~on,~a~value~of~1~will~be~used.
+ }
+% \end{macrocode}
%
%
+% \begin{macrocode}
+\@@_msg_new:nn { Second~Block }
+ {
+ You~can't~use~\token_to_str:N \Block\ twice~in~the~same~cell~of~the~array.\\
+ If~you~go~on,~this~command~(and~the~other)~will~be~ignored.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@@_msg_new:nn { empty~environment }
+ { Your~\@@_full_name_env:\ is~empty.~This~error~is~fatal. }
+% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { unknown~cell~for~line~in~code-after }
@@ -7121,7 +7733,7 @@ c & c & b & a & e
% \begin{macrocode}
\@@_msg_new:nn { last-col~non~empty~for~NiceArray }
{
- In~the~\g_@@_type_env_str,~you~must~use~the~option~
+ In~the~\@@_full_name_env:,~you~must~use~the~option~
'last-col'~without~value.\\
However,~you~can~go~on~for~this~time~
(the~value~'\l_keys_value_tl'~will~be~ignored).
@@ -7131,7 +7743,7 @@ c & c & b & a & e
% \begin{macrocode}
\@@_msg_new:nn { last-col~empty~for~NiceMatrix }
{
- In~the~\g_@@_type_env_str, you~can't~use~the~option~
+ In~the~\@@_full_name_env:, you~can't~use~the~option~
'last-col'~without~value.~You~must~give~the~number~of~that~last~column.\\
If~you~go~on~this~option~will~be~ignored.
}
@@ -7141,7 +7753,7 @@ c & c & b & a & e
\@@_msg_new:nn { Block~too~large }
{
You~try~to~draw~a~block~in~the~cell~#1-#2~of~your~matrix~but~the~matrix~is~
- too~small~for~that~block.\\
+ too~small~for~that~block. \\
If~you~go~on,~this~command~will~be~ignored.
}
% \end{macrocode}
@@ -7160,7 +7772,7 @@ c & c & b & a & e
\@@_msg_new:nn { Wrong~last~row }
{
You~have~used~'last-row=\int_use:N \l_@@_last_row_int'~but~your~
- \g_@@_type_env_str\ seems~to~have~\int_use:N \c@iRow \ rows.~
+ \@@_full_name_env:\ seems~to~have~\int_use:N \c@iRow \ rows.~
If~you~go~on,~the~value~of~\int_use:N \c@iRow \ will~be~used~for~
last~row.~You~can~avoid~this~problem~by~using~'last-row'~
without~value~(more~compilations~might~be~necessary).
@@ -7179,32 +7791,16 @@ c & c & b & a & e
% \begin{macrocode}
\@@_msg_new:nn { Outside~math~mode }
{
- The~\g_@@_type_env_str\ can~be~used~only~in~math~mode~
+ The~\@@_full_name_env:\ can~be~used~only~in~math~mode~
(and~not~in~\token_to_str:N \vcenter).\\
This~error~is~fatal.
}
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { Option~Transparent~suppressed }
- {
- The~option~'Transparent'~has~been~renamed~'transparent'.\\
- If~you~go~on~this~command~will~be~ignored.
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
-\@@_msg_new:nn { Option~RenewMatrix~suppressed }
- {
- The~option~'RenewMatrix'~has~been~renamed~'renew-matrix'.\\
- If~you~go~on~this~command~will~be~ignored.
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
\@@_msg_new:nn { Bad~value~for~letter~for~dotted~lines }
{
- The~value~of~key~'\tl_use:N\l_keys_key_tl'~must~be~of~length~1.\\
+ The~value~of~key~'\tl_use:N\l_keys_key_str'~must~be~of~length~1.\\
If~you~go~on,~it~will~be~ignored.
}
% \end{macrocode}
@@ -7213,7 +7809,7 @@ c & c & b & a & e
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~NiceMatrixOptions }
{
- The~key~'\tl_use:N\l_keys_key_tl'~is~unknown~for~the~command~
+ The~key~'\tl_use:N\l_keys_key_str'~is~unknown~for~the~command~
\token_to_str:N \NiceMatrixOptions. \\
If~you~go~on,~it~will~be~ignored. \\
For~a~list~of~the~available~keys,~type~H~<return>.
@@ -7232,6 +7828,7 @@ c & c & b & a & e
end-of-row,~
exterior-arraycolsep,~
hlines,~
+ hvlines,~
left-margin,~
letter-for-dotted-lines,~
light-syntax,~
@@ -7241,14 +7838,15 @@ c & c & b & a & e
renew-matrix,~
right-margin,~
small,~
- and~transparent
+ transparent~
+ and~vlines.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~option~for~NiceArray }
{
- The~option~'\tl_use:N\l_keys_key_tl'~is~unknown~for~the~environment~
+ The~option~'\tl_use:N\l_keys_key_str'~is~unknown~for~the~environment~
\{NiceArray\}. \\
If~you~go~on,~it~will~be~ignored. \\
For~a~list~of~the~available~options,~type~H~<return>.
@@ -7256,6 +7854,7 @@ c & c & b & a & e
{
The~available~options~are~(in~alphabetic~order):~
b,~
+ baseline,~
c,~
code-after,~
code-for-first-col,~
@@ -7273,6 +7872,7 @@ c & c & b & a & e
first-col,~
first-row,~
hlines,~
+ hvlines,~
last-col,~
last-row,~
left-margin,~
@@ -7283,7 +7883,8 @@ c & c & b & a & e
renew-dots,~
right-margin,~
small,~
- and~t.
+ t,~
+ and~vlines.
}
% \end{macrocode}
%
@@ -7294,8 +7895,8 @@ c & c & b & a & e
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~option~for~NiceMatrix }
{
- The~option~'\tl_use:N\l_keys_key_tl'~is~unknown~for~the~
- \g_@@_type_env_str. \\
+ The~option~'\tl_use:N\l_keys_key_str'~is~unknown~for~the~
+ \@@_full_name_env:. \\
If~you~go~on,~it~will~be~ignored. \\
For~a~list~of~the~available~options,~type~H~<return>.
}
@@ -7317,6 +7918,7 @@ c & c & b & a & e
first-col,~
first-row,~
hlines,~
+ hvlines,~
last-col,~
last-row,~
left-margin,~
@@ -7326,7 +7928,8 @@ c & c & b & a & e
parallelize-diags,~
renew-dots,~
right-margin,~
- and~small.
+ small,~
+ and~vlines.
}
% \end{macrocode}
%
@@ -7358,10 +7961,9 @@ c & c & b & a & e
% \begin{macrocode}
\@@_msg_new:nn { Zero~row }
{
- There~is~a~problem.~Maybe~your~\g_@@_type_env_str\ is~empty.~
- Maybe~you~have~used~l,~c~and~r~instead~of~L,~C~and~R~in~the~preamble~
- of~your~environment. \\
- If~you~go~on,~the~result~may~be~incorrect.
+ There~is~a~problem.~Maybe~you~have~used~l,~c~and~r~instead~of~L,~C~
+ and~R~in~the~preamble~of~your~environment. \\
+ This~error~is~fatal.
}
% \end{macrocode}
%
@@ -7369,29 +7971,28 @@ c & c & b & a & e
\@@_msg_new:nn { Use~of~:~in~first~position }
{
You~can't~use~the~column~specifier~'\l_@@_letter_for_dotted_lines_str'~in~the~
- first~position~of~the~preamble~of~the~\g_@@_type_env_str. \\
+ first~position~of~the~preamble~of~the~\@@_full_name_env:. \\
If~you~go~on,~this~dotted~line~will~be~ignored.
}
% \end{macrocode}
%
-%
-% \subsection{Obsolete environments}
+% \bigskip
+% \subsection*{Obsolete environments}
%
% \begin{macrocode}
\@@_msg_new:nn { Obsolete~environment }
{
- The~environment~\{\@currenvir\}~is~obsolete.~We~should~use~#1~instead.~
- However,~you~can~go~on~for~this~time.~
- If~you~don't~want~to~see~this~error~again,~you~should~load~'nicematrix'~
- with~the~option~'obsolete-environments'.
+ The~environment~\{\@currenvir\}~is~obsolete.~You~should~use~#1~instead.~
+ However,~it's~still~possible~to~use~the~environment~\{\@currenvir\}~(for~
+ a~few~months)~by~loading~'nicematrix'~with~the~option~
+ 'obsolete-environments'.
}
% \end{macrocode}
%
% \begin{macrocode}
\NewDocumentEnvironment { pNiceArrayC } { }
{
- \@@_error:nn { Obsolete~environment }
- { the~option~'last-col' }
+ \@@_fatal:nn { Obsolete~environment } { the~option~'last-col' }
\int_zero:N \l_@@_last_col_int
\pNiceArray
}
@@ -7401,8 +8002,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { bNiceArrayC } { }
{
- \@@_error:nn { Obsolete~environment }
- { the~option~'last-col' }
+ \@@_fatal:nn { Obsolete~environment } { the~option~'last-col' }
\int_zero:N \l_@@_last_col_int
\bNiceArray
}
@@ -7412,8 +8012,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { BNiceArrayC } { }
{
- \@@_error:nn { Obsolete~environment }
- { the~option~'last-col' }
+ \@@_fatal:nn { Obsolete~environment } { the~option~'last-col' }
\int_zero:N \l_@@_last_col_int
\BNiceArray
}
@@ -7423,8 +8022,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { vNiceArrayC } { }
{
- \@@_error:nn { Obsolete~environment }
- { the~option~'last-col' }
+ \@@_fatal:nn { Obsolete~environment } { the~option~'last-col' }
\int_zero:N \l_@@_last_col_int
\vNiceArray
}
@@ -7434,8 +8032,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { VNiceArrayC } { }
{
- \@@_error:nn { Obsolete~environment }
- { the~option~'last-col' }
+ \@@_fatal:nn { Obsolete~environment } { the~option~'last-col' }
\int_zero:N \l_@@_last_col_int
\VNiceArray
}
@@ -7445,7 +8042,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { pNiceArrayRC } { }
{
- \@@_error:nn { Obsolete~environment }
+ \@@_fatal:nn { Obsolete~environment }
{ the~options~'last-col'~and~'first-row' }
\int_zero:N \l_@@_last_col_int
\int_zero:N \l_@@_first_row_int
@@ -7457,7 +8054,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { bNiceArrayRC } { }
{
- \@@_error:nn { Obsolete~environment }
+ \@@_fatal:nn { Obsolete~environment }
{ the~options~'last-col'~and~'first-row' }
\int_zero:N \l_@@_last_col_int
\int_zero:N \l_@@_first_row_int
@@ -7469,7 +8066,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { BNiceArrayRC } { }
{
- \@@_error:nn { Obsolete~environment }
+ \@@_fatal:nn { Obsolete~environment }
{ the~options~'last-col'~and~'first-row' }
\int_zero:N \l_@@_last_col_int
\int_zero:N \l_@@_first_row_int
@@ -7481,7 +8078,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { vNiceArrayRC } { }
{
- \@@_error:nn { Obsolete~environment }
+ \@@_fatal:nn { Obsolete~environment }
{ the~options~'last-col'~and~'first-row' }
\int_zero:N \l_@@_last_col_int
\int_zero:N \l_@@_first_row_int
@@ -7493,7 +8090,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { VNiceArrayRC } { }
{
- \@@_error:nn { Obsolete~environment }
+ \@@_fatal:nn { Obsolete~environment }
{ the~options~'last-col'~and~'first-row' }
\int_zero:N \l_@@_last_col_int
\int_zero:N \l_@@_first_row_int
@@ -7505,7 +8102,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { NiceArrayCwithDelims } { }
{
- \@@_error:nn { Obsolete~environment }
+ \@@_fatal:nn { Obsolete~environment }
{ the~option~'last-col' }
\int_zero:N \l_@@_last_col_int
\NiceArrayWithDelims
@@ -7516,7 +8113,7 @@ c & c & b & a & e
% \begin{macrocode}
\NewDocumentEnvironment { NiceArrayRCwithDelims } { }
{
- \@@_error:nn { Obsolete~environment }
+ \@@_fatal:nn { Obsolete~environment }
{ the~options~'last-col'~and~'first-row' }
\int_zero:N \l_@@_last_col_int
\int_zero:N \l_@@_first_row_int
@@ -7665,9 +8262,9 @@ c & c & b & a & e
%
% Error message when the user gives an incorrect value for |last-row|.
%
-% A dotted line can no longer cross another dotted line (except the dotted lines
-% drawn by |\cdottedline|, the symbol |:| (in the preamble of the array) and
-% |\line| in |code-after|.
+% A dotted line can no longer cross another dotted line (excepted the dotted
+% lines drawn by |\cdottedline|, the symbol |:| (in the preamble of the array) and
+% |\line| in |code-after|).
%
% The starred versions of |\Cdots|, |\Ldots|, etc. are now deprecated because,
% with the new implementation, they become pointless. These starred versions
@@ -7763,6 +8360,25 @@ c & c & b & a & e
%
% Correction of a bug linked to |first-row| and |last-row|.
%
+% \subsection*{Changes between versions 3.11 and 3.12}
+%
+% Command |\rotate| in the cells of the array.
+%
+% Options |vlines|, |hlines| and |hvlines|.
+%
+% Option |baseline| pour |{NiceArray}| (uniquement).
+%
+% The name of the Tikz nodes created by the command |\Block| has changed: when
+% the command has been issued in the cell $i$|-|$j$, the name is
+% $i$|-|$j$|-block| and, if the creation of the ``medium nodes'' is required, a
+% node $i$|-|$j$|-block-medium| is created.
+%
+% If the user try to use more columns than allowed by its environment, an error
+% is raised by nicematrix (instead of a low-level error).
+%
+% The package must be loaded with the option |obsolete-environments| if we want
+% to use the deprecated environments.
+%
% \PrintIndex
%
% \tableofcontents
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index a9862fd6a3..f56d0ccfd1 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/translations/README b/macros/latex/contrib/translations/README
index ce94dac6bb..a944202cc2 100644
--- a/macros/latex/contrib/translations/README
+++ b/macros/latex/contrib/translations/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the TRANSLATIONS package v1.7a - 2017/08/31
+the TRANSLATIONS package v1.8 - 2020/02/28
internationalization of LaTeX2e packages
--------------------------------------------------------------------------
@@ -7,7 +7,7 @@ Clemens Niederberger
Web: https://github.com/cgnieder/translations
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2012-2017 Clemens Niederberger
+Copyright 2012--2020 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-catalan.trsl b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-catalan.trsl
index d136677d9e..dd9fe5409b 100644
--- a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-catalan.trsl
+++ b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-catalan.trsl
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-dutch.trsl b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-dutch.trsl
index a9b8a61b00..5d70d9dfb9 100644
--- a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-dutch.trsl
+++ b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-dutch.trsl
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-english.trsl b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-english.trsl
index a01c359094..13c12392b8 100644
--- a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-english.trsl
+++ b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-english.trsl
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-french.trsl b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-french.trsl
index d40b0d6ca5..ed0a99cd66 100644
--- a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-french.trsl
+++ b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-french.trsl
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-german.trsl b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-german.trsl
index db4405016c..1bda332224 100644
--- a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-german.trsl
+++ b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-german.trsl
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-spanish.trsl b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-spanish.trsl
index ef94881407..38d4dcf827 100644
--- a/macros/latex/contrib/translations/dicts/translations-basic-dictionary-spanish.trsl
+++ b/macros/latex/contrib/translations/dicts/translations-basic-dictionary-spanish.trsl
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/translations/translations.sty b/macros/latex/contrib/translations/translations.sty
index 6c5e03bbf2..5875db674b 100644
--- a/macros/latex/contrib/translations/translations.sty
+++ b/macros/latex/contrib/translations/translations.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -25,8 +25,8 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\newcommand*\@trnslt@date{2017/08/31}
-\newcommand*\@trnslt@version{v1.7a}
+\newcommand*\@trnslt@date{2018/02/28}
+\newcommand*\@trnslt@version{v1.8}
\newcommand*\@trnslt@packageinfo{internationalization of LaTeX2e packages}
\ProvidesPackage{translations}[%
@@ -143,7 +143,9 @@
\@trnslt@if@language{#1}
{}{%
\csdef{@trnslt@language@#1}{#1}%
- \listeadd\@trnslt@languages{#1}%
+ \@trnslt@if@dialect{#1}
+ {}
+ {\listeadd\@trnslt@languages{#1}}%
}%
}
@@ -838,6 +840,29 @@
\DeclareLanguage{vietnamese}
\DeclareLanguage{welsh}
+\DeclareLanguageDialect{british}{english}
+\DeclareLanguageDialect{australian}{english}
+\DeclareLanguageDialect{american}{english}
+\DeclareLanguageDialect{acadian}{french}
+\DeclareLanguageDialect{canadien}{french}
+\DeclareLanguageDialect{canadian}{english}
+\DeclareLanguageDialect{newzealand}{english}
+\DeclareLanguageDialect{irish}{gaelic}
+\DeclareLanguageDialect{scottish}{gaelic}
+\DeclareLanguageDialect{austrian}{german}
+\DeclareLanguageDialect{hindi}{hindustani}
+\DeclareLanguageDialect{urdu}{hindustani}
+\DeclareLanguageDialect{indonesian}{malay}
+\DeclareLanguageDialect{brazil}{portuges}
+\DeclareLanguageDialect{serbian}{serbocroatian}
+\DeclareLanguageDialect{croatian}{serbocroatian}
+\DeclareLanguageDialect{lowersorbian}{sorbian}
+\DeclareLanguageDialect{uppersorbian}{sorbian}
+\DeclareLanguageDialect{swissgerman}{german}
+\DeclareLanguageDialect{swissfrench}{french}
+\DeclareLanguageDialect{swissitalian}{italian}
+\DeclareLanguageDialect{swissromansh}{romansh}
+
% --------------------------------------------------------------------------
% aliases and dialects:
\DeclareLanguageAlias {Afrikaans}{afrikaans}
@@ -866,32 +891,23 @@
\DeclareLanguageAlias {Finnish}{finnish}
\DeclareLanguageAlias {francais}{french}
\DeclareLanguageAlias {Francais}{francais}
-\DeclareLanguageDialect{canadien}{french}
\DeclareLanguageAlias {Canadien}{canadien}
\DeclareLanguageAlias {French}{french}
-\DeclareLanguageDialect{acadian}{french}
\DeclareLanguageAlias {Acadian}{acadian}
\DeclareLanguageAlias {frenchle}{french}
-\DeclareLanguageDialect{american}{english}
\DeclareLanguageAlias {American}{american}
-\DeclareLanguageDialect{australian}{english}
\DeclareLanguageAlias {Australian}{australian}
-\DeclareLanguageDialect{british}{english}
\DeclareLanguageAlias {British}{british}
-\DeclareLanguageDialect{canadian}{english}
\DeclareLanguageAlias {Canadian}{canadian}
\DeclareLanguageAlias {English}{english}
\DeclareLanguageAlias {UKenglish}{british}
\DeclareLanguageAlias {USenglish}{american}
-\DeclareLanguageDialect{newzealand}{english}
\DeclareLanguageAlias {Newzealand}{newzealand}
\DeclareLanguageAlias {Ethiop}{ethiop}
\DeclareLanguageAlias {Esperanto}{esperanto}
\DeclareLanguageAlias {Estonian}{estonian}
\DeclareLanguageAlias {Friulan}{friulan}
\DeclareLanguageAlias {Gaelic}{gaelic}
-\DeclareLanguageDialect{irish}{gaelic}
-\DeclareLanguageDialect{scottish}{gaelic}
\DeclareLanguageAlias {Irish}{irish}
\DeclareLanguageAlias {irish gaelic}{irish}
\DeclareLanguageAlias {Irish Gaelic}{irish}
@@ -902,7 +918,6 @@
\DeclareLanguageAlias {German}{german}
\DeclareLanguageAlias {germanb}{german}
\DeclareLanguageAlias {ngerman}{german}
-\DeclareLanguageDialect{austrian}{german}
\DeclareLanguageAlias {Austrian}{austrian}
\DeclareLanguageAlias {naustrian}{austrian}
\DeclareLanguageAlias {Greek}{greek}
@@ -913,9 +928,7 @@
\DeclareLanguageAlias {Hindustani}{hindustani}
\DeclareLanguageAlias {hindi-urdu}{hindustani}
\DeclareLanguageAlias {Hindi-Urdu}{hindi-urdu}
-\DeclareLanguageDialect{hindi}{hindustani}
\DeclareLanguageAlias {Hindi}{hindi}
-\DeclareLanguageDialect{urdu}{hindustani}
\DeclareLanguageAlias {Urdu}{urdu}
\DeclareLanguageAlias {Hungarian}{hungarian}
\DeclareLanguageAlias {magyar}{hungarian}
@@ -949,7 +962,6 @@
\DeclareLanguageAlias {Bahasai}{bahasai}
\DeclareLanguageAlias {bahasam}{bahasa}
\DeclareLanguageAlias {Bahasam}{bahasam}
-\DeclareLanguageDialect{indonesian}{malay}
\DeclareLanguageAlias {Indonesian}{indonesian}
\DeclareLanguageAlias {indon}{indonesian}
%
@@ -975,7 +987,6 @@
\DeclareLanguageAlias {Piemonteis}{piemonteis}
\DeclareLanguageAlias {Pinyin}{pinyin}
\DeclareLanguageAlias {Polish}{polish}
-\DeclareLanguageDialect{brazil}{portuges}
\DeclareLanguageAlias {Brazil}{brazil}
\DeclareLanguageAlias {brazilian}{brazil}
\DeclareLanguageAlias {Brazilian}{brazilian}
@@ -998,18 +1009,14 @@
\DeclareLanguageAlias {Serbocroatian}{serbocroatian}
\DeclareLanguageAlias {serbo-croatian}{serbocroatian}
\DeclareLanguageAlias {Serbo-Croatian}{serbocroatian}
-\DeclareLanguageDialect{serbian}{serbocroatian}
\DeclareLanguageAlias {Serbian}{serbian}
\DeclareLanguageAlias {serbianc}{serbian}
-\DeclareLanguageDialect{croatian}{serbocroatian}
\DeclareLanguageAlias {Croatian}{croatian}
\DeclareLanguageAlias {Slovak}{slovak}
\DeclareLanguageAlias {Slovenian}{slovenian}
\DeclareLanguageAlias {slovene}{slovenian}
\DeclareLanguageAlias {Slovene}{slovene}
\DeclareLanguageAlias {Sorbian}{sorbian}
-\DeclareLanguageDialect{lowersorbian}{sorbian}
-\DeclareLanguageDialect{uppersorbian}{sorbian}
\DeclareLanguageAlias {Lowersorbian}{lowersorbian}
\DeclareLanguageAlias {Uppersorbian}{uppersorbian}
\DeclareLanguageAlias {lsorbian}{lowersorbian}
@@ -1023,10 +1030,6 @@
\DeclareLanguageAlias {Spanglish}{spanglish}
\DeclareLanguageAlias {Spanish}{spanish}
\DeclareLanguageAlias {Swedish}{swedish}
-\DeclareLanguageDialect{swissgerman}{german}
-\DeclareLanguageDialect{swissfrench}{french}
-\DeclareLanguageDialect{swissitalian}{italian}
-\DeclareLanguageDialect{swissromansh}{romansh}
\DeclareLanguageAlias {Swissgerman}{swissgerman}
\DeclareLanguageAlias {swiss german}{swissgerman}
\DeclareLanguageAlias {Swiss German}{swissgerman}
@@ -1060,11 +1063,22 @@
% OK, we have everything, do we? No, wait: let's load the basic dictionary
% that is part of this package if it is available for the document language
% --------------------------------------------------------------------------
-% load basic dictionary if available
+% load basic dictionaries if available
\AtBeginDocument{%
- \@trnslt@load@dictionary@silent@for
- {translations-basic-dictionary}
- \@trnslt@current@language
+ \@ifpackageloaded{babel}
+ {\let\@trnslt@loaded@languages\bbl@loaded}
+ {}%
+ \@ifpackageloaded{polyglossia}
+ {\let\@trnslt@loaded@languages\xpg@loaded}
+ {}%
+ \ifdefined\@trnslt@loaded@languages\else
+ \let\@trnslt@loaded@languages\@trnslt@current@language
+ \fi
+ \expanded{%
+ \noexpand\forcsvlist
+ {\noexpand\@trnslt@load@dictionary@silent@for{translations-basic-dictionary}}
+ {\expandonce\@trnslt@loaded@languages}%
+ }%
}
\endinput
@@ -1158,3 +1172,5 @@
2017/07/03 v1.6a - fix issue #6 (bug in \@trnslt@save@translation@for)
2017/07/06 v1.7 - return translation values in \unexpanded
2017/08/31 v1.7a - add missing dependency on pdftexcmds
+2020/02/28 v1.8 - load basic dictionary for each loaded language (if
+ available)
diff --git a/macros/latex/contrib/translations/translations_en.pdf b/macros/latex/contrib/translations/translations_en.pdf
index 425752712f..7087da4bdc 100644
--- a/macros/latex/contrib/translations/translations_en.pdf
+++ b/macros/latex/contrib/translations/translations_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/translations/translations_en.tex b/macros/latex/contrib/translations/translations_en.tex
index a39561bdc2..2b04600d0d 100644
--- a/macros/latex/contrib/translations/translations_en.tex
+++ b/macros/latex/contrib/translations/translations_en.tex
@@ -1,7 +1,7 @@
-% !arara: pdflatex: { shell: on }
+% arara: pdflatex: { shell: on, interaction: nonstopmode }
% !arara: biber
-% arara: pdflatex
-% arara: pdflatex
+% !arara: pdflatex
+% !arara: pdflatex
% --------------------------------------------------------------------------
% the TRANSLATIONS package
%
@@ -12,7 +12,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -31,8 +31,10 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\documentclass[load-preamble+,french,spanish,ngerman,english]{cnltx-doc}
+\documentclass[load-preamble]{cnltx-doc}
+\usepackage[french,spanish,ngerman,english]{babel}
% ----------------------------------------------------------------------------
+\usepackage{imakeidx}
% document layout and typographic features
\setcnltx{
package = {translations} ,
@@ -81,13 +83,19 @@
\microtypesetup{tracking=scshape}
-\defbibheading{bibliography}[\bibname]{\addsec{#1}}
-
+\usepackage[
+ backend=biber,
+ style=cnltx,
+ sortlocale=en_US,
+ indexing=cite]{biblatex}
\usepackage{csquotes}
+\addbibresource{cnltx.bib}
+
+\usepackage[biblatex]{embrac}
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
-\usepackage{embrac}[2012/06/29]
- \ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
- \ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+\defbibheading{bibliography}{\section{References}}
% ----------------------------------------------------------------------------
% other packages, bibliography, index
@@ -420,7 +428,7 @@ Commands without the marker aren't expandable.
\meta{false} if the current \pkg{babel} language is \code{american}.
\expandable\command{ifcurrentbaselanguage}[\marg{lang}\marg{true}\marg{false}]
\sinceversion{1.2}Places \meta{true} in the input stream if the current
- language is \meta{lang}. Note: a dialect does notcount as a language of
+ language is \meta{lang}. Note: a dialect does not count as a language of
it's own here. If the current \pkg{babel} language is \code{american}
then \cs{ifcurrentbaselanguage}\Marg{English} will be \meta{true}.
\end{commands}
@@ -488,7 +496,7 @@ provided. If the user \emph{has} loaded one of the language packages but has
chosen a language for which no translation is defined the language `fallback'
will be used, \ie, the translation provided with
\cs{DeclareTranslationFallback}. If no fallback translation is provided
-either the translation will expand to the literal string.
+either, the translation will expand to the literal string.
The following three examples should make this concept clear:
@@ -618,10 +626,13 @@ Every dictionary file \emph{must} contain the declaration
\item German, and
\item Spanish.
\end{itemize}
-The corresponding dictionary is loaded automatically if the document language
-is one of these languages. If you'd like to contribute and add the basic
-dictionary in your language this is more than welcome and highly appreciated!
-The easiest way to do this would be to copy one of the existing files
+The corresponding dictionary\footnote{Or dictionaries if more than one of
+ these languages are loaded in a document. This works since v0.18.} is loaded
+automatically if the document language is one of these languages.
+
+\emph{If you'd like to contribute and add the basic dictionary in your
+ language this is more than welcome and highly appreciated!} The easiest way
+to do this would be to copy one of the existing files
\code{translations-basic-dictionary-\meta{lang}.trsl} and modify the file
accordingly. You can then send me the file via email and I'll add it to
\translations.
@@ -775,4 +786,6 @@ case. Should you miss a language please send me an email so I can add it to
% \section{Implementation}
% \lstinputlisting[style=cnltx]{translations.sty}
+\printbibliography
+
\end{document}
diff --git a/macros/latex/contrib/zwpagelayout/README b/macros/latex/contrib/zwpagelayout/README
index accc23f8a1..1a7f466f62 100644
--- a/macros/latex/contrib/zwpagelayout/README
+++ b/macros/latex/contrib/zwpagelayout/README
@@ -1,5 +1,5 @@
=============================================================================
-Package: zwpagelayout Version 1.4c 13 Janyary 2013
+Package: zwpagelayout Version 1.4d 28 February 2020
=============================================================================
This package was developed as a typographers toolbox offering the most
@@ -10,12 +10,24 @@ Finally it is possible to reflect pages both horizontally and vertically.
Partial PDF/X conformance is implemented and black overprint is enabled
in pdfTeX, dvips, as well as (x)dvipdfm(x) drivers, i.e in XeLaTeX.
-Version 1.4c is a bug fix, the PDF boxes now properly work in the
-(x)dvipdfm(x) family of drivers.
+Version 1.4d is a bug fix:
+* PDF/X-1a identification corrected.
+* Package iftex loaded instead of ifpdf and ifxetex.
+* Lualatex compatibility supported
Version 1.4 implements black overprint for (x)dvipdfm(x) family of drivers,
i.e. it now works also with XeLaTeX.
+
+Installation:
+
+1. put zwpagelayout.sty to the directory where latex expects packages,
+ preferably texmf-dist/tex/latex/zwpagelayout
+
+2. put all remaining files to a directory where texdoc looks for
+ documentation, preferably texmf-dist/doc/zwpagelayout
+
+
The license of the package is LPPL.
Author: Z. Wagner, http://icebearsoft.euweb.cz
diff --git a/macros/latex/contrib/zwpagelayout/adjustfoot.pdf b/macros/latex/contrib/zwpagelayout/adjustfoot.pdf
index ef284c605d..d2384367b3 100644
--- a/macros/latex/contrib/zwpagelayout/adjustfoot.pdf
+++ b/macros/latex/contrib/zwpagelayout/adjustfoot.pdf
Binary files differ
diff --git a/macros/latex/contrib/zwpagelayout/adjusthead.pdf b/macros/latex/contrib/zwpagelayout/adjusthead.pdf
index 98727f1f81..9598698e97 100644
--- a/macros/latex/contrib/zwpagelayout/adjusthead.pdf
+++ b/macros/latex/contrib/zwpagelayout/adjusthead.pdf
Binary files differ
diff --git a/macros/latex/contrib/zwpagelayout/coversample.pdf b/macros/latex/contrib/zwpagelayout/coversample.pdf
index 614b3124d1..334662fd3d 100644
--- a/macros/latex/contrib/zwpagelayout/coversample.pdf
+++ b/macros/latex/contrib/zwpagelayout/coversample.pdf
Binary files differ
diff --git a/macros/latex/contrib/zwpagelayout/zwpagelayout.pdf b/macros/latex/contrib/zwpagelayout/zwpagelayout.pdf
index 73f1b92a91..aedc8a60dd 100644
--- a/macros/latex/contrib/zwpagelayout/zwpagelayout.pdf
+++ b/macros/latex/contrib/zwpagelayout/zwpagelayout.pdf
Binary files differ
diff --git a/macros/latex/contrib/zwpagelayout/zwpagelayout.sty b/macros/latex/contrib/zwpagelayout/zwpagelayout.sty
index 6dc256aa63..35e7416976 100644
--- a/macros/latex/contrib/zwpagelayout/zwpagelayout.sty
+++ b/macros/latex/contrib/zwpagelayout/zwpagelayout.sty
@@ -1,7 +1,7 @@
-\ProvidesPackage{zwpagelayout}[2013/01/13 ZW Page Layout]
-\PackageInfo{zwpagelayout}{$Id: zwpagelayout.sty 453 2013-01-13 17:12:17Z zw $\@gobble}
+\ProvidesPackage{zwpagelayout}[2020/02/28 ZW Page Layout]
+\PackageInfo{zwpagelayout}{$Id: zwpagelayout.sty 547 2020-02-28 13:17:43Z zw $\@gobble}
-%% Copyright 2008--2013 Z. Wagner, http://icebearsoft.euweb.cz
+%% Copyright 2008--2020 Z. Wagner, http://icebearsoft.euweb.cz
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -20,8 +20,8 @@
% adjustfoot.tex, adjustfoot.pdf, adjusthead.tex, adjusthead.pdf,
% coversample.tex, coversample.pdf, LoremIpsumDolor.tex.
-\@ifpackageloaded{ifpdf}{}{\IfFileExists{ifpdf.sty}{\RequirePackage{ifpdf}}{\newif\ifpdf}}
-\@ifpackageloaded{ifxetex}{}{\IfFileExists{ifxetex.sty}{\RequirePackage{ifxetex}}{\newif\ifxetex}}
+\@ifpackageloaded{iftex}{}{\IfFileExists{iftex.sty}{\RequirePackage{iftex}}{\newif\ifpdf\newif\ifxetex\newif\ifluatex}}
+\ifluatex\RequirePackage{luatex85}\fi
\RequirePackage{kvoptions}[2010/02/22]
\SetupKeyvalOptions{family=zwpl,prefix=zwpl@}
@@ -342,7 +342,7 @@
\ifcat$\zwpl@pdfminorversion$ \else \ZWifdriver{pdftex}{\pdfminorversion3 \relax}\fi
\def\zwpl@pdfxinfo{}
\ifzwpl@pdfx
- \def\zwpl@pdfxinfo{ /GTS_PDFXVersion (PDF/X-1:2001) /GTS_PDFXConformance (PDFX-1a:2001)}
+ \def\zwpl@pdfxinfo{ /GTS_PDFXVersion (PDF/X-1a:2001) /GTS_PDFXConformance (PDFX-1a:2001)}
\ifcat$\zwpl@ICCfile$ \else
\ifcase\zwpl@Driver
\or
@@ -401,7 +401,7 @@
/S/GTS_PDFX
/OutputCondition (\zwpl@OutputCondition)
/OutputConditionIdentifier (\zwpl@OutputConditionIdentifier)
- /RegistryName (http://www/color.org)\zwpl@profile
+ /RegistryName (http://www.color.org)\zwpl@profile
>> ]}
\ifcase\zwpl@Driver
\or
diff --git a/macros/latex/contrib/zwpagelayout/zwpagelayout.tex b/macros/latex/contrib/zwpagelayout/zwpagelayout.tex
index 460e3805bc..fe99d96270 100644
--- a/macros/latex/contrib/zwpagelayout/zwpagelayout.tex
+++ b/macros/latex/contrib/zwpagelayout/zwpagelayout.tex
@@ -1,4 +1,4 @@
-%% $Id: zwpagelayout.tex 454 2013-01-13 18:30:27Z zw $
+%% $Id: zwpagelayout.tex 548 2020-02-28 13:27:51Z zw $
\input utf8-t1 % encTeX required
\documentclass[11pt]{article}
\usepackage{zwgetfdate}
@@ -118,11 +118,20 @@ proof-reading is time consuming and expensive. This package therefore allows the
to be switched off and just add the crop marks provided the paper dimensions are correctly
supplied. The details will be explained later when describing the package options.
+\section{Installation}\label{installation}
+The package consists of a single file, \texttt{zwpagelayout.sty}. Put it to a directory where
+\LaTeX\ expects packages, preferably \texttt{texmf-dist/tex/latex/zwpagelayout}. All remaining
+files belong to the documentation, put them to a directory where documentation (including
+documentation sources) is expected by \pkg{texdoc} or a similar program, preferably
+\texttt{texmf-dist/doc/zwpagelayout}.
+
\section{Package dependence}
As written in the introduction, the goal was to implement as much within this single package in
order to reduce the risk of clashes. Yet a few packages may be loaded. The package needs to know
-what engine is being used. For this purpose the \pkg{ifxetex} and \pkg{ifpdf} packages are used. If
-any of these packages is not found, it is assumed that the corresponding engine is not available.
+what engine is being used. For this purpose the \pkg{iftex} package\footnote{Up to version 1.4c
+both \pkg{ifxetex} and \pkg{ifpdf} were used. Nowadays both these packages are deprecated and load
+\pkg{iftex}. The package would fail with a critical error if they were used.} is used. If
+the package is not found, it is assumed that the engines are not available.
No error is reported. The color support requires the \pkg{color} package. It is loaded only if the
color support is requested. The algorithm for deciding when the package is needed will be described
in detail in section~\ref{color}.
@@ -1262,6 +1271,15 @@ This section summarizes the changes. The version and the package date is given.
specify the date in the \cmd{usepackage} or \cmd{RequirePackage} command if you rely on a specific
feature not available in the old version of the package.
+\subsection{Version 1.4d, 2020/02/07}
+\begin{itemize}
+\item Bug fix, packages \pkg{ifpdf} and \pkg{ifxetex} replaced with \pkg{iftex}.
+\item Bug fix, identification of PDF/X-1a corrected.
+\item Feature request, luatex85 loaded in order to support Lua\LaTeX\ compatibility.
+\item Modification, distribution file flattened as required by CTAN, see
+section~\ref{installation}.
+\end{itemize}
+
\subsection{Version 1.4c, 2013/01/13}
Bug fix, the PDF boxes are properly set even in the (x)dvipdfm(x) family of drivers, i.\,e.\@ in
\XeLaTeX.
@@ -1346,7 +1364,7 @@ packages.
\section{License}
The package can be used and distributed according to the \LaTeX\ Project Public License version~1.3 or later the
-text of which can be found at the \texttt{License.txt} file in the \texttt{doc} directory or at
+text of which can be found at the \texttt{License.txt} file or at
\url{http://www.latex-project.org/lppl.txt}
\section{Trade marks}
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 9b15c73a61..3fb49b3d49 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,4 +1,4 @@
-## Babel 3.40
+## Babel 3.41
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -7,9 +7,9 @@ lualatex out of the box. A few even work with plain formats.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.40 are described in:
+Changes in version 3.41 are described in:
-https://github.com/latex3/babel/wiki/What's-new-in-babel-3.40
+https://github.com/latex3/babel/wiki/What's-new-in-babel-3.41
Included is a set of ini files for about 200 languages.
@@ -44,14 +44,23 @@ respective authors.
### Latest changes
```
+3.41 2020-02-27
+ - Counters and numerals added in some ini files, based on those
+ defined in CSS (Abjad, Alphabetic Hebrew, Japanese, etc.).
+ - Fix - A bug in the fix for #47, because \@elt was not reset
+ (#51).
+ - Fix - Error when french was loaded and an ini file read (#50).
+ - Fix - A typo in Greek files: Miriad must read Myriad.
+
3.40 2020-02-14
- New ini files for Latin and Greek (xe/lua).
- Add 'other' characters used in hyphenation patters (eg,
apostrophes).
- Fix - Old Plain TeX and Plain XeTeX raised an error.
- Fix - Option T1 in fontenc was not recognized to set
- \latinencoding with LaTeX 2020-02-02.
+ \latinencoding with LaTeX 2020-02-02 (#47)
- Fix - Locale names were hardcoded in some babel-...tex files.
+See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.40
3.39 2020-02-03
- Languages can now be loaded on the fly (via \babelprovide).
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index d0c45fd23c..37f4e71835 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -31,7 +31,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2020/02/14 v3.40 The Babel package]
+\ProvidesFile{babel.dtx}[2020/02/28 v3.41 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -1981,23 +1981,29 @@ also the package \textsf{combofont} for a complementary approach.}
\Describe\babelfont{\oarg{language-list}\marg{font-family}%
\oarg{font-options}\marg{font-name}}
-The main purpose of |\babelfont| is to define at once in a multilingual
-document the fonts required by the different languages, with their
-corresponding language systems (script and language). So, if you load,
-say, 4 languages, |\babelfont{rm}{FreeSerif}| defines 4 fonts (with their
-variants, of course), which are switched with the language by \babel.
-It is a tool to make things easier and transparent to the user.
+The main purpose of |\babelfont| is to define at once in a
+multilingual document the fonts required by the different languages,
+with their corresponding language systems (script and language). So, if
+you load, say, 4 languages, |\babelfont{rm}{FreeSerif}| defines 4 fonts
+(with their variants, of course), which are switched with the language
+by \babel. It is a tool to make things easier and transparent to the
+user.
Here \textit{font-family} is |rm|, |sf| or |tt| (or newly defined
ones, as explained below), and \textit{font-name} is the same as in
\textsf{fontspec} and the like.
If no language is given, then it is considered the default font for
-the family, activated when a language is selected. On the other hand,
-if there is one or more languages in the optional argument, the font
-will be assigned to them, overriding the default. Alternatively, you
-may set a font for a script -- just precede its name (lowercase) with
-a star (eg, |*devanagari|).
+the family, activated when a language is selected.
+
+On the other hand, if there is one or more languages in the optional
+argument, the font will be assigned to them, overriding the default one.
+Alternatively, you may set a font for a script -- just precede its name
+(lowercase) with a star (eg, |*devanagari|). With this optional
+argument, the font is \textit{not} yet defined, but just predeclared.
+This means you may define as many fonts as you want ‘just in case’,
+because if the language is never selected, the corresponding
+|\babelfont| declaration is just ignored.
\Babel{} takes care of the font language and the font script when
languages are selected (as well as the writing direction); see the
@@ -2384,7 +2390,7 @@ Currently used only in Southeast Asian scrips, like Thai. Ignored if 0
|ini|-based languages).
\end{note}
-\subsection{Digits}
+\subsection{Digits and counters}
\New{3.20} About thirty |ini| files define a field named
|digits.native|. When it is present, two macros are created:
@@ -2408,12 +2414,42 @@ _\telugucounter{section}_
\end{document}
\end{verbatim}
-Languages providing native digits in all or some variants are Arabic,
-Assamese, Bangla, Tibetar, Bodo, Central Kurdish, Dzongkha, Persian,
-Gujarati, Hindi, Khmer, Kannada, Konkani, Kashmiri, Lao, Northern Luri,
-Malayalam, Marathi, Burmese, Mazanderani, Nepali, Odia, Punjabi,
-Pashto, Tamil, Telugu, Thai, Uyghur, Urdu, Uzbek, Vai, Cantonese,
-Chinese.
+Languages providing native digits in all or some variants are:
+\begin{multicols}{5}
+Arabic\\
+Assamese\\
+Bangla\\
+Tibetar\\
+Bodo\\
+Central Kurdish\\
+Dzongkha\\
+Persian\\
+Gujarati\\
+Hindi\\
+Khmer\\
+Kannada\\
+Konkani\\
+Kashmiri\\
+Lao\\
+Northern Luri\\
+Malayalam\\
+Marathi\\
+Burmese\\
+Mazanderani\\
+Nepali\\
+Odia\\
+Punjabi\\
+Pashto\\
+Tamil\\
+Telugu\\
+Thai\\
+Uyghur\\
+Urdu\\
+Uzbek\\
+Vai\\
+Cantonese\\
+Chinese
+\end{multicols}
\New{3.30} With \luatex{} there is an alternative approach for mapping
digits, namely, |mapdigits|. Conversion is based on the language and it
@@ -2423,6 +2459,71 @@ bidi and fonts are processed (ie, to the node list as generated by the
bidirectional behavior (unlike |Numbers=Arabic| in \textsf{fontspec},
which is not recommended).
+\New{4.41} Many `ini` locale files has been extended with information about
+non-positional numerical systems, based on those predefined in CSS.
+They only work with \xetex{} and \luatex{} and are fully expendable (even
+inside an |\edef|). Currently, they are limited to numbers below 10000.
+
+There are several ways to use them (for the availabe styles in each
+language, see the list below):
+
+\begin{itemize}
+\item |\localenumeral|\marg{style}\marg{number}, like
+ |\localenumeral{abjad}{15}|
+\item |\localecounter|\marg{style}\marg{counter}, like
+ |\localecounter{lower}{section}|
+\item In |\babelprovide|, as an argument to the keys |alph| and |Alph|,
+which redefine what |\alph| and |\Alph| print. For example:
+\begin{verbatim}
+\babelprovide[alph=alphabetic]{thai}
+\end{verbatim}
+\end{itemize}
+
+The styles are:
+\begin{description}
+\itemsep=-\parskip
+\item[Ancient Greek] |lower.ancient|, |upper.ancient|
+
+\item[Arabic] |abjad|, |maghrebi.abjad|
+
+\item[Belarusan, Bulgarian, Macedonian, Serbian] |lower|, |upper|
+
+\item[Hebrew] |letters| (neither geresh nor gershayim yet)
+
+\item[Hindi] |alphabetic|
+
+\item[Armenian] |lower|, |upper|
+
+\item[Japanese] |hiragana|, |hiragana.iroha|, |katakana|,
+|katakana.iroha|, |circled.katakana|, |informal|, |formal|,
+|cjk-earthly-branch|, |cjk-heavenly-stem|, f|ullwidth.lower.alpha|,
+|fullwidth.upper.alpha|
+
+\item[Georgian] |letters|
+
+\item[Greek] |lower.modern|, |upper.modern|, |lower.ancient|,
+|upper.ancient| (all with keraia)
+
+\item[Khmer] |consonant|
+
+\item[Korean] |consonant|, |syllabe|, |hanja.informal|,
+|hanja.formal|, |hangul.formal|, |cjk-earthly-branch|,
+|cjk-heavenly-stem|, |fullwidth.lower.alpha|, |fullwidth.upper.alpha|
+
+\item[Persian] |abjad|, |alphabetic|
+
+\item[Russian] |lower|, |lower.full|, |upper|, |upper.full|
+
+\item[Tamil] |ancient|
+
+\item[Thai] |alphabetic|
+
+\item[Ukrainian] |lower| , |lower.full|, |upper| , |upper.full|
+
+\item[Chinese] |cjk-earthly-branch|, |cjk-heavenly-stem|,
+|fullwidth.lower.alpha|, |fullwidth.upper.alpha|
+\end{description}
+
\subsection{Accessing language info}
\Describe{\languagename}{}
@@ -4327,8 +4428,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.40>>
-%<<date=2020/02/14>>
+%<<version=3.41>>
+%<<date=2020/02/28>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -6833,13 +6934,17 @@ help from Bernd Raichle, for which I am grateful.
% \end{macro}
%
% \begin{macro}{\babel@save}
+% \begin{macro}{\babel@savevariable}
+%
% The macro |\babel@save|\meta{csname} saves the current meaning of
% the control sequence \meta{csname} to
-% |\originalTeX|\footnote{\cs{originalTeX} has to be
-% expandable, i.\,e.\ you shouldn't let it to \cs{relax}.}.
-% To do this, we let the current meaning to a temporary control
-% sequence, the restore commands are appended to |\originalTeX| and
-% the counter is incremented.
+% |\originalTeX|\footnote{\cs{originalTeX} has to be expandable,
+% i.\,e.\ you shouldn't let it to \cs{relax}.}. To do this, we let
+% the current meaning to a temporary control sequence, the restore
+% commands are appended to |\originalTeX| and the counter is
+% incremented. The macro |\babel@savevariable|\meta{variable} saves
+% the value of the variable. \meta{variable} can be anything allowed
+% after the |\the| primitive.
%
% \begin{macrocode}
\def\babel@save#1{%
@@ -6848,23 +6953,13 @@ help from Bernd Raichle, for which I am grateful.
\bbl@exp{%
\def\\\originalTeX{\the\toks@\<babel@\number\babel@savecnt>\relax}}%
\advance\babel@savecnt\@ne}
-% \end{macrocode}
-%
-% \end{macro}
-%
-% \begin{macro}{\babel@savevariable}
-%
-% The macro |\babel@savevariable|\meta{variable} saves the value of
-% the variable. \meta{variable} can be anything allowed after the
-% |\the| primitive.
-%
-% \begin{macrocode}
\def\babel@savevariable#1{%
\toks@\expandafter{\originalTeX #1=}%
\bbl@exp{\def\\\originalTeX{\the\toks@\the#1\relax}}}
% \end{macrocode}
%
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\bbl@frenchspacing}
% \begin{macro}{\bbl@nonfrenchspacing}
@@ -7992,7 +8087,8 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl@KVP@intraspace\@nil
\let\bbl@KVP@intrapenalty\@nil
\let\bbl@KVP@onchar\@nil
- \let\bbl@KVP@chargroups\@nil
+ \let\bbl@KVP@alph\@nil
+ \let\bbl@KVP@Alph\@nil
\bbl@forkv{#1}{% TODO - error handling
\in@{/}{##1}%
\ifin@
@@ -8037,7 +8133,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@ifunset{bbl@lname@#2}%
{\def\BabelBeforeIni##1##2{%
\begingroup
- \catcode`\[=12 \catcode`\]=12 \catcode`\==12 %
+ \catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\;=12 %
\let\bbl@ini@captions@aux\@gobbletwo
\def\bbl@inidate ####1.####2.####3.####4\relax ####5####6{}%
\bbl@read@ini{##1}{basic data}%
@@ -8215,6 +8311,32 @@ help from Bernd Raichle, for which I am grateful.
}}%
\fi
\fi
+ % == alph, Alph ==
+ % What if extras<lang> contains a \babel@save\@alph? It won't be
+ % restored correctly when exiting the language, so we ignore
+ % this change with the \bbl@alph@saved trick.
+ \ifx\bbl@KVP@alph\@nil\else
+ \toks@\expandafter\expandafter\expandafter{%
+ \csname extras\languagename\endcsname}%
+ \bbl@exp{%
+ \def\<extras\languagename>{%
+ \let\\\bbl@alph@saved\\\@alph
+ \the\toks@
+ \let\\\@alph\\\bbl@alph@saved
+ \\\babel@save\\\@alph
+ \let\\\@alph\<bbl@cntr@\bbl@KVP@alph @\languagename>}}%
+ \fi
+ \ifx\bbl@KVP@Alph\@nil\else
+ \toks@\expandafter\expandafter\expandafter{%
+ \csname extras\languagename\endcsname}%
+ \bbl@exp{%
+ \def\<extras\languagename>{%
+ \let\\\bbl@Alph@saved\\\@Alph
+ \the\toks@
+ \let\\\@Alph\\\bbl@Alph@saved
+ \\\babel@save\\\@Alph
+ \let\\\@Alph\<bbl@cntr@\bbl@KVP@Alph @\languagename>}}%
+ \fi
% == require.babel in ini ==
% To load or reaload the babel-*.tex, if require.babel in ini
\bbl@ifunset{bbl@rqtex@\languagename}{}%
@@ -8511,6 +8633,24 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl@inikv@typography\bbl@inikv
\let\bbl@inikv@characters\bbl@inikv
\let\bbl@inikv@numbers\bbl@inikv
+\def\bbl@inikv@counters#1=#2\@@{%
+ \def\bbl@tempc{#1}%
+ \bbl@trim@def{\bbl@tempb*}{#2}%
+ \in@{.1$}{#1$}%
+ \ifin@
+ \bbl@replace\bbl@tempc{.1}{}%
+ \bbl@csarg\xdef{cntr@\bbl@tempc @\languagename}{%
+ \noexpand\bbl@alphnumeral{\bbl@tempc}}%
+ \fi
+ \in@{.F.}{#1}%
+ \ifin@\else\in@{.S.}{#1}\fi
+ \ifin@
+ \bbl@csarg\xdef{cntr@#1@\languagename}{\bbl@tempb*}%
+ \else
+ \toks@{}% Required by \bbl@buildifcase, which returns \bbl@tempa
+ \expandafter\bbl@buildifcase\bbl@tempb* \\ % Space after \\
+ \bbl@csarg{\global\expandafter\let}{cntr@#1@\languagename}\bbl@tempa
+ \fi}
\def\bbl@after@ini{%
\bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
\bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
@@ -8680,13 +8820,67 @@ help from Bernd Raichle, for which I am grateful.
\def\BabelBeforeIni##1##2{%
\begingroup
\bbl@add\bbl@secpost@identification{\closein\bbl@readstream }%
- \catcode`\[=12 \catcode`\]=12 \catcode`\==12 %
+ \catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\;=12 %
\bbl@read@ini{##1}{font and identification data}%
\endinput % babel- .tex may contain onlypreamble's
\endgroup}% boxed, to avoid extra spaces:
{\setbox\z@\hbox{\InputIfFileExists{babel-#1.tex}{}{}}}}
% \end{macrocode}
%
+% Alphabetic counters must be converted from a space separated list to
+% an |\ifcase| structure.
+%
+% \begin{macrocode}
+\def\bbl@buildifcase#1 {% Returns \bbl@tempa, requires \toks@={}
+ \ifx\\#1% % \\ before, in case #1 is multiletter
+ \bbl@exp{%
+ \def\\\bbl@tempa####1{%
+ \<ifcase>####1\space\the\toks@\<else>\\\@ctrerr\<fi>}}%
+ \else
+ \toks@\expandafter{\the\toks@\or #1}%
+ \expandafter\bbl@buildifcase
+ \fi}
+% \end{macrocode}
+%
+% The code for additive counters is somewhat tricky and it's based on
+% the fact the arguments just before |\@@| collects digits which have
+% been left ‘unused’ in previous arguments, the first of them being the
+% number of digits in the number to be converted. This explains the
+% reverse set |76543210|. Digits above 10000 are not handled yet. When
+% the key contains the subkey |.F.|, the number after is treated as an
+% special case. for a fixed form (see |babel-he.ini|, for example).
+%
+% \begin{macrocode}
+\newcommand\localenumeral[2]{\@nameuse{bbl@cntr@#1@\languagename}{#2}}
+\def\bbl@localecntr#1#2{\localenumeral{#2}{#1}}
+\newcommand\localecounter[2]{%
+ \expandafter\bbl@localecntr\csname c@#2\endcsname{#1}}
+\def\bbl@alphnumeral#1#2{%
+ \expandafter\bbl@alphnumeral@i\number#2 76543210\@@{#1}}
+\def\bbl@alphnumeral@i#1#2#3#4#5#6#7#8\@@#9{%
+ \ifcase\@car#8\@nil\or % Currenty <10000, but prepared for bigger
+ \bbl@alphnumeral@ii{#9}000000#1\or
+ \bbl@alphnumeral@ii{#9}00000#1#2\or
+ \bbl@alphnumeral@ii{#9}0000#1#2#3\or
+ \bbl@alphnumeral@ii{#9}000#1#2#3#4\else
+ \bbl@alphnum@invalid{>9999}%
+ \fi}
+\def\bbl@alphnumeral@ii#1#2#3#4#5#6#7#8{%
+ \bbl@ifunset{bbl@cntr@#1.F.\number#5#6#7#8@\languagename}%
+ {\@nameuse{bbl@cntr@#1.4@\languagename}#5%
+ \@nameuse{bbl@cntr@#1.3@\languagename}#6%
+ \@nameuse{bbl@cntr@#1.2@\languagename}#7%
+ \@nameuse{bbl@cntr@#1.1@\languagename}#8%
+ \ifnum#6#7#8>\z@ % An ad hod rule for Greek. Ugly. To be fixed.
+ \bbl@ifunset{bbl@cntr@#1.S.321@\languagename}{}%
+ {\@nameuse{bbl@cntr@#1.S.321@\languagename}}%
+ \fi}%
+ {\@nameuse{bbl@cntr@#1.F.\number#5#6#7#8@\languagename}}}
+\def\bbl@alphnum@invalid#1{%
+ \bbl@error{Alphabetic numeral too large (#1)}%
+ {Currently this is the limit.}}
+% \end{macrocode}
+%
% The information in the identification section can be useful, so the
% following macro just exposes it with a user command.
%
@@ -9521,6 +9715,7 @@ help from Bernd Raichle, for which I am grateful.
\else
\def\@elt#1{,#1,}%
\edef\bbl@tempa{\expandafter\@gobbletwo\@fontenc@load@list}%
+ \let\@elt\relax
\bbl@xin@{,T1,}\bbl@tempa
\ifin@
\xdef\latinencoding{\bbl@t@one}%
@@ -11822,6 +12017,7 @@ help from Bernd Raichle, for which I am grateful.
\endgroup
\bbl@trace{Macros for reading patterns files}
\def\bbl@get@enc#1:#2:#3\@@@{\def\bbl@hyph@enc{#2}}
+% TODO - Harcoded value:
\ifx\babelcatcodetablenum\@undefined
\def\babelcatcodetablenum{5211}
\fi
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index ad993d6a1e..be654b14b1 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright 2012-2020 Javier Bezos and Johannes L. Braams.
%% Copyright 1989-2008 Johannes L. Braams and any individual authors
%% listed elsewhere in this file. All rights reserved.
%%
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2020/02/14}
+\def\filedate{2020/02/28}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index d511adc135..b71e60883c 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index be409112ab..2a943ee42b 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2020/02/14 v3.40]
+\ProvidesFile{bbcompat.dtx}[2020/02/28 v3.41]
%</dtx>
%
%% File 'bbcompat.dtx'