summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-04 03:03:07 +0000
committerNorbert Preining <norbert@preining.info>2020-09-04 03:03:07 +0000
commit547e0bdac8f18f25b4cac1bb8234b9aecb2bcea8 (patch)
treed780e2601b5cbdd3aae05d5141d84689813fe4e6 /macros/latex/contrib
parentfc732340b62b41cedbe82bcb3675a86c65343a21 (diff)
CTAN sync 202009040303
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/docutils/README.md69
-rw-r--r--macros/latex/contrib/docutils/docutils.sty222
-rw-r--r--macros/latex/contrib/docutils/docutils.sty.html831
-rw-r--r--macros/latex/contrib/docutils/docutils.sty.txt275
-rw-r--r--macros/latex/contrib/hypdestopt/README.md17
-rw-r--r--macros/latex/contrib/hypdestopt/hypdestopt.dtx (renamed from macros/latex/contrib/oberdiek/hypdestopt.dtx)90
-rw-r--r--macros/latex/contrib/hypdestopt/hypdestopt.pdf (renamed from macros/latex/contrib/oberdiek/hypdestopt.pdf)bin323105 -> 323028 bytes
-rw-r--r--macros/latex/contrib/l3kernel/CHANGELOG.md11
-rw-r--r--macros/latex/contrib/l3kernel/README.md2
-rw-r--r--macros/latex/contrib/l3kernel/expl3.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/expl3.pdfbin585131 -> 585059 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.pdfbin1556010 -> 1555947 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3basics.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3bootstrap.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3box.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3candidates.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3cctab.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3clist.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3coffins.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3color-base.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3debug.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3deprecation.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.pdfbin263273 -> 263132 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3expan.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3file.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3flag.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-assign.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-aux.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-basics.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-expo.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-extended.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-logic.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-parse.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-random.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-round.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-traps.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-trig.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fparray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3int.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3intarray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3kernel-functions.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3keys.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3legacy.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3luatex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3msg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3names.dtx12
-rw-r--r--macros/latex/contrib/l3kernel/l3news.pdfbin379235 -> 379235 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news01.pdfbin113527 -> 113527 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news02.pdfbin140776 -> 140776 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news03.pdfbin144785 -> 144785 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news04.pdfbin107115 -> 107115 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news05.pdfbin105090 -> 105090 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news06.pdfbin140795 -> 140795 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news07.pdfbin119094 -> 119094 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news08.pdfbin152413 -> 152413 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news09.pdfbin235322 -> 235322 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news10.pdfbin147097 -> 147097 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news11.pdfbin165946 -> 165946 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news12.pdfbin199139 -> 199139 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.pdfbin75889 -> 75889 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3prop.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3quark.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3regex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3seq.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3skip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3sort.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.pdfbin279972 -> 279904 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.pdfbin228265 -> 228194 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3sys.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.pdfbin217636 -> 217567 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-case.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-purify.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3text.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3tl-analysis.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3tl.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3token.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3unicode.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/source3.pdfbin5862842 -> 5861960 bytes
-rw-r--r--macros/latex/contrib/l3kernel/source3.tex2
-rw-r--r--macros/latex/contrib/lwarp/README.txt2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.dtx2962
-rw-r--r--macros/latex/contrib/lwarp/lwarp.ins21
-rw-r--r--macros/latex/contrib/lwarp/lwarp.pdfbin2834622 -> 2923838 bytes
-rwxr-xr-xmacros/latex/contrib/lwarp/lwarpmk.lua5
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin421955 -> 420416 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex111
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx432
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1016556 -> 1024124 bytes
-rw-r--r--macros/latex/contrib/oberdiek/README.md3
-rw-r--r--macros/latex/contrib/oberdiek/aliascnt.pdfbin298594 -> 298594 bytes
-rw-r--r--macros/latex/contrib/oberdiek/bmpsize.pdfbin503673 -> 503673 bytes
-rw-r--r--macros/latex/contrib/oberdiek/centernot.pdfbin280539 -> 280539 bytes
-rw-r--r--macros/latex/contrib/oberdiek/chemarr.pdfbin294587 -> 294587 bytes
-rw-r--r--macros/latex/contrib/oberdiek/classlist.pdfbin277313 -> 277313 bytes
-rw-r--r--macros/latex/contrib/oberdiek/colonequals.pdfbin290302 -> 290302 bytes
-rw-r--r--macros/latex/contrib/oberdiek/dvipscol.pdfbin275213 -> 275213 bytes
-rw-r--r--macros/latex/contrib/oberdiek/engord.pdfbin324486 -> 324486 bytes
-rw-r--r--macros/latex/contrib/oberdiek/enparen.pdfbin310601 -> 310601 bytes
-rw-r--r--macros/latex/contrib/oberdiek/eolgrab.pdfbin322360 -> 322360 bytes
-rw-r--r--macros/latex/contrib/oberdiek/fibnum.pdfbin359960 -> 359960 bytes
-rw-r--r--macros/latex/contrib/oberdiek/flags.pdfbin289459 -> 289459 bytes
-rw-r--r--macros/latex/contrib/oberdiek/holtxdoc.pdfbin311828 -> 311828 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypbmsec.pdfbin295718 -> 295718 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypcap.pdfbin289452 -> 289452 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypdoc.pdfbin325461 -> 325461 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypgotoe.pdfbin291535 -> 291535 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hyphsubst.pdfbin305692 -> 305692 bytes
-rw-r--r--macros/latex/contrib/oberdiek/ifdraft.pdfbin271317 -> 271317 bytes
-rw-r--r--macros/latex/contrib/oberdiek/iflang.pdfbin320322 -> 320322 bytes
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek-bundle.bib7
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.ins1
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.pdfbin281421 -> 278436 bytes
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.tex15
-rw-r--r--macros/latex/contrib/oberdiek/pagegrid.pdfbin317241 -> 317241 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcol.pdfbin308360 -> 308360 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolfoot.pdfbin300028 -> 300028 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolparallel.pdfbin326040 -> 326040 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolparcolumns.pdfbin313719 -> 313719 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcrypt.pdfbin317206 -> 317206 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfrender.pdfbin388493 -> 388493 bytes
-rw-r--r--macros/latex/contrib/oberdiek/protecteddef.pdfbin313619 -> 313619 bytes
-rw-r--r--macros/latex/contrib/oberdiek/resizegather.pdfbin517711 -> 517711 bytes
-rw-r--r--macros/latex/contrib/oberdiek/rotchiffre.pdfbin323082 -> 323082 bytes
-rw-r--r--macros/latex/contrib/oberdiek/scrindex.pdfbin289199 -> 289199 bytes
-rw-r--r--macros/latex/contrib/oberdiek/setouterhbox.pdfbin335268 -> 335268 bytes
-rw-r--r--macros/latex/contrib/oberdiek/settobox.pdfbin299200 -> 299200 bytes
-rw-r--r--macros/latex/contrib/oberdiek/stackrel.pdfbin287648 -> 287648 bytes
-rw-r--r--macros/latex/contrib/oberdiek/stampinclude.pdfbin283435 -> 283435 bytes
-rw-r--r--macros/latex/contrib/oberdiek/tabularht.pdfbin336823 -> 336823 bytes
-rw-r--r--macros/latex/contrib/oberdiek/tabularkv.pdfbin260615 -> 260615 bytes
-rw-r--r--macros/latex/contrib/oberdiek/telprint.pdfbin309114 -> 309114 bytes
-rw-r--r--macros/latex/contrib/oberdiek/thepdfnumber.pdfbin352882 -> 352882 bytes
-rw-r--r--macros/latex/contrib/oberdiek/twoopt.pdfbin280332 -> 280332 bytes
-rw-r--r--macros/latex/contrib/pict2e/p2e-drivers.pdfbin216020 -> 216023 bytes
-rw-r--r--macros/latex/contrib/pict2e/pict2e.dtx124
-rw-r--r--macros/latex/contrib/pict2e/pict2e.pdfbin889454 -> 894989 bytes
-rw-r--r--macros/latex/contrib/scratch3/README4
-rw-r--r--macros/latex/contrib/scratch3/scratch3-fr.pdfbin508759 -> 508889 bytes
-rw-r--r--macros/latex/contrib/scratch3/scratch3-fr.tex4
-rw-r--r--macros/latex/contrib/scratch3/scratch3.sty13
151 files changed, 4627 insertions, 726 deletions
diff --git a/macros/latex/contrib/docutils/README.md b/macros/latex/contrib/docutils/README.md
new file mode 100644
index 0000000000..2a0cc3b195
--- /dev/null
+++ b/macros/latex/contrib/docutils/README.md
@@ -0,0 +1,69 @@
+docutils.sty
+============
+
+Helper commands and element definitions for Docutils_ LaTeX output.
+
+:Copyright: © 2020 Günter Milde
+
+:Licence: Released under the terms of the `2-Clause BSD license`__
+
+ __ https://opensource.org/licenses/BSD-2-Clause
+
+
+Changelog
+---------
+
+| 2020-08-28 first public version for Docutils >= 0.17
+
+Requirements
+------------
+
+None.
+
+Installation
+------------
+
+If possible, get this package from your distribution using its
+installation manager. Alternatively, copy/move/link ``docutils.sty``
+to a place where LaTeX can find it.
+
+Usage
+-----
+
+The package is intended for use with LaTeX documents generated from
+reStructuredText_ sources with Docutils_.
+
+When generating LaTeX documents, specify this package with the
+`"stylesheet"`_ `configuration option`_, e.g. ::
+
+ rst2latex --stylesheet=docutils exampledocument.txt
+
+The the Docutils `LaTeX writer` will then reference this package
+istead of inserting required definitions into the preamble of
+generated documents (see the `Docutils LaTeX Writer documentation`_
+for details).
+
+.. _reStructuredText: https://en.wikipedia.org/wiki/ReStructuredText
+
+.. _Docutils: https://docutils.sourceforge.io/
+
+.. _"stylesheet":
+ https://docutils.sourceforge.io/docs/user/config.html#stylesheet-latex-writers
+
+.. _configuration option:
+ https://docutils.sourceforge.io/docs/user/config.html
+
+.. _Docutils LaTeX Writer documentation:
+ https://docutils.sourceforge.io/docs/user/latex.html
+
+Documentation Generation
+------------------------
+
+The bidirectional text <-> code converter PyLit_ and Docutils_
+were used to generate the HTML documentation::
+
+ #> pylit docutils.sty
+ #> rst2html5 docutils.sty.txt docutils.sty.html
+
+.. _Pylit: https://repo.or.cz/pylit.git
+
diff --git a/macros/latex/contrib/docutils/docutils.sty b/macros/latex/contrib/docutils/docutils.sty
new file mode 100644
index 0000000000..b2b9ef7ec1
--- /dev/null
+++ b/macros/latex/contrib/docutils/docutils.sty
@@ -0,0 +1,222 @@
+%% docutils.sty: macros for Docutils LaTeX output.
+%%
+%% Copyright © 2020 Günter Milde
+%% Released under the terms of the `2-Clause BSD license`, in short:
+%%
+%% 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.
+
+% .. include:: README
+%
+% Implementation
+% ==============
+%
+% ::
+
+ \NeedsTeXFormat{LaTeX2e}
+ \ProvidesPackage{docutils}
+ [2020/08/28 v0.17 macros for Docutils LaTeX output]
+
+% Helpers
+% -------
+%
+% duclass::
+
+ % class handling for environments (block-level elements)
+ % \begin{DUclass}{spam} tries \DUCLASSspam and
+ % \end{DUclass}{spam} tries \endDUCLASSspam
+ \ifx\DUclass\undefined % poor man's "provideenvironment"
+ \newenvironment{DUclass}[1]%
+ {% "#1" does not work in end-part of environment.
+ \def\DocutilsClassFunctionName{DUCLASS#1}
+ \csname \DocutilsClassFunctionName \endcsname}%
+ {\csname end\DocutilsClassFunctionName \endcsname}%
+ \fi
+
+% providelength::
+
+ % Provide a length variable and set default, if it is new
+ \providecommand*{\DUprovidelength}[2]{
+ \ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{}
+ }
+
+
+% Configuration defaults
+% ----------------------
+%
+% See `Docutils LaTeX Writer`_ for details.
+%
+% abstract::
+
+ \providecommand*{\DUCLASSabstract}{
+ \renewcommand{\DUtitle}[1]{\centerline{\textbf{##1}}}
+ }
+
+% dedication::
+
+ % special topic for dedications
+ \providecommand*{\DUCLASSdedication}{%
+ \renewenvironment{quote}{\begin{center}}{\end{center}}%
+ }
+
+% TODO: add \em to set dedication text in italics?
+%
+% docinfo::
+
+ % width of docinfo table
+ \DUprovidelength{\DUdocinfowidth}{0.9\linewidth}
+
+% error::
+
+ \providecommand*{\DUCLASSerror}{\color{red}}
+
+% highlight_rules::
+
+ % basic code highlight:
+ \providecommand*\DUrolecomment[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
+ \providecommand*\DUroledeleted[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
+ \providecommand*\DUrolekeyword[1]{\textbf{#1}}
+ \providecommand*\DUrolestring[1]{\textit{#1}}
+
+% Elements
+% --------
+%
+% Definitions for unknown or to-be-configured Docutils elements.
+%
+% admonition::
+
+ % admonition environment (specially marked topic)
+ \ifx\DUadmonition\undefined % poor man's "provideenvironment"
+ \newbox{\DUadmonitionbox}
+ \newenvironment{DUadmonition}%
+ {\begin{center}
+ \begin{lrbox}{\DUadmonitionbox}
+ \begin{minipage}{0.9\linewidth}
+ }%
+ { \end{minipage}
+ \end{lrbox}
+ \fbox{\usebox{\DUadmonitionbox}}
+ \end{center}
+ }
+ \fi
+
+% fieldlist::
+
+ % field list environment (for separate configuration of `field lists`)
+ \ifthenelse{\isundefined{\DUfieldlist}}{
+ \newenvironment{DUfieldlist}%
+ {\quote\description}
+ {\enddescription\endquote}
+ }{}
+
+% footnotes::
+
+ % numerical or symbol footnotes with hyperlinks and backlinks
+ \providecommand*{\DUfootnotemark}[3]{%
+ \raisebox{1em}{\hypertarget{#1}{}}%
+ \hyperlink{#2}{\textsuperscript{#3}}%
+ }
+ \providecommand{\DUfootnotetext}[4]{%
+ \begingroup%
+ \renewcommand{\thefootnote}{%
+ \protect\raisebox{1em}{\protect\hypertarget{#1}{}}%
+ \protect\hyperlink{#2}{#3}}%
+ \footnotetext{#4}%
+ \endgroup%
+ }
+
+% inline::
+
+ % custom inline roles: \DUrole{#1}{#2} tries \DUrole#1{#2}
+ \providecommand*{\DUrole}[2]{%
+ \ifcsname DUrole#1\endcsname%
+ \csname DUrole#1\endcsname{#2}%
+ \else%
+ #2%
+ \fi%
+ }
+
+% legend::
+
+ % legend environment (in figures and formal tables)
+ \ifthenelse{\isundefined{\DUlegend}}{
+ \newenvironment{DUlegend}{\small}{}
+ }{}
+
+% lineblock::
+
+ % line block environment
+ \DUprovidelength{\DUlineblockindent}{2.5em}
+ \ifthenelse{\isundefined{\DUlineblock}}{
+ \newenvironment{DUlineblock}[1]{%
+ \list{}{\setlength{\partopsep}{\parskip}
+ \addtolength{\partopsep}{\baselineskip}
+ \setlength{\topsep}{0pt}
+ \setlength{\itemsep}{0.15\baselineskip}
+ \setlength{\parsep}{0pt}
+ \setlength{\leftmargin}{#1}}
+ \raggedright
+ }
+ {\endlist}
+ }{}
+
+% optionlist::
+
+ % list of command line options
+ \providecommand*{\DUoptionlistlabel}[1]{\bfseries #1 \hfill}
+ \DUprovidelength{\DUoptionlistindent}{3cm}
+ \ifthenelse{\isundefined{\DUoptionlist}}{
+ \newenvironment{DUoptionlist}{%
+ \list{}{\setlength{\labelwidth}{\DUoptionlistindent}
+ \setlength{\rightmargin}{1cm}
+ \setlength{\leftmargin}{\rightmargin}
+ \addtolength{\leftmargin}{\labelwidth}
+ \addtolength{\leftmargin}{\labelsep}
+ \renewcommand{\makelabel}{\DUoptionlistlabel}}
+ }
+ {\endlist}
+ }{}
+
+% rubric::
+
+ % informal heading
+ \providecommand*{\DUrubric}[1]{\subsubsection*{\emph{#1}}}
+
+% sidebar::
+
+ % text outside the main text flow
+ \providecommand{\DUsidebar}[1]{%
+ \begin{center}
+ \colorbox[gray]{0.80}{\parbox{0.9\linewidth}{#1}}
+ \end{center}
+ }
+
+% title::
+
+ % title for topics, admonitions, unsupported section levels, and sidebar
+ \providecommand*{\DUtitle}[1]{\subsubsection*{#1}}
+
+% subtitle::
+
+ % subtitle (for sidebar)
+ \providecommand*{\DUsubtitle}[1]{\par\emph{#1}\smallskip}
+
+% documentsubtitle::
+
+ % subtitle (in document title)
+ \providecommand*{\DUdocumentsubtitle}[1]{{\large #1}}
+
+% titlereference::
+
+ % titlereference standard role
+ \providecommand*{\DUroletitlereference}[1]{\textsl{#1}}
+
+% transition::
+
+ % transition (break / fancybreak / anonymous section)
+ \providecommand*{\DUtransition}{%
+ \hspace*{\fill}\hrulefill\hspace*{\fill}
+ \vskip 0.5\baselineskip
+ }
diff --git a/macros/latex/contrib/docutils/docutils.sty.html b/macros/latex/contrib/docutils/docutils.sty.html
new file mode 100644
index 0000000000..e3b5981773
--- /dev/null
+++ b/macros/latex/contrib/docutils/docutils.sty.html
@@ -0,0 +1,831 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta charset="utf-8"/>
+<meta name="generator" content="Docutils 0.17b.dev: http://docutils.sourceforge.net/" />
+<title>docutils.sty</title>
+<style type="text/css">
+
+/* Minimal style sheet for the HTML output of Docutils. */
+/* */
+/* :Author: Günter Milde, based on html4css1.css by David Goodger */
+/* :Id: $Id$ */
+/* :Copyright: © 2015 Günter Milde. */
+/* :License: Released under the terms of the `2-Clause BSD license`_, */
+/* in short: */
+/* */
+/* 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 */
+
+/* This CSS2.1_ stylesheet defines rules for Docutils elements without */
+/* HTML equivalent. It is required to make the document semantic visible. */
+/* */
+/* .. _CSS2.1: http://www.w3.org/TR/CSS2 */
+/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */
+
+/* alignment of text and inline objects inside block objects*/
+.align-left { text-align: left; }
+.align-right { text-align: right; }
+.align-center { clear: both; text-align: center; }
+.align-top { vertical-align: top; }
+.align-middle { vertical-align: middle; }
+.align-bottom { vertical-align: bottom; }
+
+/* titles */
+h1.title, p.subtitle {
+ text-align: center;
+}
+p.topic-title,
+p.sidebar-title,
+p.rubric,
+p.admonition-title,
+p.system-message-title {
+ font-weight: bold;
+}
+h1 + p.subtitle,
+h1 + p.section-subtitle {
+ font-size: 1.6em;
+}
+h2 + p.section-subtitle {
+ font-size: 1.28em;
+}
+p.subtitle,
+p.section-subtitle,
+p.sidebar-subtitle {
+ font-weight: bold;
+ margin-top: -0.5em;
+}
+p.sidebar-title {
+ font-size: larger;
+}
+p.rubric {
+ font-size: larger;
+ color: maroon;
+}
+a.toc-backref {
+ color: black;
+ text-decoration: none; }
+
+/* Warnings, Errors */
+div.system-messages h1,
+span.problematic,
+p.system-message-title {
+ color: red;
+}
+
+/* inline literals */
+span.docutils.literal {
+ font-family: monospace;
+ white-space: pre-wrap;
+}
+/* do not wraph at hyphens and similar: */
+.literal > span.pre { white-space: nowrap; }
+
+/* Lists */
+
+/* compact and simple lists: no margin between items */
+.simple li, .compact li,
+.simple ul, .compact ul,
+.simple ol, .compact ol,
+.simple > li p, .compact > li p,
+dl.simple > dd, dl.compact > dd {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+/* Table of Contents */
+div.topic.contents { margin: 0.5em 0; }
+div.topic.contents ul {
+ list-style-type: none;
+ padding-left: 1.5em;
+}
+
+/* Enumerated Lists */
+ol.arabic { list-style: decimal }
+ol.loweralpha { list-style: lower-alpha }
+ol.upperalpha { list-style: upper-alpha }
+ol.lowerroman { list-style: lower-roman }
+ol.upperroman { list-style: upper-roman }
+
+dt span.classifier { font-style: italic }
+dt span.classifier:before {
+ font-style: normal;
+ margin: 0.5em;
+ content: ":";
+}
+
+/* Field Lists and drivatives */
+/* bold field name, content starts on the same line */
+dl.field-list > dt,
+dl.option-list > dt,
+dl.docinfo > dt,
+dl.footnote > dt,
+dl.citation > dt {
+ font-weight: bold;
+ clear: left;
+ float: left;
+ margin: 0;
+ padding: 0;
+ padding-right: 0.5em;
+}
+/* Offset for field content (corresponds to the --field-name-limit option) */
+dl.field-list > dd,
+dl.option-list > dd,
+dl.docinfo > dd {
+ margin-left: 9em; /* ca. 14 chars in the test examples */
+}
+/* start field-body on a new line after long field names */
+dl.field-list > dd > *:first-child,
+dl.option-list > dd > *:first-child
+{
+ display: inline-block;
+ width: 100%;
+ margin: 0;
+}
+/* field names followed by a colon */
+dl.field-list > dt:after,
+dl.docinfo > dt:after {
+ content: ":";
+}
+
+/* Bibliographic Fields (docinfo) */
+pre.address { font: inherit; }
+dd.authors > p { margin: 0; }
+
+/* Option Lists */
+dl.option-list { margin-left: 1.5em; }
+dl.option-list > dt { font-weight: normal; }
+span.option { white-space: nowrap; }
+
+/* Footnotes and Citations */
+dl.footnote.superscript > dd {margin-left: 1em; }
+dl.footnote.brackets > dd {margin-left: 2em; }
+dl > dt.label { font-weight: normal; }
+a.footnote-reference.brackets:before,
+dt.label > span.brackets:before { content: "["; }
+a.footnote-reference.brackets:after,
+dt.label > span.brackets:after { content: "]"; }
+a.footnote-reference.superscript,
+dl.footnote.superscript > dt.label {
+ vertical-align: super;
+ font-size: smaller;
+}
+dt.label > span.fn-backref { margin-left: 0.2em; }
+dt.label > span.fn-backref > a { font-style: italic; }
+
+/* Line Blocks */
+div.line-block { display: block; }
+div.line-block div.line-block {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-left: 40px;
+}
+
+/* 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,
+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;
+}
+img.align-center, img.align-right,
+object.align-center, object.align-right {
+ display: block;
+}
+/* reset inner alignment in figures and tables */
+.figure.align-left, .figure.align-right,
+figure.align-left, figure.align-right,
+table.align-left, table.align-center, table.align-right {
+ text-align: inherit;
+}
+
+/* Sidebar */
+aside.sidebar {
+ width: 30%;
+ max-width: 26em;
+ float: right;
+ clear: right;
+}
+
+/* Text Blocks */
+blockquote,
+div.topic,
+div.admonition,
+div.system-message,
+pre.literal-block,
+pre.doctest-block,
+pre.math,
+pre.code {
+ margin-left: 1.5em;
+ margin-right: 1.5em;
+}
+pre.code .ln { color: gray; } /* line numbers */
+
+/* Tables */
+table { border-collapse: collapse; }
+td, th {
+ border-style: solid;
+ border-color: silver;
+ padding: 0 1ex;
+ border-width: thin;
+}
+td > p:first-child, th > p:first-child { margin-top: 0; }
+td > p, th > p { margin-bottom: 0; }
+
+table > caption {
+ text-align: left;
+ margin-bottom: 0.25em
+}
+
+table.borderless td, table.borderless th {
+ border: 0;
+ padding: 0;
+ 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. */
+/* */
+/* :Author: Günter Milde, based on html4css1.css by David Goodger */
+/* :Id: $Id$ */
+/* :Copyright: © 2015 Günter Milde. */
+/* :License: Released under the terms of the `2-Clause BSD license`_, */
+/* in short: */
+/* */
+/* 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 */
+
+
+/* Document Structure */
+/* ****************** */
+
+/* "page layout" */
+body {
+ margin: 0;
+ background-color: #dbdbdb;
+}
+div.document,
+main {
+ line-height:1.3;
+ counter-reset: table figure;
+ /* avoid long lines --> better reading */
+ /* optimum is 45…75 characters/line <http://webtypography.net/2.1.2> */
+ /* OTOH: lines should not be too short because of missing hyphenation, */
+ max-width: 50em;
+ padding: 1px 2%; /* 1px on top avoids grey bar above title (mozilla) */
+ margin: auto;
+ background-color: white;
+}
+
+/* Sections */
+
+/* Transitions */
+
+hr.docutils {
+ width: 80%;
+ margin-top: 1em;
+ margin-bottom: 1em;
+ clear: both;
+}
+
+/* Paragraphs */
+/* ========== */
+
+/* vertical space (parskip) */
+p, ol, ul, dl, li, dd,
+div.line-block,
+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 */
+/* ===== */
+
+/* Separate list entries in compound lists */
+dl > dd, ol > li,
+
+/* 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 */
+/* styled like in most dictionaries, encyclopedias etc. */
+dl.description > dt {
+ font-weight: bold;
+ clear: left;
+ float: left;
+ margin: 0;
+ padding: 0;
+ padding-right: 0.5em;
+}
+
+/* Field Lists */
+
+/* example for custom field-name width */
+dl.field-list.narrow > dd {
+ margin-left: 5em;
+}
+/* run-in: start field-body on same line after long field names */
+dl.field-list.run-in > dd p {
+ display: block;
+}
+
+/* Bibliographic Fields */
+
+/* generally, bibliographic fields use special definition list dl.docinfo */
+/* but dedication and abstract are placed into "topic" divs */
+div.abstract p.topic-title {
+ text-align: center;
+}
+div.dedication {
+ margin: 2em 5em;
+ text-align: center;
+ font-style: italic;
+}
+div.dedication p.topic-title {
+ font-style: normal;
+}
+
+/* Citations */
+dl.citation dt.label {
+ font-weight: bold;
+}
+span.fn-backref {
+ font-weight: normal;
+}
+
+/* Text Blocks */
+/* =========== */
+
+/* Literal Blocks */
+
+pre.literal-block,
+pre.doctest-block,
+pre.math,
+pre.code {
+ font-family: monospace;
+}
+
+/* Block Quotes */
+
+blockquote > table,
+div.topic > table {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+blockquote p.attribution,
+div.topic p.attribution {
+ text-align: right;
+ margin-left: 20%;
+}
+
+/* Tables */
+/* ====== */
+
+/* th { vertical-align: bottom; } */
+
+table tr { text-align: left; }
+
+/* "booktabs" style (no vertical lines) */
+table.booktabs {
+ border: 0;
+ border-top: 2px solid;
+ border-bottom: 2px solid;
+ border-collapse: collapse;
+}
+table.booktabs * {
+ border: 0;
+}
+table.booktabs th {
+ border-bottom: thin solid;
+}
+
+/* numbered tables (counter defined in div.document) */
+table.numbered > caption:before {
+ counter-increment: table;
+ content: "Table " counter(table) ": ";
+ font-weight: bold;
+}
+
+/* Explicit Markup Blocks */
+/* ====================== */
+
+/* Footnotes and Citations */
+/* ----------------------- */
+
+/* line on the left */
+dl.footnote {
+ padding-left: 1ex;
+ border-left: solid;
+ border-left-width: thin;
+}
+
+/* Directives */
+/* ---------- */
+
+/* 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;
+}
+.figure.align-right,
+figure.align-right,
+img.align-right,
+object.align-right {
+ display: block;
+ clear: right;
+ float: right;
+ margin-left: 1em;
+}
+/* Stop floating sidebars, images and figures at section level 1,2,3 */
+h1, h2, h3 { clear: both; }
+
+/* Numbered figures */
+figure.numbered > figcaption > p:before {
+ counter-increment: figure;
+ content: "Figure " counter(figure) ": ";
+ font-weight: bold;
+}
+
+
+/* Admonitions and System Messages */
+
+div.admonition,
+div.system-message,
+aside.sidebar {
+ border: medium outset;
+ margin: 1em 1.5em;
+ padding: 0.5em 1em;
+}
+
+div.caution p.admonition-title,
+div.attention p.admonition-title,
+div.danger p.admonition-title,
+div.error p.admonition-title,
+div.warning p.admonition-title,
+div.error {
+ color: red;
+}
+
+
+/* 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: -2%;
+ background-color: #ffffee;
+}
+
+/* Code */
+
+pre.code { padding: 0.7ex }
+pre.code, code { background-color: #eeeeee }
+pre.code .ln { color: gray; } /* line numbers */
+/* basic highlighting: for a complete scheme, see */
+/* http://docutils.sourceforge.net/sandbox/stylesheets/ */
+pre.code .comment, code .comment { color: #5C6576 }
+pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
+pre.code .literal.string, code .literal.string { color: #0C5404 }
+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 */
+/* styled separately (see math.css for math-output=HTML) */
+
+/* Epigraph */
+/* Highlights */
+/* Pull-Quote */
+/* Compound Paragraph */
+/* Container */
+
+/* Document Header and Footer */
+
+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 */
+/* possible values: normal, nowrap, pre, pre-wrap, pre-line */
+/* span.docutils.literal { white-space: pre-wrap; } */
+
+/* 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 */
+
+</style>
+</head>
+<body>
+<main id="docutils-sty">
+<h1 class="title">docutils.sty</h1>
+
+<!-- %% docutils.sty: macros for Docutils LaTeX output.
+%%
+%% Copyright © 2020 Günter Milde
+%% Released under the terms of the `2-Clause BSD license`, in short:
+%%
+%% 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. -->
+<p>Helper commands and element definitions for <a class="reference external" href="https://docutils.sourceforge.io/">Docutils</a> LaTeX output.</p>
+<dl class="field-list simple">
+<dt>Copyright</dt>
+<dd><p>© 2020 Günter Milde</p>
+</dd>
+<dt>Licence</dt>
+<dd><p>Released under the terms of the <a class="reference external" href="https://opensource.org/licenses/BSD-2-Clause">2-Clause BSD license</a></p>
+</dd>
+</dl>
+<section id="changelog">
+<h2>Changelog</h2>
+<div class="line-block">
+<div class="line">2020-08-28 first public version for Docutils &gt;= 0.17</div>
+</div>
+</section>
+<section id="requirements">
+<h2>Requirements</h2>
+<p>None.</p>
+</section>
+<section id="installation">
+<h2>Installation</h2>
+<p>If possible, get this package from your distribution using its
+installation manager. Alternatively, copy/move/link <span class="docutils literal">docutils.sty</span>
+to a place where LaTeX can find it.</p>
+</section>
+<section id="usage">
+<h2>Usage</h2>
+<p>The package is intended for use with LaTeX documents generated from
+<a class="reference external" href="https://en.wikipedia.org/wiki/ReStructuredText">reStructuredText</a> sources with <a class="reference external" href="https://docutils.sourceforge.io/">Docutils</a>.</p>
+<p>When generating LaTeX documents, specify this package with the
+<a class="reference external" href="https://docutils.sourceforge.io/docs/user/config.html#stylesheet-latex-writers">“stylesheet”</a> <a class="reference external" href="https://docutils.sourceforge.io/docs/user/config.html">configuration option</a>, e.g.</p>
+<pre class="literal-block">rst2latex --stylesheet=docutils exampledocument.txt</pre>
+<p>The the Docutils <cite>LaTeX writer</cite> will then reference this package
+istead of inserting required definitions into the preamble of
+generated documents (see the <a class="reference external" href="https://docutils.sourceforge.io/docs/user/latex.html">Docutils LaTeX Writer documentation</a>
+for details).</p>
+</section>
+<section id="documentation-generation">
+<h2>Documentation Generation</h2>
+<p>The bidirectional text &lt;-&gt; code converter <a class="reference external" href="https://repo.or.cz/pylit.git">PyLit</a> and <a class="reference external" href="https://docutils.sourceforge.io/">Docutils</a>
+were used to generate the HTML documentation:</p>
+<pre class="literal-block">#&gt; pylit docutils.sty
+#&gt; rst2html5 docutils.sty.txt docutils.sty.html</pre>
+</section>
+<section id="implementation">
+<h2>Implementation</h2>
+<section id="identification">
+<h3>Identification</h3>
+<pre class="literal-block">\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{docutils}
+ [2020/08/28 macros for Docutils LaTeX output]</pre>
+</section>
+<section id="helpers">
+<h3>Helpers</h3>
+<p>duclass:</p>
+<pre class="literal-block">% class handling for environments (block-level elements)
+% \begin{DUclass}{spam} tries \DUCLASSspam and
+% \end{DUclass}{spam} tries \endDUCLASSspam
+\ifx\DUclass\undefined % poor man's &quot;provideenvironment&quot;
+ \newenvironment{DUclass}[1]%
+ {% &quot;#1&quot; does not work in end-part of environment.
+ \def\DocutilsClassFunctionName{DUCLASS#1}
+ \csname \DocutilsClassFunctionName \endcsname}%
+ {\csname end\DocutilsClassFunctionName \endcsname}%
+\fi</pre>
+<p>providelength:</p>
+<pre class="literal-block">% Provide a length variable and set default, if it is new
+\providecommand*{\DUprovidelength}[2]{
+ \ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{}
+}</pre>
+</section>
+<section id="configuration-defaults">
+<h3>Configuration defaults</h3>
+<p>See the <a class="reference external" href="https://docutils.sourceforge.io/docs/user/latex.html">Docutils LaTeX Writer documentation</a> for details.</p>
+<p>abstract:</p>
+<pre class="literal-block">\providecommand*{\DUCLASSabstract}{
+ \renewcommand{\DUtitle}[1]{\centerline{\textbf{##1}}}
+}</pre>
+<p>dedication:</p>
+<pre class="literal-block">% special topic for dedications
+\providecommand*{\DUCLASSdedication}{%
+ \renewenvironment{quote}{\begin{center}}{\end{center}}%
+}</pre>
+<p>TODO: add em to set dedication text in italics?</p>
+<p>docinfo:</p>
+<pre class="literal-block">% width of docinfo table
+\DUprovidelength{\DUdocinfowidth}{0.9\linewidth}</pre>
+<p>error:</p>
+<pre class="literal-block">\providecommand*{\DUCLASSerror}{\color{red}}</pre>
+<p>highlight_rules:</p>
+<pre class="literal-block">% basic code highlight:
+\providecommand*\DUrolecomment[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
+\providecommand*\DUroledeleted[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
+\providecommand*\DUrolekeyword[1]{\textbf{#1}}
+\providecommand*\DUrolestring[1]{\textit{#1}}</pre>
+</section>
+<section id="elements">
+<h3>Elements</h3>
+<p>Definitions for unknown or to-be-configured Docutils elements.</p>
+<p>admonition:</p>
+<pre class="literal-block">% admonition environment (specially marked topic)
+\ifx\DUadmonition\undefined % poor man's &quot;provideenvironment&quot;
+ \newbox{\DUadmonitionbox}
+ \newenvironment{DUadmonition}%
+ {\begin{center}
+ \begin{lrbox}{\DUadmonitionbox}
+ \begin{minipage}{0.9\linewidth}
+ }%
+ { \end{minipage}
+ \end{lrbox}
+ \fbox{\usebox{\DUadmonitionbox}}
+ \end{center}
+ }
+\fi</pre>
+<p>fieldlist:</p>
+<pre class="literal-block">% field list environment (for separate configuration of `field lists`)
+\ifthenelse{\isundefined{\DUfieldlist}}{
+ \newenvironment{DUfieldlist}%
+ {\quote\description}
+ {\enddescription\endquote}
+}{}</pre>
+<p>footnotes:</p>
+<pre class="literal-block">% numerical or symbol footnotes with hyperlinks and backlinks
+\providecommand*{\DUfootnotemark}[3]{%
+ \raisebox{1em}{\hypertarget{#1}{}}%
+ \hyperlink{#2}{\textsuperscript{#3}}%
+}
+\providecommand{\DUfootnotetext}[4]{%
+ \begingroup%
+ \renewcommand{\thefootnote}{%
+ \protect\raisebox{1em}{\protect\hypertarget{#1}{}}%
+ \protect\hyperlink{#2}{#3}}%
+ \footnotetext{#4}%
+ \endgroup%
+}</pre>
+<p>inline:</p>
+<pre class="literal-block">% custom inline roles: \DUrole{#1}{#2} tries \DUrole#1{#2}
+\providecommand*{\DUrole}[2]{%
+ \ifcsname DUrole#1\endcsname%
+ \csname DUrole#1\endcsname{#2}%
+ \else%
+ #2%
+ \fi%
+}</pre>
+<p>legend:</p>
+<pre class="literal-block">% legend environment (in figures and formal tables)
+\ifthenelse{\isundefined{\DUlegend}}{
+ \newenvironment{DUlegend}{\small}{}
+}{}</pre>
+<p>lineblock:</p>
+<pre class="literal-block">% line block environment
+\DUprovidelength{\DUlineblockindent}{2.5em}
+\ifthenelse{\isundefined{\DUlineblock}}{
+ \newenvironment{DUlineblock}[1]{%
+ \list{}{\setlength{\partopsep}{\parskip}
+ \addtolength{\partopsep}{\baselineskip}
+ \setlength{\topsep}{0pt}
+ \setlength{\itemsep}{0.15\baselineskip}
+ \setlength{\parsep}{0pt}
+ \setlength{\leftmargin}{#1}}
+ \raggedright
+ }
+ {\endlist}
+}{}</pre>
+<p>optionlist:</p>
+<pre class="literal-block">% list of command line options
+\providecommand*{\DUoptionlistlabel}[1]{\bfseries #1 \hfill}
+\DUprovidelength{\DUoptionlistindent}{3cm}
+\ifthenelse{\isundefined{\DUoptionlist}}{
+ \newenvironment{DUoptionlist}{%
+ \list{}{\setlength{\labelwidth}{\DUoptionlistindent}
+ \setlength{\rightmargin}{1cm}
+ \setlength{\leftmargin}{\rightmargin}
+ \addtolength{\leftmargin}{\labelwidth}
+ \addtolength{\leftmargin}{\labelsep}
+ \renewcommand{\makelabel}{\DUoptionlistlabel}}
+ }
+ {\endlist}
+}{}</pre>
+<p>rubric:</p>
+<pre class="literal-block">% informal heading
+\providecommand*{\DUrubric}[1]{\subsubsection*{\emph{#1}}}</pre>
+<p>sidebar:</p>
+<pre class="literal-block">% text outside the main text flow
+\providecommand{\DUsidebar}[1]{%
+ \begin{center}
+ \colorbox[gray]{0.80}{\parbox{0.9\linewidth}{#1}}
+ \end{center}
+}</pre>
+<p>title:</p>
+<pre class="literal-block">% title for topics, admonitions, unsupported section levels, and sidebar
+\providecommand*{\DUtitle}[1]{\subsubsection*{#1}}</pre>
+<p>subtitle:</p>
+<pre class="literal-block">% subtitle (for sidebar)
+\providecommand*{\DUsubtitle}[1]{\par\emph{#1}\smallskip}</pre>
+<p>documentsubtitle:</p>
+<pre class="literal-block">% subtitle (in document title)
+\providecommand*{\DUdocumentsubtitle}[1]{{\large #1}}</pre>
+<p>titlereference:</p>
+<pre class="literal-block">% titlereference standard role
+\providecommand*{\DUroletitlereference}[1]{\textsl{#1}}</pre>
+<p>transition:</p>
+<pre class="literal-block">% transition (break / fancybreak / anonymous section)
+\providecommand*{\DUtransition}{%
+ \hspace*{\fill}\hrulefill\hspace*{\fill}
+ \vskip 0.5\baselineskip
+}</pre>
+</section>
+</section>
+</main>
+</body>
+</html>
diff --git a/macros/latex/contrib/docutils/docutils.sty.txt b/macros/latex/contrib/docutils/docutils.sty.txt
new file mode 100644
index 0000000000..7cdb670743
--- /dev/null
+++ b/macros/latex/contrib/docutils/docutils.sty.txt
@@ -0,0 +1,275 @@
+docutils.sty
+************
+Style file for docutils LaTeX output
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+:Copyright: © 2020 Günter Milde
+:Licence: Released under the terms of the `2-Clause BSD license`_, in short:
+
+ 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
+
+
+:Abstract:
+ Helper commands and element definitions for Docutils_ LaTeX output.
+
+:Changelog:
+ .. class:: borderless
+
+ ====== ========== =========================================================
+ 0.1 2020-08-28 initial version
+ ====== ========== =========================================================
+
+Installation
+============
+
+Copy/Move/Link ``docutils.sty`` to a suitable place in the “TeX Directory
+Structure” (TDS_) and run ``texhash``, or place it in the current working
+directory (e.g. for testing).
+
+Usage
+=====
+
+When generating LaTeX documents from reStructuredText sources,
+specify this package with the `"stylesheet"`_ configuration_ option, e.g.
+``rst2latex --stylesheet=docutils``.
+Alternatively, the Docutils `LaTeX writer` will extract required definitions
+and insert them into the preamble of generated documents
+(see `Docutils LaTeX Writer`_ for details).
+
+
+Implementation
+==============
+
+::
+
+ \NeedsTeXFormat{LaTeX2e}
+ \ProvidesPackage{docutils}
+ [2020/08/28 v0.1 macros for Docutils LaTeX output]
+
+
+Helpers
+-------
+
+duclass::
+
+ % class handling for environments (block-level elements)
+ % \begin{DUclass}{spam} tries \DUCLASSspam and
+ % \end{DUclass}{spam} tries \endDUCLASSspam
+ \ifx\DUclass\undefined % poor man's "provideenvironment"
+ \newenvironment{DUclass}[1]%
+ {% "#1" does not work in end-part of environment.
+ \def\DocutilsClassFunctionName{DUCLASS#1}
+ \csname \DocutilsClassFunctionName \endcsname}%
+ {\csname end\DocutilsClassFunctionName \endcsname}%
+ \fi
+
+providelength::
+
+ % Provide a length variable and set default, if it is new
+ \providecommand*{\DUprovidelength}[2]{
+ \ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{}
+ }
+
+
+Configuration defaults
+----------------------
+
+See `Docutils LaTeX Writer`_ for details.
+
+abstract::
+
+ \providecommand*{\DUCLASSabstract}{
+ \renewcommand{\DUtitle}[1]{\centerline{\textbf{##1}}}
+ }
+
+dedication::
+
+ % special topic for dedications
+ \providecommand*{\DUCLASSdedication}{%
+ \renewenvironment{quote}{\begin{center}}{\end{center}}%
+ }
+
+TODO: add \em to set dedication text in italics?
+
+docinfo::
+
+ % width of docinfo table
+ \DUprovidelength{\DUdocinfowidth}{0.9\linewidth}
+
+error::
+
+ \providecommand*{\DUCLASSerror}{\color{red}}
+
+highlight_rules::
+
+ % basic code highlight:
+ \providecommand*\DUrolecomment[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
+ \providecommand*\DUroledeleted[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
+ \providecommand*\DUrolekeyword[1]{\textbf{#1}}
+ \providecommand*\DUrolestring[1]{\textit{#1}}
+
+Elements
+--------
+
+Definitions for unknown or to-be-configured Docutils elements
+and roles (inline elements).
+
+admonition::
+
+ % admonition environment (specially marked topic)
+ \ifx\DUadmonition\undefined % poor man's "provideenvironment"
+ \newbox{\DUadmonitionbox}
+ \newenvironment{DUadmonition}%
+ {\begin{center}
+ \begin{lrbox}{\DUadmonitionbox}
+ \begin{minipage}{0.9\linewidth}
+ }%
+ { \end{minipage}
+ \end{lrbox}
+ \fbox{\usebox{\DUadmonitionbox}}
+ \end{center}
+ }
+ \fi
+
+fieldlist::
+
+ % field list environment (for separate configuration of `field lists`)
+ \ifthenelse{\isundefined{\DUfieldlist}}{
+ \newenvironment{DUfieldlist}%
+ {\quote\description}
+ {\enddescription\endquote}
+ }{}
+
+footnotes::
+
+ % numerical or symbol footnotes with hyperlinks and backlinks
+ \providecommand*{\DUfootnotemark}[3]{%
+ \raisebox{1em}{\hypertarget{#1}{}}%
+ \hyperlink{#2}{\textsuperscript{#3}}%
+ }
+ \providecommand{\DUfootnotetext}[4]{%
+ \begingroup%
+ \renewcommand{\thefootnote}{%
+ \protect\raisebox{1em}{\protect\hypertarget{#1}{}}%
+ \protect\hyperlink{#2}{#3}}%
+ \footnotetext{#4}%
+ \endgroup%
+ }
+
+inline::
+
+ % custom inline roles: \DUrole{#1}{#2} tries \DUrole#1{#2}
+ \providecommand*{\DUrole}[2]{%
+ \ifcsname DUrole#1\endcsname%
+ \csname DUrole#1\endcsname{#2}%
+ \else%
+ #2%
+ \fi%
+ }
+
+legend::
+
+ % legend environment (in figures and formal tables)
+ \ifthenelse{\isundefined{\DUlegend}}{
+ \newenvironment{DUlegend}{\small}{}
+ }{}
+
+lineblock::
+
+ % line block environment
+ \DUprovidelength{\DUlineblockindent}{2.5em}
+ \ifthenelse{\isundefined{\DUlineblock}}{
+ \newenvironment{DUlineblock}[1]{%
+ \list{}{\setlength{\partopsep}{\parskip}
+ \addtolength{\partopsep}{\baselineskip}
+ \setlength{\topsep}{0pt}
+ \setlength{\itemsep}{0.15\baselineskip}
+ \setlength{\parsep}{0pt}
+ \setlength{\leftmargin}{#1}}
+ \raggedright
+ }
+ {\endlist}
+ }{}
+
+optionlist::
+
+ % list of command line options
+ \providecommand*{\DUoptionlistlabel}[1]{\bfseries #1 \hfill}
+ \DUprovidelength{\DUoptionlistindent}{3cm}
+ \ifthenelse{\isundefined{\DUoptionlist}}{
+ \newenvironment{DUoptionlist}{%
+ \list{}{\setlength{\labelwidth}{\DUoptionlistindent}
+ \setlength{\rightmargin}{1cm}
+ \setlength{\leftmargin}{\rightmargin}
+ \addtolength{\leftmargin}{\labelwidth}
+ \addtolength{\leftmargin}{\labelsep}
+ \renewcommand{\makelabel}{\DUoptionlistlabel}}
+ }
+ {\endlist}
+ }{}
+
+rubric::
+
+ % informal heading
+ \providecommand*{\DUrubric}[1]{\subsubsection*{\emph{#1}}}
+
+sidebar::
+
+ % text outside the main text flow
+ \providecommand{\DUsidebar}[1]{%
+ \begin{center}
+ \colorbox[gray]{0.80}{\parbox{0.9\linewidth}{#1}}
+ \end{center}
+ }
+
+title::
+
+ % title for topics, admonitions, unsupported section levels, and sidebar
+ \providecommand*{\DUtitle}[1]{\subsubsection*{#1}}
+
+subtitle::
+
+ % subtitle (for sidebar)
+ \providecommand*{\DUsubtitle}[1]{\par\emph{#1}\smallskip}
+
+documentsubtitle::
+
+ % subtitle (in document title)
+ \providecommand*{\DUdocumentsubtitle}[1]{{\large #1}}
+
+titlereference::
+
+ % titlereference standard role
+ \providecommand*{\DUroletitlereference}[1]{\textsl{#1}}
+
+transition::
+
+ % transition (break / fancybreak / anonymous section)
+ \providecommand*{\DUtransition}{%
+ \hspace*{\fill}\hrulefill\hspace*{\fill}
+ \vskip 0.5\baselineskip
+ }
+
+References
+==========
+
+.. [Docutils] https://docutils.sourceforge.io/
+
+.. _Docutils Document Tree:
+ https://docutils.sourceforge.io/docs/ref/doctree.html
+
+.. _Docutils LaTeX Writer:
+ https://docutils.sourceforge.io/docs/user/latex.html
+
+.. _Configuration:
+ https://docutils.sourceforge.io/docs/user/config.html
+
+.. _"stylesheet":
+ https://docutils.sourceforge.io/docs/user/config.html#stylesheet-latex-writers
+
+.. _TDS: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds
diff --git a/macros/latex/contrib/hypdestopt/README.md b/macros/latex/contrib/hypdestopt/README.md
new file mode 100644
index 0000000000..0610b53e58
--- /dev/null
+++ b/macros/latex/contrib/hypdestopt/README.md
@@ -0,0 +1,17 @@
+# hypdestopt package for LaTeX
+
+Version: 2020-09-02 v2.7
+
+Hyperref destination optimizer
+
+Package hypdestopt supports hyperref's
+pdftex driver. It removes unnecessary destinations
+and shortens the destination names or uses numbered destinations
+to get smaller PDF files.
+
+## Copyright (C)
+* 2007, 2009-2011 Heiko Oberdiek
+* 2016-2020 Oberdiek Package Support Group
+
+## License
+LATEX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/oberdiek/hypdestopt.dtx b/macros/latex/contrib/hypdestopt/hypdestopt.dtx
index ac257b9db1..03006db27b 100644
--- a/macros/latex/contrib/oberdiek/hypdestopt.dtx
+++ b/macros/latex/contrib/hypdestopt/hypdestopt.dtx
@@ -1,13 +1,13 @@
% \iffalse meta-comment
%
% File: hypdestopt.dtx
-% Version: 2019/12/29 v2.6
+% Version: 2020-09-02 v2.7
% Info: Hyperref destination optimizer
%
% Copyright (C)
% 2006-2008, 2011 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% 2016-2020 Oberdiek Package Support Group
+% https://github.com/ho-tex/hypdestopt/issues
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -23,15 +23,15 @@
%
% The Current Maintainers of this work are
% Heiko Oberdiek and the Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% https://github.com/ho-tex/hypdestopt/issues
%
% This work consists of the main source file hypdestopt.dtx
% and the derived files
% hypdestopt.sty, hypdestopt.pdf, hypdestopt.ins, hypdestopt.drv.
%
% Distribution:
-% CTAN:macros/latex/contrib/oberdiek/hypdestopt.dtx
-% CTAN:macros/latex/contrib/oberdiek/hypdestopt.pdf
+% CTAN:macros/latex/contrib/hypdestopt/hypdestopt.dtx
+% CTAN:macros/latex/contrib/hypdestopt/hypdestopt.pdf
%
% Unpacking:
% (a) If hypdestopt.ins is present:
@@ -60,9 +60,9 @@
% pdflatex hypdestopt.dtx
%
% Installation:
-% TDS:tex/latex/oberdiek/hypdestopt.sty
-% TDS:doc/latex/oberdiek/hypdestopt.pdf
-% TDS:source/latex/oberdiek/hypdestopt.dtx
+% TDS:tex/latex/hypdestopt/hypdestopt.sty
+% TDS:doc/latex/hypdestopt/hypdestopt.pdf
+% TDS:source/latex/hypdestopt/hypdestopt.dtx
%
%<*ignore>
\begingroup
@@ -79,7 +79,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: hypdestopt 2019/12/29 v2.6 Hyperref destination optimizer (HO)}
+\Msg{* Package: hypdestopt 2020-09-02 v2.7 Hyperref destination optimizer (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -91,11 +91,11 @@
This is a generated file.
Project: hypdestopt
-Version: 2019/12/29 v2.6
+Version: 2020-09-02 v2.7
Copyright (C)
2006-2008, 2011 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2020 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -111,7 +111,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are
Heiko Oberdiek and the Oberdiek Package Support Group
-https://github.com/ho-tex/oberdiek/issues
+https://github.com/ho-tex/hypdestopt/issues
This work consists of the main source file hypdestopt.dtx
@@ -152,7 +152,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{hypdestopt.drv}%
- [2019/12/29 v2.6 Hyperref destination optimizer (HO)]%
+ [2020-09-02 v2.7 Hyperref destination optimizer (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -166,15 +166,15 @@ and the derived files
% \GetFileInfo{hypdestopt.drv}
%
% \title{The \xpackage{hypdestopt} package}
-% \date{2019/12/29 v2.6}
+% \date{2020-09-02 v2.7}
% \author{Heiko Oberdiek\thanks
-% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}}
+% {Please report any issues at \url{https://github.com/ho-tex/hypdestopt/issues}}}
%
% \maketitle
%
% \begin{abstract}
% Package \xpackage{hypdestopt} supports \xpackage{hyperref}'s
-% \xoption{pdftex} driver. It removes unnecessary destinations
+% \xoption{pdftex} and \xoption{luatex} driver. It removes unnecessary destinations
% and shortens the destination names or uses numbered destinations
% to get smaller PDF files.
% \end{abstract}
@@ -203,9 +203,9 @@ and the derived files
% (\cite{alphalph}), if option \xoption{name} is used.
% \item Package \xpackage{iftex}.
% \item \pdfTeX\ 1.30.0 or newer.
-% \item \pdfTeX\ in PDF mode.
+% \item \pdfTeX\ or lua\TeX\ in PDF mode.
% \item \eTeX\ extensions enabled.
-% \item Probably an additional compile run of \pdfLaTeX\ is necessary.
+% \item Probably an additional compile run of \pdfLaTeX\ or lua\LaTeX\ is necessary.
% \end{itemize}
%
% In the first compile runs you can get warnings such as:
@@ -218,7 +218,7 @@ and the derived files
% However these warnings also can occur without this package.
% The package does not cure them, thus these warnings will remain,
% but the destination name can be different. In such cases test
-% without package, too.
+% without the package, too.
%
% \subsection{Use}
%
@@ -265,7 +265,7 @@ and the derived files
% \item Use of named destinations (\cs{pdfdest}, \cs{pdfoutline},
% \cs{pdfstartlink}, \dots) that are not supported by this
% package.
-% \item Currently only \xpackage{hyperref} with \pdfTeX\ in PDF
+% \item Currently only \xpackage{hyperref} with \pdfTeX\ and lua\TeX\ in PDF
% mode is supported.
% \end{itemize}
%
@@ -289,7 +289,7 @@ and the derived files
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hypdestopt}%
- [2019/12/29 v2.6 Hyperref destination optimizer (HO)]%
+ [2020-09-02 v2.7 Hyperref destination optimizer (HO)]%
% \end{macrocode}
%
% \subsection{Options}
@@ -336,7 +336,7 @@ and the derived files
\ifpdf
\else
\PackageError{hypdestopt}{%
- This package requires pdfTeX in PDF mode%
+ This package requires pdfTeX or luaTeX in PDF mode%
}\@ehc
\expandafter\endinput
\fi
@@ -383,14 +383,24 @@ and the derived files
% \begin{macro}{\HypDest@PrependDocument}
% We add our stuff in front of the \cs{AtBeginDocument} hook
% to ensure that we are before \xpackage{hyperref}'s stuff.
-% \begin{macrocode}
-\long\def\HypDest@PrependDocument#1{%
- \begingroup
- \toks\z@{#1}%
- \toks\tw@\expandafter{\@begindocumenthook}%
- \xdef\@begindocumenthook{\the\toks\z@\the\toks\tw@}%
- \endgroup
-}
+% Starting with LaTeX 2020/10/01 we use the hook and a rule.
+% \begin{macrocode}
+\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+\IfFormatAtLeastTF{2020/10/01}
+ {
+ \long\def\HypDest@PrependDocument#1{%
+ \AddToHook{begindocument}{#1}}%
+ \DeclareHookRule{begindocument}{.}{before}{hyperref}
+ }
+ {
+ \long\def\HypDest@PrependDocument#1{%
+ \begingroup
+ \toks\z@{#1}%
+ \toks\tw@\expandafter{\@begindocumenthook}%
+ \xdef\@begindocumenthook{\the\toks\z@\the\toks\tw@}%
+ \endgroup
+ }
+ }
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
@@ -576,14 +586,6 @@ and the derived files
\HypDest@PrependDocument{%
% \end{macrocode}
%
-% Check hyperref version.
-% \begin{macrocode}
- \@ifpackagelater{hyperref}{2006/06/01}{}{%
- \PackageError{hypdestopt}{%
- hyperref 2006/06/01 v6.75a or later is required%
- }\@ehc
- }%
-% \end{macrocode}
%
% \subsubsection{Destination setting}
%
@@ -707,7 +709,6 @@ and the derived files
%
% \begin{macrocode}
\@ifpackageloaded{bookmark}{%
- \@ifpackagelater{bookmark}{2008/08/08}{%
\renewcommand*{\BKM@DefGotoNameAction}[2]{%
\@ifundefined{\HypDest@Prefix#2}{%
\edef#1{goto name{hypdestopt\string :unknown}}%
@@ -727,12 +728,6 @@ and the derived files
\fi
\fi
}%
- }{%
- \@PackageError{hypdestopt}{%
- Package `bookmark' is too old.\MessageBreak
- Version 2008/08/08 or later is needed%
- }\@ehc
- }%
}{}%
% \end{macrocode}
%
@@ -958,6 +953,9 @@ and the derived files
% \item
% use \xpackage{iftex} package.
% \end{Version}
+% \begin{Version}{2020-09-02 v2.7}
+% \item Adapted to the new hook management of LaTeX (github issue 1)
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/oberdiek/hypdestopt.pdf b/macros/latex/contrib/hypdestopt/hypdestopt.pdf
index d41e1e6a31..1835545dc8 100644
--- a/macros/latex/contrib/oberdiek/hypdestopt.pdf
+++ b/macros/latex/contrib/hypdestopt/hypdestopt.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md
index e388a2f941..c3fe7c7141 100644
--- a/macros/latex/contrib/l3kernel/CHANGELOG.md
+++ b/macros/latex/contrib/l3kernel/CHANGELOG.md
@@ -7,6 +7,13 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2020-09-03]
+
+## [2020-01-03]
+
+### Fixed
+- Save primitive definition of `\pdfoutput` with CSLaTeX
+
## [2020-09-01]
### Added
@@ -755,7 +762,9 @@ this project uses date-based 'snapshot' version identifiers.
- Step func­tions have been added for dim vari­ables,
e.g. `\dim_step_in­line:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-09-01...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2020-09-03...HEAD
+[2020-09-03]: https://github.com/latex3/latex3/compare/2020-01-03...2020-09-03
+[2020-01-03]: https://github.com/latex3/latex3/compare/2020-09-01...2020-01-03
[2020-09-01]: https://github.com/latex3/latex3/compare/2020-08-07...2020-09-01
[2020-08-07]: https://github.com/latex3/latex3/compare/2020-07-17...2020-08-07
[2020-07-17]: https://github.com/latex3/latex3/compare/2020-06-18...2020-07-17
diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md
index f63e3bc73a..0bcb85a677 100644
--- a/macros/latex/contrib/l3kernel/README.md
+++ b/macros/latex/contrib/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2020-09-01
+Release 2020-09-03
Overview
--------
diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx
index 9e38bfb6db..25639b4690 100644
--- a/macros/latex/contrib/l3kernel/expl3.dtx
+++ b/macros/latex/contrib/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2020-09-01}%
+\def\ExplFileDate{2020-09-03}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf
index dc73326538..eea5fcfaff 100644
--- a/macros/latex/contrib/l3kernel/expl3.pdf
+++ b/macros/latex/contrib/l3kernel/expl3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf
index 8d8514f9a7..43115927b3 100644
--- a/macros/latex/contrib/l3kernel/interface3.pdf
+++ b/macros/latex/contrib/l3kernel/interface3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex
index 7015a2fc69..213ccdbca2 100644
--- a/macros/latex/contrib/l3kernel/interface3.tex
+++ b/macros/latex/contrib/l3kernel/interface3.tex
@@ -54,7 +54,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-09-01}
+\date{Released 2020-09-03}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx
index c6559136c1..cbc62b895a 100644
--- a/macros/latex/contrib/l3kernel/l3basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
index bcb2f71562..ee955fcd4d 100644
--- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx
+++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx
index 30ba3c7553..e890c7c931 100644
--- a/macros/latex/contrib/l3kernel/l3box.dtx
+++ b/macros/latex/contrib/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx
index fc5d83dcd5..55dc608771 100644
--- a/macros/latex/contrib/l3kernel/l3candidates.dtx
+++ b/macros/latex/contrib/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx
index 2d908820f7..1f00ceda74 100644
--- a/macros/latex/contrib/l3kernel/l3cctab.dtx
+++ b/macros/latex/contrib/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx
index e050d06553..b8169e2847 100644
--- a/macros/latex/contrib/l3kernel/l3clist.dtx
+++ b/macros/latex/contrib/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx
index b9f73a8f1c..186bd2c60f 100644
--- a/macros/latex/contrib/l3kernel/l3coffins.dtx
+++ b/macros/latex/contrib/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3color-base.dtx b/macros/latex/contrib/l3kernel/l3color-base.dtx
index 10199c298e..462b452ab2 100644
--- a/macros/latex/contrib/l3kernel/l3color-base.dtx
+++ b/macros/latex/contrib/l3kernel/l3color-base.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx
index c7c0f70058..ecea4a9e77 100644
--- a/macros/latex/contrib/l3kernel/l3debug.dtx
+++ b/macros/latex/contrib/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx
index 6eebef3b6b..1e39888d48 100644
--- a/macros/latex/contrib/l3kernel/l3deprecation.dtx
+++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx
index 8721d50f4b..01a08a806e 100644
--- a/macros/latex/contrib/l3kernel/l3doc.dtx
+++ b/macros/latex/contrib/l3kernel/l3doc.dtx
@@ -79,7 +79,7 @@ and all files in that bundle must be distributed together.
%
% \title{The \cls{l3doc} class}
% \author{\Team}
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
% \maketitle
% \tableofcontents
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx
index e8a835dfb6..de570c03a6 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.dtx
+++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf
index dea9eac6bc..a11d13f2de 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.pdf
+++ b/macros/latex/contrib/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx
index df3b71d9a8..38f75a3584 100644
--- a/macros/latex/contrib/l3kernel/l3expan.dtx
+++ b/macros/latex/contrib/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx
index 81e509bcbc..bbfd23957f 100644
--- a/macros/latex/contrib/l3kernel/l3file.dtx
+++ b/macros/latex/contrib/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx
index a45167ea89..1051a13cfc 100644
--- a/macros/latex/contrib/l3kernel/l3flag.dtx
+++ b/macros/latex/contrib/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
index 3476c0349c..dcf1a91a57 100644
--- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
index 82b4dad329..b493e809d9 100644
--- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
index 9cfc1c0bd0..2d917ea017 100644
--- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
index 252ecb7ce0..4c38963d42 100644
--- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
index 13ee5ed192..c59e18e17b 100644
--- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
index f6e24d3074..27d603f026 100644
--- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
index 45712a48b5..131652e9b6 100644
--- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
index 5d6f46a238..3f407c59d8 100644
--- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx
index 458575e3dc..10cdb8f6ee 100644
--- a/macros/latex/contrib/l3kernel/l3fp-random.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx
index 21892fcb94..5ec8f14fd9 100644
--- a/macros/latex/contrib/l3kernel/l3fp-round.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
index 8b748ed363..010e56cb70 100644
--- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
index 3fd98aeb8e..db1eb4cd03 100644
--- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx
index 0f9a1c301a..c6a59f5673 100644
--- a/macros/latex/contrib/l3kernel/l3fp.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx
index 3dafd98881..5f7659ee98 100644
--- a/macros/latex/contrib/l3kernel/l3fparray.dtx
+++ b/macros/latex/contrib/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx
index e9e1503644..efb01e35c3 100644
--- a/macros/latex/contrib/l3kernel/l3int.dtx
+++ b/macros/latex/contrib/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx
index b80aee9039..226d69667f 100644
--- a/macros/latex/contrib/l3kernel/l3intarray.dtx
+++ b/macros/latex/contrib/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
index b28b06a307..5a1ece81d9 100644
--- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx
index fcbee8893d..0cfd1eabbb 100644
--- a/macros/latex/contrib/l3kernel/l3keys.dtx
+++ b/macros/latex/contrib/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx
index f3ca1a1af8..0ad9794d44 100644
--- a/macros/latex/contrib/l3kernel/l3legacy.dtx
+++ b/macros/latex/contrib/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx
index deb78363d0..8f9b25e4b0 100644
--- a/macros/latex/contrib/l3kernel/l3luatex.dtx
+++ b/macros/latex/contrib/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx
index fa5c81c7da..0bcddab852 100644
--- a/macros/latex/contrib/l3kernel/l3msg.dtx
+++ b/macros/latex/contrib/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx
index 9b53598aca..1c65f6839c 100644
--- a/macros/latex/contrib/l3kernel/l3names.dtx
+++ b/macros/latex/contrib/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
@@ -1396,6 +1396,16 @@
\tex_let:D \tex_pdftexversion:D \tex_undefined:D
\tex_fi:D
% \end{macrocode}
+% \pkg{cslatex} moves a couple of primitives which we recover here; as there
+% is no other marker, we can only work by looking for the names.
+% \begin{macrocode}
+\tex_ifdefined:D \orieveryjob
+ \tex_let:D \tex_everyjob:D \orieveryjob
+\tex_fi:D
+\tex_ifdefined:D \oripdfoutput
+ \tex_let:D \tex_pdfoutput:D \oripdfoutput
+\tex_fi:D
+% \end{macrocode}
%
% For \ConTeXt{}, two tests are needed. Both Mark~II and Mark~IV move several
% primitives: these are all covered by the first test, again using \cs{end}
diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf
index 8603809e6e..a511841ae9 100644
--- a/macros/latex/contrib/l3kernel/l3news.pdf
+++ b/macros/latex/contrib/l3kernel/l3news.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf
index 4235ff9765..03331351d2 100644
--- a/macros/latex/contrib/l3kernel/l3news01.pdf
+++ b/macros/latex/contrib/l3kernel/l3news01.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf
index 7967d775a9..3df2abeff5 100644
--- a/macros/latex/contrib/l3kernel/l3news02.pdf
+++ b/macros/latex/contrib/l3kernel/l3news02.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf
index 7113bfe72b..03f24f254d 100644
--- a/macros/latex/contrib/l3kernel/l3news03.pdf
+++ b/macros/latex/contrib/l3kernel/l3news03.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf
index c0cb2eb4e1..38342aa9b6 100644
--- a/macros/latex/contrib/l3kernel/l3news04.pdf
+++ b/macros/latex/contrib/l3kernel/l3news04.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf
index 28b76bc9c7..42aa52c844 100644
--- a/macros/latex/contrib/l3kernel/l3news05.pdf
+++ b/macros/latex/contrib/l3kernel/l3news05.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf
index add439aefc..d819c31935 100644
--- a/macros/latex/contrib/l3kernel/l3news06.pdf
+++ b/macros/latex/contrib/l3kernel/l3news06.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf
index a2f62f8b78..e4f86d86a3 100644
--- a/macros/latex/contrib/l3kernel/l3news07.pdf
+++ b/macros/latex/contrib/l3kernel/l3news07.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf
index fb2cd9e8c4..94963487b3 100644
--- a/macros/latex/contrib/l3kernel/l3news08.pdf
+++ b/macros/latex/contrib/l3kernel/l3news08.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf
index 16ffff9d6b..565221a7f6 100644
--- a/macros/latex/contrib/l3kernel/l3news09.pdf
+++ b/macros/latex/contrib/l3kernel/l3news09.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf
index 26b83ebaea..412459b151 100644
--- a/macros/latex/contrib/l3kernel/l3news10.pdf
+++ b/macros/latex/contrib/l3kernel/l3news10.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf
index dced90194c..e9e4bbac55 100644
--- a/macros/latex/contrib/l3kernel/l3news11.pdf
+++ b/macros/latex/contrib/l3kernel/l3news11.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf
index 616e208760..f3a18ae2e0 100644
--- a/macros/latex/contrib/l3kernel/l3news12.pdf
+++ b/macros/latex/contrib/l3kernel/l3news12.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf
index 9ad063187f..f89808da3a 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.pdf
+++ b/macros/latex/contrib/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx
index 2b65561400..8345aeed89 100644
--- a/macros/latex/contrib/l3kernel/l3prg.dtx
+++ b/macros/latex/contrib/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx
index 79f5eaa2dc..6bb93e9738 100644
--- a/macros/latex/contrib/l3kernel/l3prop.dtx
+++ b/macros/latex/contrib/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx
index b03af55b49..df5b3d8dd6 100644
--- a/macros/latex/contrib/l3kernel/l3quark.dtx
+++ b/macros/latex/contrib/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx
index 1987116693..d17ab25cf8 100644
--- a/macros/latex/contrib/l3kernel/l3regex.dtx
+++ b/macros/latex/contrib/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx
index 337fd89183..45424fb54f 100644
--- a/macros/latex/contrib/l3kernel/l3seq.dtx
+++ b/macros/latex/contrib/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx
index 7aad033c33..26a27c5b87 100644
--- a/macros/latex/contrib/l3kernel/l3skip.dtx
+++ b/macros/latex/contrib/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx
index fdfe7dc3ad..cdbb13c721 100644
--- a/macros/latex/contrib/l3kernel/l3sort.dtx
+++ b/macros/latex/contrib/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx
index fed3e38c49..0d85d89c62 100644
--- a/macros/latex/contrib/l3kernel/l3str-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx
index 9685c6d40f..971746e70b 100644
--- a/macros/latex/contrib/l3kernel/l3str.dtx
+++ b/macros/latex/contrib/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf
index b05698dd65..5dc6b6b38b 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.pdf
+++ b/macros/latex/contrib/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex
index 8bed24ebce..5013d07852 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.tex
+++ b/macros/latex/contrib/l3kernel/l3styleguide.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-09-01}
+\date{Released 2020-09-03}
\begin{document}
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
index f4d44d9738..26e081ca79 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
index c5bacf26a2..a41a431e0e 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-09-01}
+\date{Released 2020-09-03}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx
index b7dd54d2e8..347e51e754 100644
--- a/macros/latex/contrib/l3kernel/l3sys.dtx
+++ b/macros/latex/contrib/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
index 0d5e144605..b7388d7b44 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.pdf
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex
index 6bbadb3300..0f60f77a98 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.tex
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-09-01}
+\date{Released 2020-09-03}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx
index 23d0b331f0..cffe7b60b1 100644
--- a/macros/latex/contrib/l3kernel/l3text-case.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx
index 3dfb06a8a3..800ac8ae74 100644
--- a/macros/latex/contrib/l3kernel/l3text-purify.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx
index a8774c069b..b80ead9476 100644
--- a/macros/latex/contrib/l3kernel/l3text.dtx
+++ b/macros/latex/contrib/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
index 5636086567..d39f6d686f 100644
--- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx
index 315db1ace0..81715a3b2e 100644
--- a/macros/latex/contrib/l3kernel/l3tl.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx
index 544a721886..8b7bc70e02 100644
--- a/macros/latex/contrib/l3kernel/l3token.dtx
+++ b/macros/latex/contrib/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx
index 35f71b70ca..3a38610e75 100644
--- a/macros/latex/contrib/l3kernel/l3unicode.dtx
+++ b/macros/latex/contrib/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-03}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf
index 9e4fc4fc28..790d04ca5a 100644
--- a/macros/latex/contrib/l3kernel/source3.pdf
+++ b/macros/latex/contrib/l3kernel/source3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex
index 6c19a94176..9804ff7def 100644
--- a/macros/latex/contrib/l3kernel/source3.tex
+++ b/macros/latex/contrib/l3kernel/source3.tex
@@ -53,7 +53,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-09-01}
+\date{Released 2020-09-03}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/lwarp/README.txt b/macros/latex/contrib/lwarp/README.txt
index bdb5dde3f1..771e3d6635 100644
--- a/macros/latex/contrib/lwarp/README.txt
+++ b/macros/latex/contrib/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.88 README.txt
+LaTeX lwarp package v0.89 README.txt
Files included are:
diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index 5e2df6201e..de330000f3 100644
--- a/macros/latex/contrib/lwarp/lwarp.dtx
+++ b/macros/latex/contrib/lwarp/lwarp.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{lwarp}
-%<package> [2020/07/19 v0.88 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2020/09/03 v0.89 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -2682,7 +2682,7 @@ are not working. These counters must be set separately after the
package has been loaded.
In the document source, use \cs{hfill} and \cs{hspace*}
-\trouble{horizontal spacing}{subfig>inline}
+\trouble[horizontal spacing]{subfig=\pkg{subfig}>inline}
between subfigures to spread them
apart horizontally. The use of other forms of whitespace may
cause paragraph tags to be generated, resulting in subfigures
@@ -2926,19 +2926,6 @@ place the following before \pkg{lwarp} is loaded:
\end{sourcedisplay}
}
-\newcommand{\limitsnewtxmath}{%
-The proper load order is:
-\trouble[loading sequence]{newtxmath=\pkg{newtxmath}}
-\begin{sourcedisplay}
-\textrm{\dots} \\
-\cs{usepackage}\{lwarp\} \\
-\textrm{\dots} \\
-\cs{usepackage}\{amsthm\} \\
-\cs{usepackage}\{newtxmath\} \\
-\textrm{\dots} \\
-\end{sourcedisplay}
-}
-
% For use in the documentation update section:
\newcommand*{\newlwarpmkconf}{
@@ -3018,7 +3005,7 @@ This boolean may be tested by the user for later use.
%<*package>
% \fi
%
-% \CheckSum{44695}
+% \CheckSum{47034}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -3149,6 +3136,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.86}{2020/05/12}{\ 2020/05/12}
% \changes{v0.87}{2020/06/03}{\ 2020/06/03}
% \changes{v0.88}{2020/07/19}{\ 2020/07/19}
+% \changes{v0.89}{2020/09/03}{\ 2020/09/03}
@@ -3181,8 +3169,9 @@ This boolean may be tested by the user for later use.
% The \pkg{lwarp} package converts \LaTeX\ to \HTML\ by using \LaTeX\ to process the
% user's document and directly generate \HTML\ tags. External utility programs are only
% used for the final conversion of text and images. Math may be represented
-% by \SVG\ images or \brand{MathJax}. Hundreds of \LaTeX\ packages are supported,
-% including dozens with \brand{MathJax} emulation.
+% by \SVG\ images or \brand{MathJax}.
+% More than 500 \LaTeX\ packages and classes are supported,
+% of which more than 60 also support \brand{MathJax}.
%
% Documents may be produced by \DVI\ or \PDF\ \LaTeX, Lua\LaTeX, \XeLaTeX;
% by several CJK engines, classes, and packages;
@@ -3371,6 +3360,29 @@ This boolean may be tested by the user for later use.
%
% \begin{description}
% \needspace{2\baselineskip}
+% \item[v0.89:] Additional \brand{MathJax} support.
+% \begin{itemize}
+% \item Adapted to upcoming \LaTeX\ kernel changes.
+% \margintag{core}
+% \item Allows load of \pkg{amsmath} before \pkg{lwarp}.
+% \item Also removes \filenm{*.bbl} when cleaning aux files.\margintag{\prog{lwarpmk}}
+% \item \brand{MathJax}: Neutralized \cs{protect}, \cs{mathcode} and related,
+% \margintag{\brand{MathJax}}
+% ligatures. Fixed nested environments.
+% \item \pkg{caption}: Updated for v3.5, fix for label sep.
+% \margintag{packages}
+% \item \pkg{thmtools}: Updated for v0.72. Fixed \optn{swapnumber}, \optn{margin}.
+% \item Improved \brand{MathJax} for \pkg{centernot}, \pkg{mathtools},
+% \pkg{mismath}, \pkg{SIunits}, \pkg{siunitx}, \pkg{statmath}.
+% \item Added \brand{MathJax} emulation for \pkg{accents}, \pkg{hepunits},
+% \pkg{hhtensor}, \pkg{mathalpha}, \pkg{mathdesign},
+% \pkg{mathpazo}, \pkg{mathptmx},
+% \pkg{mleftright}, \pkg{newpxmath}, \pkg{newtxmath}, \pkg{newtxsf},
+% \pkg{pxfonts}, \pkg{shuffle}, \pkg{txfonts},
+% \pkg{upgreek}, \pkg{ushort}.
+% \item Verified to work as-is: \pkg{authoraftertitle}.
+% \end{itemize}
+% \needspace{2\baselineskip}
% \item[v0.88:] Indexing, boxing, theorems.
% \begin{itemize}
% \item \textgreen{Now has programmed support for more than 500 packages and classes,
@@ -5412,7 +5424,8 @@ This boolean may be tested by the user for later use.
% \ipkg{tocbasic}, \mpkg{tocbibind}, \mpkg{tocdata},
% \ipkg{tocloft}, \ipkg{tocstyle}, \spkg{tocvsec2}. \\
%
-% Title page: & \cs{maketitle}, \env{titlepage}, \mpkg{authblk}, \mpkg{titling}. \\
+% Title page: & \cs{maketitle}, \env{titlepage}, \mpkg{authblk},
+% \spkg{authoraftertitle}, \mpkg{titling}. \\
%
% Front \&\ back matter: & \mpkg{abstract}, \mpkg{appendix}. \\
%
@@ -5440,7 +5453,7 @@ This boolean may be tested by the user for later use.
% \ipkg{bookmark}, \epkg{breakurl}, \spkg{cleveref}, \mpkg{fancyref},
% \ipkg{hypdestopt}, \epkg{hyperref}, \epkg{perpage}, \mpkg{prettyref},
% \epkg{titleref}, \mpkg{url}, \mpkg{varioref}, \spkg{xcite},
-% \mpkg{xr}, \mpkg{xr-hyper}, \ipkg{xurl}. \\
+% \mpkg{xr}, \mpkg{xr-hyper}, \ipkg{xurl}, \spkg{zref}. \\
%
% \midrule
%
@@ -5473,22 +5486,26 @@ This boolean may be tested by the user for later use.
% \mpkg{theorem}, \mpkg{thmbox}, \mpkg{thmtools}. \\
%
% Additional math: & Math fonts via \SVG\ images,
-% \spkg{amscd}, \spkg{autobreak}\ejax, \ipkg{autonum},
+% \spkg{accents}\ejax, \spkg{amscd}, \spkg{autobreak}\ejax, \ipkg{autonum},
% \mpkg{backnaur}, \mpkg{bm}\ejax, \spkg{braket}\ejax,
% \mpkg{breqn}, \mpkg{cases}, \spkg{centernot}\ejax, \spkg{colonequals}\ejax,
% \spkg{decimal}\ejax,
% \spkg{delarray}, \mpkg{DotArrow}\ejax, \spkg{dotlessi}\ejax, \spkg{dotlessj}\sjax,
% \spkg{extarrows}\ejax, \spkg{fouridx}\ejax,
-% \spkg{guass}, \spkg{icomma}\ijax, \spkg{jkmath},
-% \spkg{leftidx}\ejax, \spkg{mathcomp}\ejax, \spkg{mathdots}\ejax,
+% \spkg{guass}, \spkg{hhtensor}\ejax, \spkg{icomma}\ijax, \spkg{jkmath},
+% \spkg{leftidx}\ejax, \spkg{mathalpha}\ejax,
+% \spkg{mathcomp}\ejax, \spkg{mathdesign}\ejax,
+% \spkg{mathdots}\ejax,
% \spkg{mathfixs}\ejax, \spkg{mathpunctspace}\ijax,
-% \spkg{mathspec}, \mpkg{mathtools}\ejax, \mpkg{mismath}\ejax,
+% \spkg{mathspec}, \mpkg{mathtools}\ejax, \mpkg{mismath}\ejax, \spkg{mleftright}\ejax,
% \spkg{multiobjective}\ejax, \mpkg{nccmath}\ejax,
-% \spkg{nicematrix}, \spkg{noitcrul}\ejax, \spkg{pb-diagram},
-% \ipkg{resizegather}, \spkg{rmathbr}\ejax, \spkg{stackrel}\ejax,
+% \spkg{nicematrix}, \spkg{noitcrul}\ejax,
+% \spkg{newpxmath}\ejax, \spkg{newtxmath}\ejax, \spkg{newtxsf}\ejax,
+% \spkg{pb-diagram},
+% \ipkg{resizegather}, \spkg{rmathbr}\ejax, \epkg{shuffle}\ejax, \spkg{stackrel}\ejax,
% \mpkg{statex2}\ejax, \spkg{statmath}\ejax,
% \spkg{subsupscripts}\ejax, \spkg{textualicomma}\ijax,
-% \spkg{unicode-math}\ejax, \mpkg{witharrows}\ejax,
+% \spkg{unicode-math}\ejax, \spkg{ushort}\ejax, \mpkg{witharrows}\ejax,
% \mpkg{xfakebold}\ejax, \mpkg{xy}.
% Many others work as-is. \\
%
@@ -5631,9 +5648,12 @@ This boolean may be tested by the user for later use.
% \mpkg{chemgreek}, \mpkg{dingbat}, \spkg{euro}, \mpkg{eurosym},
% \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\ejax, \spkg{latexsym}\sjax,
% \mpkg{marvosym},
-% \spkg{mathcomp}\ejax, \mpkg{metalogo}, \mpkg{metalogox},
-% \mpkg{pifont}, \spkg{textalpha},
-% \mpkg{textcomp}, \spkg{textgreek}, \mpkg{typicons}, \mpkg{xunicode}.
+% \spkg{mathcomp}\ejax, \spkg{mathpazo}\ejax, \spkg{mathptmx}\ejax,
+% \mpkg{metalogo}, \mpkg{metalogox},
+% \mpkg{pifont}, \spkg{pxfonts}\ejax, \spkg{textalpha},
+% \mpkg{textcomp}, \spkg{textgreek}, \spkg{txfonts}\ejax,
+% \mpkg{typicons}, \spkg{upgreek}\ejax,
+% \mpkg{xunicode}.
% \\
%
% \midrule
@@ -5653,7 +5673,8 @@ This boolean may be tested by the user for later use.
% \mpkg{chemmacros}, \mpkg{chemnum},
% \spkg{circuitikz}, \spkg{econometrics}\ejax, \spkg{elements},
% \mpkg{engtlc}\ejax, \spkg{fast-diagram}, \mpkg{ghsystem},
-% \spkg{hepnicenames}, \spkg{heppennames}, \spkg{karnaughmap}, \mpkg{karnaugh-map},
+% \spkg{hepnicenames}, \spkg{heppennames}, \spkg{hepunits}\ejax,
+% \spkg{karnaughmap}, \mpkg{karnaugh-map},
% \mpkg{listings}, \spkg{listingsutf8}, \spkg{linop}, \mpkg{mhchem}\sjax, \spkg{pgfgantt},
% \mpkg{phfqit}, \spkg{physics}\sjax, \spkg{physunits}\ejax, \spkg{qcircuit},
% \mpkg{register}, \spkg{simpler-wick},
@@ -7312,10 +7333,9 @@ This boolean may be tested by the user for later use.
% ^^A \gindex{ligatures}\gindex{font>ligatures}
% \end{enumerate}
% \end{itemize}
-% \item |\usepackage{lwarp}| (\cref{sec:loading}) is placed after any of the above, followed by:
% \item |\usepackage{newtxmath}| or other math-related font packages.
-% Many of these load \pkg{amsmath}, which must be loaded after \pkg{lwarp},
-% so they must also be loaded after \pkg{lwarp}.
+% Many of these load \pkg{amsmath}, which may now be loaded before \pkg{lwarp}.
+% \item |\usepackage{lwarp}| (\cref{sec:loading}) is placed after any of the above, followed by:
% \item |\setmonofont{TeX Gyre Cursor}| or similar may be required if using
% \trouble[\pkg{fontspec} with monospaced fonts]{font>monospace}
% \trouble{font>ligatures}
@@ -10175,12 +10195,6 @@ This boolean may be tested by the user for later use.
%
%
%
-% \subsubsection{\pkg{newtxmath} package}
-%
-% \DescribePackage{newtxmath}
-% \limitsnewtxmath
-%
-%
% \subsection{Graphics}
% \label{sec:limitsgraphics}
%
@@ -11757,6 +11771,12 @@ This boolean may be tested by the user for later use.
% \end{sourcedisplay}
% \trouble{Label(s) may have changed}
%
+% \item [``Temporary page! LaTeX was unable to guess the total
+% number of pages \dots'':] \
+% Harmless. Recompile the document one more time.
+% \trouble{Temporary page \dots unable to guess \dots}
+% \trouble{LaTeX was unable to guess the total\dots}
+%
% \item [``Leaders not followed by proper glue'':] ~ \\
% This can be caused by
% a missing |l@<floattype>| or |l@<sectiontype>| definition.
@@ -12629,6 +12649,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.45}{2017/12/03}{Allows \pkg{memoir}'s preloaded packages.}
% \changes{v0.58}{2018/06/21}{Fix: \pkg{memoir} and \pkg{ccaption}.}
% \changes{v0.82}{2020/03/17}{\pkg{syntonly}: Added to \cs{LWR@loadafter}.}
+% \changes{v0.89}{2020/08/12}{Allow preload of \pkg{amsmath}, \pkg{amsthm}, \pkg{centernot}.}
%
% The following packages must be loaded after \pkg{lwarp}:
% ^^A *loadafter
@@ -12640,6 +12661,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{a5comb}
\LWR@notmemoirloadafter{abstract}
\LWR@loadafter{academicons}
+\LWR@loadafter{accents}
\LWR@loadafter{accessibility}
\LWR@loadafter{accsupp}
\LWR@loadafter{acro}
@@ -12650,8 +12672,8 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{algorithm2e}
\LWR@loadafter{algorithmicx}
\LWR@loadafter{alltt}
-\LWR@loadafter{amsmath}
-\LWR@loadafter{amsthm}
+% \LWR@loadafter{amsmath}% may be preloaded
+% \LWR@loadafter{amsthm}% may be preloaded
\LWR@loadafter{anonchap}
\LWR@loadafter{anysize}
\LWR@notmemoirloadafter{appendix}
@@ -12660,10 +12682,11 @@ This boolean may be tested by the user for later use.
\LWR@notmemoirloadafter{array}
\LWR@loadafter{arydshln}
\LWR@loadafter{asymptote}
-% \LWR@loadafter{atbegshi}% used by morewrites
+% \LWR@loadafter{atbegshi}% now in LaTeX core, also used by morewrites
\LWR@loadafter{attachfile}
\LWR@loadafter{attachfile2}
\LWR@loadafter{authblk}
+\LWR@loadafter{authoraftertitle}% Supported as-is, but must be loaded after.
\LWR@loadafter{autobreak}
\LWR@loadafter{autonum}
\LWR@loadafter{awesomebox}
@@ -12696,10 +12719,11 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{canoniclayout}
\LWR@loadafter{caption}
\LWR@loadafter{caption2}
+\LWR@loadafter{caption3}
\LWR@loadafter{cases}
% catoptions is supported by the lwarp core
% \LWR@loadafter{ccaption}% may be preloaded by memoir
-\LWR@loadafter{centernot}
+% \LWR@loadafter{centernot}% may be preloaded by newtx
\LWR@loadafter{changebar}
\LWR@loadafter{changelayout}
\LWR@notmemoirloadafter{changepage}
@@ -12764,7 +12788,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{etoc}
\LWR@loadafter{eurosym}
\LWR@loadafter{everypage}
-\LWR@loadafter{everyshi}
+% \LWR@loadafter{everyshi}% now in LaTeX core
\LWR@loadafter{extarrows}
\LWR@loadafter{extramarks}
\LWR@loadafter{fancybox}
@@ -12830,7 +12854,9 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{gridset}
\LWR@loadafter{hang}
\LWR@loadafter{hanging}
+\LWR@loadafter{hepunits}
\LWR@loadafter{hhline}
+\LWR@loadafter{hhtensor}
\LWR@loadafter{hypbmsec}
\LWR@loadafter{hypcap}
\LWR@loadafter{hypdestopt}
@@ -12879,9 +12905,13 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{marginfix}
\LWR@loadafter{marginnote}
\LWR@loadafter{marvosym}
+% mathalpha may be loaded before lwarp
\LWR@loadafter{mathcomp}
+\LWR@loadafter{mathdesign}
\LWR@loadafter{mathdots}
\LWR@loadafter{mathfixs}
+\LWR@loadafter{mathpazo}
+\LWR@loadafter{mathptmx}
\LWR@loadafter{mathtools}
\LWR@loadafter{mcaption}
\LWR@loadafter{mdframed}
@@ -12896,6 +12926,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{minibox}
\LWR@loadafter{minitoc}
\LWR@loadafter{mismath}
+\LWR@loadafter{mleftright}
% morefloats must be allowed early for print mode
\LWR@notmemoirloadafter{moreverb}
% morewrites must be loaded before lwarp
@@ -12918,7 +12949,9 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{nccmath}
\LWR@notmemoirloadafter{needspace}
% newclude must be loaded before lwarp
-\LWR@loadafter{newtxmath}
+% newpxmath may be preloaded
+% newtxmath may be loaded before lwarp
+% newtxsf may be loaded before lwarp
% newunicodechar must be loaded before lwarp
\LWR@notmemoirloadafter{nextpage}
\LWR@loadafter{nicefrac}
@@ -12982,6 +13015,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{pstricks}
% \LWR@loadafter{pxatbegshi}% may be used by morewrites
\LWR@loadafter{pxeveryshi}
+\LWR@loadafter{pxfonts}
\LWR@loadafter{pxftnright}
\LWR@loadafter{pxjahyper}
\LWR@loadafter{quotchap}
@@ -13020,6 +13054,7 @@ This boolean may be tested by the user for later use.
\LWR@notmemoirloadafter{showidx}
\LWR@loadafter{showkeys}
\LWR@loadafter{showtags}
+\LWR@loadafter{shuffle}
\LWR@loadafter{sidecap}
\LWR@loadafter{sidenotes}
\LWR@loadafter{SIunits}
@@ -13067,6 +13102,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{thm-listof}
\LWR@loadafter{thm-restate}
\LWR@loadafter{thmbox}
+\LWR@loadafter{thmtools}
\LWR@loadafter{threadcol}
\LWR@loadafter{threeparttable}
\LWR@loadafter{threeparttablex}
@@ -13092,6 +13128,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{trivfloat}
\LWR@loadafter{truncate}
\LWR@loadafter{turnthepage}
+\LWR@loadafter{txfonts}
\LWR@loadafter{twoup}
% \end{macrocode}
% \changes{v0.44}{2017/11/19}{Adjustment for \pkg{koma-script}.}
@@ -13104,8 +13141,10 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{unicode-math}
\LWR@loadafter{units}
\LWR@loadafter{unitsdef}
+\LWR@loadafter{upgreek}
\LWR@loadafter{upref}
\LWR@loadafter{url}
+\LWR@loadafter{ushort}
\LWR@loadafter{uspace}
\LWR@loadafter{varioref}
\LWR@notmemoirloadafter{verse}
@@ -13390,11 +13429,13 @@ This boolean may be tested by the user for later use.
% \begin{macro}{\LWR@patcherror} \marg{packagename} \marg{macroname}
%
% Prints an error if could not patch a macro.
+% \changes{v0.89}{2020/09/01}{Improved message.}
% \begin{macrocode}
\newcommand*{\LWR@patcherror}[2]{%
\PackageError{lwarp}%
{%
- Unable to patch package #1, macro #2.\MessageBreak
+ Unable to patch package #1,\MessageBreak
+ macro \LWRbackslash #2.\MessageBreak
Lwarp may need to be updated%
}%
{Please contact the maintainer of the Lwarp package.}%
@@ -13564,6 +13605,19 @@ This boolean may be tested by the user for later use.
% \end{macro}
%
%
+% \subsection{Title case}
+%
+% \begin{macro}{\LWRtexttitlecase}
+% \begin{macrocode}
+\ExplSyntaxOn
+\newcommand*{\LWRtexttitlecase}[1]{%
+ \text_titlecase:n{#1}%
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+%
% \subsection{LetLtxMacrocs}
%
% \begin{macro}{\LWR@LetLtxMacrocs} \marg{newcsname} \marg{oldcsname}
@@ -14612,8 +14666,16 @@ This boolean may be tested by the user for later use.
tracking=false,
kerning=false,
spacing=false}
-
-\DisableLigatures[f,q,t,T,Q]{encoding = *,family = *}
+% \begin{macrocode}
+%
+% Disable ligatures for typewriter fonts.
+% The comma was causing issues with \brand{MathJax} and \cs{,} followed by a comma.
+% Ligatures for f, q, t, etc used to be disabled for non-typewriter fonts, but
+% are now allowed.
+% \changes{v0.89}{2020/08/01}{Disable typewriter ligatures.}
+% ^^A \DisableLigatures[{,},f,q,t,T,Q]{encoding = *,family = *}% previous
+% \begin{macrocode}
+\DisableLigatures{encoding = *,family = tt*}
% \end{macrocode}
% ^^A
% ^^A
@@ -17749,8 +17811,8 @@ div.wpminipage { border: 1px solid green ; margin: .5ex ; padding: .5ex ;}
}
-/* mdframed, tcolorbox packages */
-.mdframed, .tcolorbox {
+/* mdframed, tcolorbox, shadebox packages */
+.mdframed, .tcolorbox, .shadebox {
padding: 0ex ;
margin: 2ex 0em 2ex 0em ;
border: 1px solid black ;
@@ -19467,7 +19529,7 @@ MathJax = {
subequations: "0",
section: "",
loader: {
- load: ['[tex]/tagFormat']
+ load: ['[tex]/tagFormat'],
},
startup: {
ready() {
@@ -19684,15 +19746,16 @@ MathJax = {
% \changes{v0.59}{2018/08/21}{\prog{lwarpmk}: Consolidated compiling options into \optn{printlatexcmd} and \optn{HTMLlatexcmd}.}
% \changes{v0.59}{2018/09/06}{\prog{lwarpmk}: Added \cmds{lwarpmk epstopdf}.}
% \changes{v0.66}{2019/01/27}{\prog{lwarpmk}: Added \optn{ImagesDirectory} and \optn{ImagesName}.}
-% \changes{v0.66}{2019/01/30}{\prog{lwarpmk}: Fix for \cmds{cleanlimages}.}%
-% \changes{v0.68}{2019/03/02}{\prog{lwarpmk}: Improved error handling if incomplete compile.}%
+% \changes{v0.66}{2019/01/30}{\prog{lwarpmk}: Fix for \cmds{cleanlimages}.}
+% \changes{v0.68}{2019/03/02}{\prog{lwarpmk}: Improved error handling if incomplete compile.}
% \changes{v0.71}{2019/04/11}{\prog{lwarpmk}: If wrong \filenm{lwarpmk.conf} version,
% or wrong OS,
-% displays the print command to recompile.}%
-% \changes{v0.74}{2019/08/05}{\prog{lwarpmk}: \cmds{lwarpmk clean} removes add'l files.}%
-% \changes{v0.74}{2019/08/14}{\prog{lwarpmk}: \cmds{lwarpmk epstopdf} and \cmds{pdftosvg} honor directories.}%
-% \changes{v0.81}{2020/03/04}{\prog{lwarpmk}: Improved error if in \pkg{lwarp} source directory.}%
-% \changes{v0.84}{2020/03/30}{\prog{lwarpmk}: \optn{clean} also removes \filenm{comment_*.cut}}%
+% displays the print command to recompile.}
+% \changes{v0.74}{2019/08/05}{\prog{lwarpmk}: \cmds{lwarpmk clean} removes add'l files.}
+% \changes{v0.74}{2019/08/14}{\prog{lwarpmk}: \cmds{lwarpmk epstopdf} and \cmds{pdftosvg} honor directories.}
+% \changes{v0.81}{2020/03/04}{\prog{lwarpmk}: Improved error if in \pkg{lwarp} source directory.}
+% \changes{v0.84}{2020/03/30}{\prog{lwarpmk}: \optn{clean} also removes \filenm{comment_*.cut}}
+% \changes{v0.89}{2020/08/29}{\prog{lwarpmk}: \optn{clean} also removes \filenm{*.bbl}}
%
% The following is only generated if the \optn{lwarpmk} option
% was given to \pkg{lwarp}.
@@ -19708,7 +19771,7 @@ MathJax = {
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.88"
+printversion = "v0.89"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -19739,7 +19802,7 @@ lwarpmk pdftohtml [-p project]:
lwarpmk pdftosvg <list of file names>: Converts each PDF file to SVG.
lwarpmk epstopdf <list of file names>: Converts each EPS file to PDF.
lwarpmk clean [-p project]: Remove *.aux, *.toc, *.lof/t,
- *.idx, *.ind, *.log, *_html_inc.*, .gl*,
+ *.idx, *.ind, *.bbl, *.log, *_html_inc.*, .gl*,
*_html.pdf, *_html.html, *_html.sidetoc
lwarpmk cleanall [-p project]: Remove auxiliary files, project.pdf, *.html
lwarpmk cleanlimages: Removes all images from the "lateximages" directory.
@@ -20109,6 +20172,7 @@ os.execute ( rmname .. " *.aux " ..
sourcename ..".toc " .. sourcename .. "_html.toc " ..
sourcename ..".lof " .. sourcename .. "_html.lof " ..
sourcename ..".lot " .. sourcename .. "_html.lot " ..
+ sourcename ..".bbl " .. sourcename .. "_html.bbl " ..
" *.idx " ..
" *.ind " ..
sourcename ..".ps " .. sourcename .."_html.ps " ..
@@ -24182,11 +24246,24 @@ end -- not --version
% \begin{macro}{\LWR@HTMLsanitizeexpand} \marg{text}
%
% This version expands the argument before sanitizing it.
+% This is only used for adding math to \brand{MathJax} expressions or
+% \env{lateximage} \attribute{alt} tags.
%
% \changes{v0.36}{2017/08/16}{Fix for \pkg{babel-french}.}
% \changes{v0.51}{2018/03/07}{Fix: Escapes double quotes.}
% \changes{v0.79}{2020/01/27}{Fix: \cs{\&}.}
+% \changes{v0.89}{2020/08/08}{Fix: Nested \brand{MathJax} environments.}
% \begin{macrocode}
+\edef\LWR@beginspaceleftbrace{begin \LWRleftbrace}
+\edef\LWR@beginspaceleftbrace{\detokenize\expandafter{\LWR@beginspaceleftbrace}}
+\edef\LWR@beginleftbrace{begin\LWRleftbrace}
+\edef\LWR@beginleftbrace{\detokenize\expandafter{\LWR@beginleftbrace}}
+
+\edef\LWR@endspacerightbrace{end \LWRrightbrace}
+\edef\LWR@endspacerightbrace{\detokenize\expandafter{\LWR@endspacerightbrace}}
+\edef\LWR@endrightbrace{end\LWRrightbrace}
+\edef\LWR@endrightbrace{\detokenize\expandafter{\LWR@endrightbrace}}
+
\newrobustcmd{\LWR@HTMLsanitizeexpand}[1]{%
% \end{macrocode}
% Cancel French \pkg{babel} character handling,
@@ -24201,6 +24278,18 @@ end -- not --version
% \begin{macrocode}
\protect\StrSubstitute{\detokenize\expandafter{#1}}%
{\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]%
+% \end{macrocode}
+% The math expression may includes spaces between tokens,
+% but \brand{MathJax} does not want a space between \cs{begin} or \cs{end}
+% and the following brace.
+% This space is removed here.
+% \begin{macrocode}
+ \protect\StrSubstitute{\LWR@strresult}%
+ {\LWR@beginspaceleftbrace}{\LWR@beginleftbrace}[\LWR@strresult]%
+ \protect\StrSubstitute{\LWR@strresult}%
+ {\LWR@endspacerightbrace}{\LWR@endrightbrace}[\LWR@strresult]%
+% \end{macrocode}
+% \begin{macrocode}
\LWR@subHTMLsanitize%
\LWR@strresult%
\endgroup%
@@ -24339,11 +24428,10 @@ end -- not --version
\CustomizeMathJax{\def\LWRfootnote{1}}
\CustomizeMathJax{\newcommand{\footnote}[2][\LWRfootnote]{{}^{\mathrm{#1}}}}
\CustomizeMathJax{\newcommand{\footnotemark}[1][\LWRfootnote]{{}^{\mathrm{#1}}}}
-\end{warpMathJax}
% \end{macrocode}
+% Various other customizations:
% \begin{macrocode}
-\begin{warpMathJax}
\CustomizeMathJax{\newcommand\ensuremath[1]{#1}}
\CustomizeMathJax{% absorb two optional arguments
\newcommand{\LWRframebox}[2][]{\fbox{#2}}
@@ -24356,6 +24444,20 @@ end -- not --version
\CustomizeMathJax{\newcommand{\cline}[1]{}}
\CustomizeMathJax{\newcommand{\directlua}[1]{\text{(directlua)}}}
\CustomizeMathJax{\newcommand{\luatexdirectlua}[1]{\text{(directlua)}}}
+% \end{macrocode}
+%
+% \cs{protect}, \cs{mathchar}, and \cs{delimiter} are silently discarded; and
+% \cs{mathcode} and \cs{delcode} are ignored.
+% \changes{v0.89}{2020/07/27}{mathjax=\brand{MathJax}: Added \cs{protect}, and
+% \cs{mathcode} and related.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\protect}{}}
+\CustomizeMathJax{\def\LWRabsorbnumber#1 {}}
+\CustomizeMathJax{\def\LWRabsorbquotenumber"#1 {}}
+\CustomizeMathJax{\def\mathchar{\ifnextchar"\LWRabsorbquotenumber\LWRabsorbnumber}}
+\CustomizeMathJax{\def\mathcode#1={\mathchar}}
+\CustomizeMathJax{\let\delcode\mathcode}
+\CustomizeMathJax{\let\delimiter\mathchar}
\end{warpMathJax}
\begin{warpHTML}% due to warpMathJax
@@ -24375,17 +24477,19 @@ end -- not --version
\LWR@stoppars
\LWR@htmlcomment{MathJax customizations:}
-\typeout{---}
-\typeout{Package lwarp:}
-\typeout{Processing MathJax customizations. If this takes too long,}
-\typeout{see the Lwarp manual regarding customizing MathJax.}
\begin{BlockClass}{hidden}
\LWR@stoppars
-\LWR@customizedMathJax
+% \end{macrocode}
+%
+% Avoid ligatures while printing \brand{MathJax} customizations:
+% \changes{v0.89}{2020/08/02}{Print \brand{MathJax} customizations with typewriter font.}
+% \begin{macrocode}
+{
+ \LWR@print@ttfamily
+ \LWR@customizedMathJax
+}
\LWR@startpars
\end{BlockClass}
-\typeout{Done.}
-\typeout{---}
\LWR@startpars
}{}
@@ -26116,8 +26220,22 @@ end -- not --version
% disable \cs{ensuremath} by printing a nullified
% definition at the start of each file, and add further customizations:
% \changes{v0.51}{2018/03/18}{MathJax: Nullifies \cs{ensuremath}.}
+% \changes{v0.89}{2020/08/17}{MathJax: Improved info message.}
% \begin{macrocode}
+\ifbool{mathjax}{
+ \typeout{---}
+ \typeout{Package lwarp:}
+ \typeout{Processing MathJax customizations for the first HTML page.}
+ \typeout{Later HTML pages will take the same amount of time.}
+ \typeout{If this takes too long, see the Lwarp manual regarding customizing MathJax.}
+}{}
+
\LWR@customizeMathJax
+
+\ifbool{mathjax}{
+ \typeout{Done.}
+ \typeout{---}
+}{}
% \end{macrocode}
%
% ^^A % Likewise for Ka\TeX:
@@ -26238,41 +26356,91 @@ end -- not --version
% If labels have not changed, mark successful completion
% of the \filenm{lateximages.txt} file.
% Executed as everything is being shut down.
+%
+% For the newer kernel hooks, see \cmds{texdoc lthooks-doc} and \cmds{texdoc ltshipout-doc}.
% \changes{v0.70}{2019/03/26}{If labels changed, require recompile before making limages.}
+% \changes{v0.89}{2020/07/28}{Adapt to \LaTeX\ core changes.}
+% \begin{macrocode}
+\ifdef{\AddToHook}{% newer kernel
+ \AddToHook{enddocument/info}{%
+ \if@filesw
+ \ifx \@multiplelabels \relax
+ \if@tempswa
+% \end{macrocode}
+% This is where warnings of duplicate labels would appear.
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% No duplicate labels, so safe to create images.
% \begin{macrocode}
-\xpatchcmd{\enddocument}
- {%
- \if@tempswa
- \@latex@warning@no@line{Label(s) may have changed.
- Rerun to get cross-references right}%
- \fi
- }
- {%
- \if@tempswa
- \@latex@warning@no@line{Label(s) may have changed.
- Rerun to get cross-references right}%
- \else
\immediate\write\LWR@lateximagesfile{%
|end|end|end|%
}%
- \fi
+ \fi
+ \fi\fi
}
- {}
- {
- \AtEndDocument{
- \PackageWarningNoLine{lwarp}
- {%
- Could not patch \protect\enddocument.\MessageBreak
- If labels have changed, be sure to recompile before\MessageBreak
- creating lateximages with\MessageBreak
- \space\space lwarpmk limages,\MessageBreak
- or the images may be corrupt%
+}% newer kernel
+{% older kernel
+ \xpatchcmd{\enddocument}
+ {%
+ \if@tempswa
+ \@latex@warning@no@line{Label(s) may have changed.
+ Rerun to get cross-references right}%
+ \fi
+ }
+ {%
+ \if@tempswa
+ \@latex@warning@no@line{Label(s) may have changed.
+ Rerun to get cross-references right}%
+ \else
+% \end{macrocode}
+% No duplicate labels, so safe to create images.
+% \begin{macrocode}
+ \immediate\write\LWR@lateximagesfile{%
+ |end|end|end|%
+ }%
+ \fi
+ }
+ {}
+ {
+ \AtEndDocument{
+ \PackageWarningNoLine{lwarp}
+ {%
+ Could not patch \protect\enddocument.\MessageBreak
+ If labels have changed, be sure to recompile before\MessageBreak
+ creating lateximages with\MessageBreak
+ \space\space lwarpmk limages,\MessageBreak
+ or the images may be corrupt%
+ }
}
}
- }
+}% older kernel
% \end{macrocode}
% \end{macro}
+
+% \section{Nullifying foreground \Slash background hooks}
+%
+% See \cmds{texdoc lthooks-doc} and \cmds{textdoc ltshipout-doc}.
+%
+% \changes{v0.89}{2020/07/28}{Foreground/background hooks: Adapt to \LaTeX\ core changes.}
+% \begin{macrocode}
+\ifdef{\RemoveFromHook}{
+ \AfterEndPreamble{
+ \IfHookEmptyTF{shipout/background}{}{
+ \PackageInfo{lwarp}{Removing background hook}
+ \RemoveFromHook{shipout/background}[*]
+ }
+ \IfHookEmptyTF{shipout/foreground}{}{
+ \PackageInfo{lwarp}{Removing foreground hook}
+ \RemoveFromHook{shipout/foreground}[*]
+ }
+ }
+}{}
+% \end{macrocode}
+
+
+
% \begin{macrocode}
\end{warpHTML}
% \end{macrocode}
@@ -27418,7 +27586,7 @@ end -- not --version
% \begin{macrocode}
\begin{warpHTML}
% \end{macrocode}
-
+%
% \begin{macro}{\@begintheorem} \marg{name} \marg{number}
% \begin{macrocode}
\renewcommand{\@begintheorem}[2]{%
@@ -27429,16 +27597,26 @@ end -- not --version
}
% \end{macrocode}
% \end{macro}
+%
+%
% \begin{macro}{\@opargbegintheorem} \marg{name} \marg{number} \marg{oparg}
+%
+% \LaTeX\ defines this, but \pkg{amsthm} \cs{relax}es it,
+% so it will not be defined if \pkg{amsthm} is loaded before \pkg{lwarp}.
+% \changes{v0.89}{2020/08/12}{Allow preload of \pkg{amsmath}, \pkg{amsthm}, \pkg{centernot}.}
% \begin{macrocode}
-\renewcommand{\@opargbegintheorem}[3]{%
-\LWR@forcenewpage
-\BlockClass{theoremcontents}
-\trivlist
-\item[\InlineClass{theoremlabel}{#1\ #2\ (#3)\ }]\itshape
+\ifundef{\@opargbegintheorem}{}{
+ \renewcommand{\@opargbegintheorem}[3]{%
+ \LWR@forcenewpage
+ \BlockClass{theoremcontents}
+ \trivlist
+ \item[\InlineClass{theoremlabel}{#1\ #2\ (#3)\ }]\itshape
+ }
}
% \end{macrocode}
% \end{macro}
+%
+%
% \begin{macro}{\@endtheorem}
% \begin{macrocode}
\renewcommand*{\@endtheorem}{%
@@ -35716,12 +35894,20 @@ end -- not --version
}%
% \end{macrocode}
% For \brand{MathJax}, print the math between |\(| and |\)|:
+% \changes{v0.89}{2020/08/01}{TT font for \brand{MathJax}.}
% \begin{macrocode}
{%
\LWR@traceinfo{LWR@subsingledollar: Mathjax}%
{%
\textbackslash(%
- \LWR@HTMLsanitize{#4}%
+ {%
+% \end{macrocode}
+% \cs{ifmmode} to avoid error about \cs{ttfamily} inside math mode
+% in the case of nested math, ex. equation with tcolorbox with math.
+% \begin{macrocode}
+ \ifmmode\else\LWR@print@ttfamily\fi%
+ \LWR@HTMLsanitize{#4}%
+ }%
\textbackslash)%
}%
}% mathjax
@@ -35793,11 +35979,12 @@ end -- not --version
% \end{macrocode}
% For \brand{MathJax}, print the math between |\[| and |\]|:
% \changes{v0.42}{2017/10/16}{Improved line spacing with mathjax.}
+% \changes{v0.89}{2020/08/01}{TT font for \brand{MathJax}.}
% \begin{macrocode}
{
\textbackslash[%
- \LWR@HTMLsanitize{#1}%
+ {\LWR@print@ttfamily\LWR@HTMLsanitize{#1}}%
\textbackslash]
}% mathjax
@@ -35842,6 +36029,7 @@ end -- not --version
%
%
% \begin{macro}{\LWR@singledollar} \marg{alt text} \marg{math expression}
+% \changes{v0.89}{2020/08/01}{TT font for \brand{MathJax}.}
% \begin{macrocode}
\protected\gdef\LWR@singledollar#1${%
\ifbool{mathjax}{%
@@ -35882,7 +36070,7 @@ end -- not --version
\protected\gdef\[#1\]{$$#1$$}
}
-\endgroup
+\endgroup% active $
% \end{macrocode}
% \changes{v0.59}{2018/08/23}{Fix with \cs{displaymathnormal}.}
% \begin{macrocode}
@@ -35984,9 +36172,12 @@ end -- not --version
% Set the default displaymath to the normal version:
+%
+% \changes{v0.89}{2020/08/12}{Removed \cs{let} of \cs{[}, \cs{]}.}
+% ^^A \LetLtxMacro\[\LWR@openbracketnormal% (but not yet defined)
+% ^^A \LetLtxMacro\]\LWR@closebracketnormal%
+%
% \begin{macrocode}
-\LetLtxMacro\[\LWR@openbracketnormal%
-\LetLtxMacro\]\LWR@closebracketnormal%
\LetLtxMacro\displaymath\LWR@displaymathnormal%
\LetLtxMacro\enddisplaymath\endLWR@displaymathnormal%
% \end{macrocode}
@@ -36196,15 +36387,20 @@ end -- not --version
% Enclose the \brand{MathJax} environment inside printed ``\cs{(}'' and ``\cs{)}'' characters.
% \begin{macrocode}
\LWR@origtilde\LWR@orignewline
- \textbackslash{}begin\{#1\}
% \end{macrocode}
-% Print the contents, sanitizing for \HTML\ special characters.
+% Print the environment name and contents, sanitizing for \HTML\ special characters.
+% \changes{v0.89}{2020/08/01}{TT font for \brand{MathJax}.}
% \begin{macrocode}
- \LWR@HTMLsanitizeexpand{\detokenize\expandafter{#2}}
+ {%
+ \LWR@print@ttfamily%
+ \textbackslash{}begin\{#1\}
+ \LWR@orignewline%
+ \LWR@HTMLsanitizeexpand{\detokenize\expandafter{#2}}%
+ \LWR@orignewline%
+ \textbackslash{}end\{#1\}
+ }%
% \end{macrocode}
-% Close the \brand{MathJax} environment:
% \begin{macrocode}
- \textbackslash{}end\{#1\}
\LWR@orignewline
}
% \end{macrocode}
@@ -36663,11 +36859,12 @@ end -- not --version
% \changes{v0.42}{2017/10/12}{Fix: Numbering and naming AMS math environments.}
% \changes{v0.50}{2018/03/02}{Improved \SVG\ math display.}
% \changes{v0.51}{2018/03/11}{Fix: \cs{addcontentsline} inside \SVG\ math. Provides an autoid anchor.}
+% \changes{v0.89}{2020/08/02}{\cs{textendash} for number range.}
% \begin{macrocode}
\begin{BlockClass}{displaymathnumbered}%
\LWR@newautoidanchor%
\booltrue{LWR@indisplaymathimage}%
- \begin{lateximage}[(\LWR@startingequationtag--\LWR@equationtag)%
+ \begin{lateximage}[(\LWR@startingequationtag\textendash\LWR@equationtag)%
\LWR@addmathjax{eqnarray}{\BODY}]*%
% \end{macrocode}
% Support for \pkg{xfakebold}:
@@ -36988,13 +37185,14 @@ end -- not --version
% prefixed by the equation numbers.
%
% \changes{v0.42}{2017/10/12}{Fix: Numbering and naming AMS math environments.}
+% \changes{v0.89}{2020/08/02}{\cs{textendash} for number range.}
%
% \begin{macrocode}
\newcommand*{\LWR@amsmathbodynumbered}[1]
{%
\ifnumcomp{\value{LWR@startingequation}}{=}{\value{equation}}%
{(\LWR@equationtag)}%
- {(\LWR@startingequationtag--\LWR@equationtag)} % extra space
+ {(\LWR@startingequationtag\textendash\LWR@equationtag)} % extra space
\LWR@amsmathbody{#1} % extra space
}
% \end{macrocode}
@@ -37605,6 +37803,14 @@ end -- not --version
\LWR@PreloadedPackage{fontaxes}
% \end{macrocode}
+% \pkg{newpxmath}, etc. may be loaded before \pkg{lwarp}:
+% \begin{macrocode}
+\LWR@PreloadedPackage{newpxmath}
+\LWR@PreloadedPackage{newtxmath}
+\LWR@PreloadedPackage{newtxsf}
+\LWR@PreloadedPackage{mathalpha}
+% \end{macrocode}
+
% \pkg{nfssext-cfr} may be preloaded by \pkg{cfm-lm} or related font packages.
% \begin{macrocode}
\LWR@PreloadedPackage{nfssext-cfr}
@@ -37675,7 +37881,7 @@ end -- not --version
\newrobustcmd{\LWR@siunitx@textdegree}{\HTMLentity{deg}}
\newrobustcmd{\LWR@siunitx@textprime}{\HTMLunicode{2032}}
\newrobustcmd{\LWR@siunitx@textdblprime}{\HTMLunicode{2033}}
-\newrobustcmd{\LWR@siunitx@textplanckbar}{\text{\textit{\HTMLunicode{0127}}}}
+\newrobustcmd{\LWR@siunitx@textplanckbar}{\text{\textit{\HTMLunicode{210F}}}}
\appto\LWR@restoreorigformatting{%
\renewrobustcmd{\LWR@siunitx@textcelsius}{\text{\ensuremath{^\circ}C}}%
@@ -40477,7 +40683,7 @@ color:\LWR@origpound\LWR@tempcolor%
%
-% \section{\cs{AtBeginDocument}, \cs{AtEndDocument}}
+% \section{Starting and stopping \pkg{lwarp}}
% \codehtml
% \begin{macrocode}
@@ -40501,6 +40707,27 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
+% \section{Loading \pkg{everyshi} patches}
+%
+% \pkg{everyshi} is emulated by the \LaTeX\ core, so its patches are loaded
+% here.
+% \cs{AtBeginDocument} is used in case an older verison of \LaTeX\ is
+% used.
+%
+% \changes{v0.89}{2020/07/28}{\pkg{everyshi}: Included in \LaTeX\ core.}
+%
+% \codehtml
+% \begin{macrocode}
+\begin{warpHTML}
+\AtBeginDocument{
+ \@ifpackageloaded{everyshi}{
+ \RequirePackage{lwarp-everyshi}
+ }{}
+}
+\end{warpHTML}
+% \end{macrocode}
+
+
% \section{Loading \pkg{textcomp} patches}
%
% \pkg{textcomp} has now been integrated into the \LaTeX\ core,
@@ -40515,6 +40742,37 @@ color:\LWR@origpound\LWR@tempcolor%
\end{warpHTML}
% \end{macrocode}
+
+
+% \section{Loading \pkg{amsmath}, \pkg{amsthm} patches, \pkg{centernot}}
+%
+% \pkg{amsmath}, \pkg{amsthm}, and \pkg{centernot} may have been preloaded,
+% such as by \pkg{newtx}, so their patches are loaded now.
+%
+% \codehtml
+%
+% \changes{v0.89}{2020/08/12}{Allow preload of \pkg{amsmath}, \pkg{amsthm}, \pkg{centernot}.}
+% \begin{macrocode}
+\begin{warpHTML}
+\@ifpackageloaded{amsthm}{
+ \RequirePackage{lwarp-amsthm}
+}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifpackageloaded{amsmath}{
+ \RequirePackage{lwarp-amsmath}
+}{}
+
+% \pkg{amsthm} may load \pkg{centernot}, so \pkg{centernot} must be checked second.
+% \begin{macrocode}
+\@ifpackageloaded{centernot}{
+ \RequirePackage{lwarp-centernot}
+}{}
+\end{warpHTML}
+% \end{macrocode}
+
+
% \section{Loading \brand{Koma-script} class patches}
%
% Load patches to \pkg{koma-script}.
@@ -41272,6 +41530,99 @@ color:\LWR@origpound\LWR@tempcolor%
%
%
%
+%
+%
+% \iffalse
+%<*accents>
+% \fi
+%
+% \part{lwarp-accents.sty}
+%
+% \section{accents}
+%
+% \credits{Javier Bezos}
+%
+% \DescribePackage{accents}
+% \pkg{accents} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% \changes{v0.89}{2020/07/21}{\pkg{accents}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{accents}[2006/05/12]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{accents}
+
+\CustomizeMathJax{\newcommand{\ring}[1]{\mathring{#1}}}
+\CustomizeMathJax{\newcommand{\accentset}[2]{\overset{#1{}}{#2}}}
+% \end{macrocode}
+%
+% As of this writing, \brand{MathJax} v3 does not yet support
+% groups for macros, so for \cs{underaccent}, the originals are remembered here,
+% then they are temporarily redefined and used inside \cs{underaccent},
+% then restored to their originals.
+% \cs{LARGE} gives a reasonable size, and \cs{raise} is used to
+% adjust vertically without introducing extra line space.
+% \begin{macrocode}
+\CustomizeMathJax{\let\LWRgrave\grave}
+\CustomizeMathJax{\let\LWRacute\acute}
+\CustomizeMathJax{\let\LWRcheck\check}
+\CustomizeMathJax{\let\LWRbreve\breve}
+\CustomizeMathJax{\let\LWRbar\bar}
+\CustomizeMathJax{\let\LWRhat\hat}
+\CustomizeMathJax{\let\LWRdot\dot}
+\CustomizeMathJax{\let\LWRtilde\tilde}
+\CustomizeMathJax{\let\LWRddot\ddot}
+\CustomizeMathJax{\let\LWRvec\vec}
+\CustomizeMathJax{\let\LWRwidetilde\widetilde}
+
+\CustomizeMathJax{\newcommand{\underaccent}[2]{%
+ {%
+ \renewcommand{\grave}[1]{{\LARGE\LWRgrave{##1}}}%
+ \renewcommand{\acute}[1]{{\LARGE\LWRacute{##1}}}%
+ \renewcommand{\check}[1]{{\LARGE\LWRcheck{##1}}}%
+ \renewcommand{\breve}[1]{{\LARGE\LWRbreve{##1}}}%
+ \renewcommand{\bar}[1]{{\LARGE\LWRbar{##1}}}%
+ \renewcommand{\hat}[1]{{\LARGE\LWRhat{##1}}}%
+ \renewcommand{\dot}[1]{{\LARGE\LWRdot{##1}}}%
+ \renewcommand{\tilde}[1]{{\LARGE\LWRtilde{##1}}}%
+ \renewcommand{\ddot}[1]{{\LARGE\LWRddot{##1}}}%
+ \renewcommand{\vec}[1]{{\LARGE\LWRvec{##1}}}%
+ \renewcommand{\widetilde}[1]{{\LARGE\LWRwidetilde{\hphantom{#2}}}}%
+ \underset{\raise 2pt {#1{}}}{#2}%
+ \let\grave\LWRgrave%
+ \let\acute\LWRacute%
+ \let\check\LWRcheck%
+ \let\breve\LWRbreve%
+ \let\bar\LWRbar%
+ \let\hat\LWRhat%
+ \let\dot\LWRdot%
+ \let\tilde\LWRtilde%
+ \let\ddot\LWRddot%
+ \let\vec\LWRvec%
+ \let\widetilde\LWRwidetilde%
+ }%
+}}
+
+\CustomizeMathJax{\newcommand{\undertilde}[1]{%
+ \underset{\raise 3pt {\widetilde{\hphantom{#1}}}}{#1}%
+}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</accents>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*accessibility>
% \fi
@@ -42193,6 +42544,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
% Embeds the environment inside a \env{lateximage}.
%
% \changes{v0.80}{2020/02/13}{AMS environments: Fix: Centering starred envs.}
+% \changes{v0.89}{2020/08/02}{AMS environments: Fix: \element{ALT} text env name.}
% \begin{macrocode}
\NewDocumentCommand{\LWR@amsmathenv@@before}{s m}{%
\IfBooleanTF{#1}{
@@ -42202,7 +42554,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
}
\LWR@newautoidanchor%
\booltrue{LWR@indisplaymathimage}%
- \begin{lateximage}[\LWR@amsmathbodynumbered{#1}]*
+ \begin{lateximage}[\LWR@amsmathbodynumbered{#2}]*%
\LWR@applyxfakebold%
}
% \end{macrocode}
@@ -43218,7 +43570,19 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
\LWR@ProvidesPackageDrop{atbegshi}[2011/10/05]
% \end{macrocode}
%
+% \changes{v0.89}{2020/07/28}{\pkg{atbegshi}: Adapt to \LaTeX kernel changes.}
% \begin{macrocode}
+\let\AtBeginShipout\relax
+\let\AtBeginShipoutNext\relax
+\let\AtBeginShipoutFirst\relax
+\let\AtBeginShipoutDiscard\relax
+\let\AtBeginShipoutInit\relax
+\let\AtBeginShipoutAddToBox\relax
+\let\AtBeginShipoutAddToBoxForeground\relax
+\let\AtBeginShipoutUpperLeft\relax
+\let\AtBeginShipoutUpperLeftForeground\relax
+\let\AtBeginShipoutOriginalShipout\relax
+
\newcommand*{\AtBeginShipout}[1]{}
\newbox\AtBeginShipoutBox
\newcommand*{\AtBeginShipoutNext}[1]{}
@@ -43233,7 +43597,6 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
\def\AtBeginShipoutBoxWidth{0pt}
\def\AtBeginShipoutBoxHeight{0pt}
\def\AtBeginShipoutBoxDepth{0pt}
-
% \end{macrocode}
%
% \iffalse
@@ -45475,6 +45838,7 @@ s%
% \changes{v0.78}{2019/10/30}{\pkg{caption}: Added warning regarding passing options.}
% \changes{v0.84}{2020/04/16}{\pkg{caption}: Simplified.}
% \changes{v0.84}{2020/04/20}{\pkg{caption}: Non-width \cs{parbox}es.}
+% \changes{v0.89}{2020/08/25}{\pkg{caption}: Adapt to v3.5.}
%
% \codehtml
%
@@ -45487,9 +45851,10 @@ s%
\typeout{instead of: \protect\usepackage[options]\protect{caption\protect}.}
\typeout{---}
-\LWR@ProvidesPackagePass{caption}[2020/01/03]
+\LWR@ProvidesPackagePass{caption}[2020/08/24]
% \end{macrocode}
-
+%
+% ^^A This could be given a permanent standardized name, then redefined by lwarp.
% \begin{macrocode}
\long\def\caption@iibox@#1#2#3#4{%
% \setbox\@tempboxa\hbox{#4}%
@@ -45508,7 +45873,12 @@ s%
#1*% set \caption@position
\caption@iftop{%
\endgroup
- \minipagefullwidth%
+% \end{macrocode}
+%
+% ^^A This parbox could be factored out, given a permanent name,
+% ^^A then redefined by lwarp.
+% \begin{macrocode}
+ \minipagefullwidth% lwarp
\parbox[t]{\linewidth}{%
#1\relax
\caption@setposition t%
@@ -45520,9 +45890,14 @@ s%
}%
}{%
\endgroup
+% \end{macrocode}
+%
+% ^^A This parbox could be factored out, given a permanent name,
+% ^^A then redefined by lwarp.
+% \begin{macrocode}
% \parbox[b]{#6}{%
- \minipagefullwidth%
- \parbox[b]{\linewidth}{%
+ \minipagefullwidth% lwarp
+ \parbox[b]{\linewidth}{% lwarp
#1\relax
\caption@setposition b%
% \csname caption@hj@#7\endcsname
@@ -45535,10 +45910,187 @@ s%
}
% \end{macrocode}
+% \begin{noindmacro}{\caption@makecaption}
+% \changes{v0.71}{2019/04/08}{\pkg{caption}: Reduced underfull \cs{hbox} warnings.}
+% ^^A Lwarp could nullify \caption@make@above/bottom.
+% \begin{macrocode}
+\long\def\caption@makecaption#1#2{%
+% \caption@make@above
+ \caption@@make{#1}{#2}%
+% \caption@make@below
+}
+
+\AtBeginDocument{
+ \let\@makecaption\caption@makecaption
+}
+% \end{macrocode}
+% \end{noindmacro}
+
+
+% Redefined to look ahead for \cs{centering}, etc:
+% \changes{v0.84}{2020/04/20}{\pkg{caption}: Improved integration.}
+% ^^A Lwarp has to redefine to use \LWR@futurenonspacelet correctly.
+% \begin{macrocode}
+\AtBeginDocument{
+ \def\@xfloat#1[#2]{%
+ \caption@ORI@xfloat{#1}[#2]%
+ \caption@settype{#1}%
+ \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment%
+ }%
+ \def\@xdblfloat#1[#2]{% required for token capture
+ \caption@ORI@xfloat{#1}[#2]%
+ \caption@settype{#1}%
+ \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment%
+ }%
+}
+% \end{macrocode}
+
+
+% Updates for late patches for \pkg{scrextend}:
+% \changes{v0.88}{2020/07/15}{\pkg{caption}, \pkg{scrextend}: Fixed \cs{caption*}.}
+% \begin{macrocode}
+\caption@AtBeginDocument{
+\@ifpackageloaded{lwarp-scrextend}{
+ \LetLtxMacro\captionbelow\caption
+ \LetLtxMacro\captionabove\caption
+ \LetLtxMacro\captionofbelow\captionof
+ \LetLtxMacro\captionofabove\captionof
+}{}
+}
+% \end{macrocode}
+%
+% \iffalse
+%</caption>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
+%<*caption3>
+% \fi
+%
+% \part{lwarp-caption3.sty}
+% \section{caption3}
+%
+% \credits{Axel Sommerfeldt}
+%
+% \DescribePackage{caption3}
+% \pkg{caption3} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.89}{2020/08/25}{\pkg{caption3}: Split from \pkg{lwarp-caption}.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{caption3}[2020/08/23]
+% \end{macrocode}
+%
+%
% \begin{noindmacro}{\caption@@@make}
% \marg{caption label} \marg{caption text}
% \begin{macrocode}
+\@ifpackagelater{caption3}{2020/08/23}{
+\renewcommand\caption@@@make[2]{%
+\LWR@traceinfo{caption@@@make}%
+% \end{macrocode}
+%
+% ^^A Lwarp has to stop and start its paragraph handling,
+% ^^A so I guess caption package could provide null macros for
+% ^^A \LWR@stoppars and \LWR@startpars if lwarp has not already defined them.
+% \begin{macrocode}
+ \LWR@stoppars% lwarp
+% \end{macrocode}
+%
+% ^^A This could be factored out into a macro with a standard name
+% ^^A which lwarp could nullify:
+% \begin{macrocode}
+% \sbox\@tempboxa{#1}%
+% \ifdim\wd\@tempboxa=\z@
+% \caption@set{labelseparator}{none}%
+% \fi
+ \caption@ifempty{#2}{%
+ \caption@set{labelseparator}{none}%
+ \caption@set{textformat}{simple}%
+ }%
+ \caption@labelseparator % defines \caption@iflabelfont,
+% \caption@labelsep and \caption@labelsep@name
+% (the latter is needed by \caption@fmt)
+%
+% \end{macrocode}
+%
+% ^^A This could be factored out into a macro with a standard name
+% ^^A which lwarp could nullify:
+% \begin{macrocode}
+% \@setpar{\@@par\caption@@par}\caption@@par
+ \caption@applyfont
+% \end{macrocode}
+%
+% \cs{caption@fmt} with \optn{plain} format is defined as |{#1#2#3\par}|:
+%
+% \begin{macrocode}
+% \caption@fmt
+ {\ifcaption@star\else
+ \begingroup
+ \captionlabelfont
+% \end{macrocode}
+%
+% ^^A \LWR@isolate could also be provided by caption if lwarp has
+% ^^A not already defined it. For caption, it might be \@firstofone, for example.
+% ^^A (For lwarp it improved Chinese text handling.)
+% \begin{macrocode}
+ \LWR@isolate{#1}% lwarp
+ \endgroup
+ \fi}%
+ {\ifcaption@star\else
+ \begingroup
+ \caption@iflabelfont\captionlabelfont
+ \relax\caption@labelsep
+ \endgroup
+ \fi}%
+ {{\captiontextfont
+% \end{macrocode}
+%
+% ^^A Another null macro in caption, which could be provided if
+% ^^A lwarp has not yet defined it:
+% \begin{macrocode}
+ \let\\\newline% lwarp
+%
+ \caption@textstart
+% \end{macrocode}
+%
+% ^^A This could be factored out into a macro with a standard name
+% ^^A which lwarp could nullify:
+% \begin{macrocode}
+% \caption@ifstrut
+% {\vrule\@height\ht\strutbox\@width\z@}%
+% {}%
+% \nobreak\hskip\z@skip % enable hyphenation
+% \end{macrocode}
+%
+% ^^A \LWR@isolate again:
+% \begin{macrocode}
+ \LWR@isolate{\caption@textformat{#2}}% lwarp
+% \end{macrocode}
+%
+% ^^A This could be factored out into a macro with a standard name
+% ^^A which lwarp could nullify:
+% \begin{macrocode}
+% \caption@ifstrut
+% {\ifhmode\@finalstrut\strutbox\fi}%
+% {}%
+ \caption@textend}}%
+% \end{macrocode}
+%
+% ^^A as \LWR@startpars above:
+% \begin{macrocode}
+ \LWR@startpars% lwarp
+\LWR@traceinfo{caption@@@make done}%
+}
+}% later than 2020/08/23
+{% earlier than 2020/08/23
\renewcommand\caption@@@make[2]{%
\LWR@traceinfo{caption@@@make}%
\LWR@stoppars% lwarp
@@ -45550,6 +46102,7 @@ s%
\let\caption@lsep\@empty
\let\caption@tfmt\@firstofone
}%
+% \@setpar{\@@par\caption@@par}\caption@@par
\caption@applyfont
% \end{macrocode}
% \cs{caption@fmt} with \optn{plain} format is defined as |{#1#2#3\par}|:
@@ -45583,10 +46136,15 @@ s%
\LWR@startpars% lwarp
\LWR@traceinfo{caption@@@make done}%
}
+}% earlier than 2020/08/23
% \end{macrocode}
% \end{noindmacro}
-
+%
+%
% \begin{noindmacro}{\caption@@make@} \marg{} \marg{}
+% ^^A This could be given a standardized name,
+% ^^A and redefined by lwarp as follows. Most of the original
+% ^^A is thrown away.
% \begin{macrocode}
\renewcommand{\caption@@make@}[2]{%
\caption@stepthecounter%
@@ -45596,93 +46154,42 @@ s%
}
% \end{macrocode}
% \end{noindmacro}
-
-% \begin{noindmacro}{\caption@makecaption}
-% \changes{v0.71}{2019/04/08}{\pkg{caption}: Reduced underfull \cs{hbox} warnings.}
-% \begin{macrocode}
-\long\def\caption@makecaption#1#2{%
-% \caption@iftop
-% {\vskip\belowcaptionskip}%
-% {\caption@rule\vskip\abovecaptionskip}%
- \caption@@make{#1}{#2}%
-% \caption@iftop
-% {\vskip\abovecaptionskip\caption@rule}%
-% {\vskip\belowcaptionskip}%
-}
-
-\AtBeginDocument{
- \let\@makecaption\caption@makecaption
-}
-% \end{macrocode}
-% \end{noindmacro}
-
-
-% Redefined to look ahead for \cs{centering}, etc:
-% \changes{v0.84}{2020/04/20}{\pkg{caption}: Improved integration.}
-% \begin{macrocode}
-\AtBeginDocument{
- \def\@xfloat#1[#2]{%
- \caption@ORI@xfloat{#1}[#2]%
- \caption@settype{#1}%
- \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment%
- }%
- \def\@xdblfloat#1[#2]{%
- \caption@ORI@xfloat{#1}[#2]%
- \caption@settype{#1}%
- \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment%
- }%
-}
-% \end{macrocode}
-
-
+%
+%
% Add non-breakable spaces:
+% \changes{v0.89}{2020/08/25}{\pkg{caption3}: Improved label seps.}
+% ^^A Debatable "improvements":
% \begin{macrocode}
-\long\def\caption@lsep@default{.~}
-\long\def\caption@lsep@colon{:~}
-\long\def\caption@lsep@period{.~}
-\long\def\caption@lsep@space{~}
-\long\def\caption@lsep@endash{~\textendash~}
-\long\def\caption@lsep@arabi{~:~}
+\DeclareCaptionLabelSeparator{colon}{:~}
+\DeclareCaptionLabelSeparator{period}{.~}
+\DeclareCaptionLabelSeparator{space}{~}
+\DeclareCaptionLabelSeparator*{endash}{~\textendash~}
+\DeclareCaptionLabelSeparator{arabi}{\if@rl~\fi:~}
% \end{macrocode}
-
+%
+% ^^A These are simplifications for HTML:
% \begin{macrocode}
\DeclareCaptionBox{none}{#2}
\DeclareCaptionBox{parbox}{%
#2%
}
-
-\DeclareCaptionBox{colorbox}{%
- #2%
-}
% \end{macrocode}
-
-
-% Updates for late patches for \pkg{scrextend}:
-% \changes{v0.88}{2020/07/15}{\pkg{caption}, \pkg{scrextend}: Fixed \cs{caption*}.}
+%
+% ^^A Simplification for HTML:
% \begin{macrocode}
-\caption@AtBeginDocument{
-\@ifpackageloaded{lwarp-scrextend}{
- \LetLtxMacro\captionbelow\caption
- \LetLtxMacro\captionabove\caption
- \LetLtxMacro\captionofbelow\captionof
- \LetLtxMacro\captionofabove\captionof
-}{}
+\DeclareCaptionBox{colorbox}{%
+ #2%
}
% \end{macrocode}
-
-
-
+%
% \iffalse
-%</caption>
+%</caption3>
% \fi
%
%
%
%
%
-%
-%
-%
% \iffalse
%<*cases>
% \fi
@@ -45752,6 +46259,7 @@ s%
% and emulated for \brand{MathJax}.
%
% \changes{v0.80}{2020/02/08}{\pkg{centernot}: Added.}
+% \changes{v0.89}{2020/08/17}{\pkg{centernot}: Improved.}
%
% \codehtml
%
@@ -45759,9 +46267,17 @@ s%
\LWR@ProvidesPackagePass{centernot}[2016/05/16]
% \end{macrocode}
%
+% Based on \href{https://github.com/mathjax/MathJax/issues/2107}
+% {\texttt{https://github.com/mathjax/MathJax/issues/2107}}
+% with \cs{textstyle} removed to work with sub \Slash super scripts.
+%
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
+
\begin{warpMathJax}
-\CustomizeMathJax{\newcommand{\centernot}[1]{\not{\!#1\,}}}
+\CustomizeMathJax{\newcommand{\centernot}[1]{%
+ \LWRoverlaysymbols{\unicode{x2215}}{#1}
+}}
\end{warpMathJax}
% \end{macrocode}
%
@@ -49618,10 +50134,13 @@ name = \chemmacros_translate:n {scheme-name}
% is emulated for \brand{MathJax}.
%
% \changes{v0.81}{2020/03/01}{\pkg{econometrics}: Added.}
+% \changes{v0.89}{2020/09/02}{\pkg{econometrics}: Uses \pkg{lwarp-common-mathjax-letters}.}
%
% \codehtml
%
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\LWR@ProvidesPackagePass{econometrics}% no date specified in the original
% \end{macrocode}
%
@@ -49662,95 +50181,11 @@ name = \chemmacros_translate:n {scheme-name}
\CustomizeMathJax{\newcommand{\calY}{\mathcal{Y}}}
\CustomizeMathJax{\newcommand{\calZ}{\mathcal{Z}}}
-\CustomizeMathJax{\newcommand{\mA}{\bm A}}
-\CustomizeMathJax{\newcommand{\va}{\bm a}}
-\CustomizeMathJax{\newcommand{\mB}{\bm B}}
-\CustomizeMathJax{\newcommand{\vb}{\bm b}}
-\CustomizeMathJax{\newcommand{\mC}{\bm C}}
-\CustomizeMathJax{\newcommand{\vc}{\bm c}}
-\CustomizeMathJax{\newcommand{\mD}{\bm D}}
-\CustomizeMathJax{\newcommand{\vd}{\bm d}}
-\CustomizeMathJax{\newcommand{\mE}{\bm E}}
-\CustomizeMathJax{\newcommand{\ve}{\bm e}}
-\CustomizeMathJax{\newcommand{\mF}{\bm F}}
-\CustomizeMathJax{\newcommand{\vf}{\bm f}}
-\CustomizeMathJax{\newcommand{\mG}{\bm G}}
-\CustomizeMathJax{\newcommand{\vg}{\bm g}}
-\CustomizeMathJax{\newcommand{\mH}{\bm H}}
-\CustomizeMathJax{\newcommand{\vh}{\bm h}}
-\CustomizeMathJax{\newcommand{\mI}{\bm I}}
-\CustomizeMathJax{\newcommand{\vi}{\bm i}}
-\CustomizeMathJax{\newcommand{\mJ}{\bm J}}
-\CustomizeMathJax{\newcommand{\vj}{\bm j}}
-\CustomizeMathJax{\newcommand{\mK}{\bm K}}
-\CustomizeMathJax{\newcommand{\vk}{\bm k}}
-\CustomizeMathJax{\newcommand{\mL}{\bm L}}
-\CustomizeMathJax{\newcommand{\vl}{\bm l}}
-\CustomizeMathJax{\newcommand{\mM}{\bm M}}
-\CustomizeMathJax{\newcommand{\vm}{\bm m}}
-\CustomizeMathJax{\newcommand{\mN}{\bm N}}
-\CustomizeMathJax{\newcommand{\vn}{\bm n}}
-\CustomizeMathJax{\newcommand{\mO}{\bm O}}
-\CustomizeMathJax{\newcommand{\vo}{\bm o}}
-\CustomizeMathJax{\newcommand{\mP}{\bm P}}
-\CustomizeMathJax{\newcommand{\vp}{\bm p}}
-\CustomizeMathJax{\newcommand{\mQ}{\bm Q}}
-\CustomizeMathJax{\newcommand{\vq}{\bm q}}
-\CustomizeMathJax{\newcommand{\mR}{\bm R}}
-\CustomizeMathJax{\newcommand{\vr}{\bm r}}
-\CustomizeMathJax{\newcommand{\mS}{\bm S}}
-\CustomizeMathJax{\newcommand{\vs}{\bm s}}
-\CustomizeMathJax{\newcommand{\mT}{\bm T}}
-\CustomizeMathJax{\newcommand{\vt}{\bm t}}
-\CustomizeMathJax{\newcommand{\mU}{\bm U}}
-\CustomizeMathJax{\newcommand{\vu}{\bm u}}
-\CustomizeMathJax{\newcommand{\mV}{\bm V}}
-\CustomizeMathJax{\newcommand{\vv}{\bm v}}
-\CustomizeMathJax{\newcommand{\mW}{\bm W}}
-\CustomizeMathJax{\newcommand{\vw}{\bm w}}
-\CustomizeMathJax{\newcommand{\mX}{\bm X}}
-\CustomizeMathJax{\newcommand{\vx}{\bm x}}
-\CustomizeMathJax{\newcommand{\mY}{\bm Y}}
-\CustomizeMathJax{\newcommand{\vy}{\bm y}}
-\CustomizeMathJax{\newcommand{\mZ}{\bm Z}}
-\CustomizeMathJax{\newcommand{\vz}{\bm z}}
-
-\CustomizeMathJax{\newcommand{\valpha}{\bm \alpha}}
-\CustomizeMathJax{\newcommand{\vbeta}{\bm \beta}}
-\CustomizeMathJax{\newcommand{\vgamma}{\bm \gamma}}
-\CustomizeMathJax{\newcommand{\vdelta}{\bm \delta}}
-\CustomizeMathJax{\newcommand{\vepsi}{\bm \epsi}}
-\CustomizeMathJax{\newcommand{\vvarepsilon}{\bm \varepsilon}}
-\CustomizeMathJax{\newcommand{\vzeta}{\bm \zeta}}
-\CustomizeMathJax{\newcommand{\veta}{\bm \eta}}
-\CustomizeMathJax{\newcommand{\vtheta}{\bm \theta}}
-\CustomizeMathJax{\newcommand{\viota}{\bm \iota}}
-\CustomizeMathJax{\newcommand{\vkappa}{\bm \kappa}}
-\CustomizeMathJax{\newcommand{\vlambda}{\bm \lambda}}
-\CustomizeMathJax{\newcommand{\vmu}{\bm \mu}}
-\CustomizeMathJax{\newcommand{\vnu}{\bm \nu}}
-\CustomizeMathJax{\newcommand{\vxi}{\bm \xi}}
-\CustomizeMathJax{\newcommand{\vpi}{\bm \pi}}
-\CustomizeMathJax{\newcommand{\vrho}{\bm \rho}}
-\CustomizeMathJax{\newcommand{\vsigma}{\bm \sigma}}
-\CustomizeMathJax{\newcommand{\vtau}{\bm \tau}}
-\CustomizeMathJax{\newcommand{\vupsilon}{\bm \upsilon}}
-\CustomizeMathJax{\newcommand{\vphi}{\bm \phi}}
-\CustomizeMathJax{\newcommand{\vchi}{\bm \chi}}
-\CustomizeMathJax{\newcommand{\vpsi}{\bm \psi}}
-\CustomizeMathJax{\newcommand{\vomega}{\bm \omega}}
-
-\CustomizeMathJax{\newcommand{\mGamma}{\bm \varGamma}}
-\CustomizeMathJax{\newcommand{\mDelta}{\bm \varDelta}}
-\CustomizeMathJax{\newcommand{\mTheta}{\bm \varTheta}}
-\CustomizeMathJax{\newcommand{\mLambda}{\bm \varLambda}}
-\CustomizeMathJax{\newcommand{\mXi}{\bm \varXi}}
-\CustomizeMathJax{\newcommand{\mPi}{\bm \varPi}}
-\CustomizeMathJax{\newcommand{\mSigma}{\bm \varSigma}}
-\CustomizeMathJax{\newcommand{\mUpsilon}{\bm \varUpsilon}}
-\CustomizeMathJax{\newcommand{\mPhi}{\bm \varPhi}}
-\CustomizeMathJax{\newcommand{\mPsi}{\bm \varPsi}}
-\CustomizeMathJax{\newcommand{\mOmega}{\bm \varOmega}}
+\LWR@mathjax@addlatin@u@bfit{m}% uppercase Latin, bold italic
+\LWR@mathjax@addlatin@l@bfit{v}% lowercase Latin, bold italic
+
+\LWR@mathjax@addgreek@l@bfit{v}{}% lowercase Greek bold italic
+\LWR@mathjax@addgreek@u@bfit*{m}{}% uppercase Greek bold italic, capitalized macro names
\CustomizeMathJax{\newcommand{\rb}{\mathrm{b}}}
\CustomizeMathJax{\newcommand{\rB}{\mathrm{B}}}
@@ -51297,12 +51732,16 @@ name = \chemmacros_translate:n {scheme-name}
% \codehtml
%
% Discard all options for \pkg{lwarp-everyshi}:
+% \changes{v0.89}{2020/07/28}{\pkg{everyshi}: Adapt to \LaTeX kernel changes.}
% \begin{macrocode}
\LWR@ProvidesPackageDrop{everyshi}[2001/05/15]
% \end{macrocode}
%
% \begin{macrocode}
+\let\EveryShipout\relax
\newcommand*{\EveryShipout}[1]{}
+
+\let\AtNextShipout\relax
\newcommand*{\AtNextShipout}[1]{}
% \end{macrocode}
%
@@ -56195,6 +56634,99 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
%
%
% \iffalse
+%<*hepunits>
+% \fi
+%
+% \part{lwarp-hepunits.sty}
+%
+% \section{hepunits}
+%
+% \credits{Andy Buckley}
+%
+% \DescribePackage{hepunits}
+% \pkg{hepunits} is used as-is, and emulated for \brand{MathJax}.
+%
+% \changes{v0.89}{2020/07/23}{\pkg{hepunits}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{hepunits}[2020/04/10]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{hepunits}
+
+\ifx\@HEPopt@sicmds\@yes
+\CustomizeMathJax{\newcommand{\micron}{\micro\metre}}
+\CustomizeMathJax{\newcommand{\mrad}{\milli\radian}}
+\fi
+
+\CustomizeMathJax{\newcommand{\gauss}{\mathrm{G}}}
+
+\CustomizeMathJax{\newcommand{\invcmsq}{\centi\metre\tothe{-2}}}
+\CustomizeMathJax{\newcommand{\invcmsqpersecond}{\invcmsq\second\tothe{-1}}}
+\CustomizeMathJax{\newcommand{\invcmsqpersec}{\invcmsqpersecond}}
+
+%% (Inverse) cross-sections
+\CustomizeMathJax{\newcommand{\invbarn}{\barn\tothe{-1}}}
+
+\ifx\@HEPopt@noprefixcmds\@empty
+\CustomizeMathJax{\newcommand{\millibarn}{\milli\barn}}
+\CustomizeMathJax{\newcommand{\microbarn}{\micro\barn}}
+\CustomizeMathJax{\newcommand{\nanobarn}{\nano\barn}}
+\CustomizeMathJax{\newcommand{\picobarn}{\pico\barn}}
+\CustomizeMathJax{\newcommand{\femtobarn}{\femto\barn}}
+\CustomizeMathJax{\newcommand{\attobarn}{\atto\barn}}
+\CustomizeMathJax{\newcommand{\zeptobarn}{\zepto\barn}}
+\CustomizeMathJax{\newcommand{\yoctobarn}{\yocto\barn}}
+\CustomizeMathJax{\newcommand{\invnanobarn}{\nano\invbarn}}
+\CustomizeMathJax{\newcommand{\invpicobarn}{\pico\invbarn}}
+\CustomizeMathJax{\newcommand{\invfemtobarn}{\femto\invbarn}}
+\CustomizeMathJax{\newcommand{\invattobarn}{\atto\invbarn}}
+\CustomizeMathJax{\newcommand{\invzeptobarn}{\zepto\invbarn}}
+\CustomizeMathJax{\newcommand{\invyoctobarn}{\yocto\invbarn}}
+\CustomizeMathJax{\newcommand{\invnb}{\invnanobarn}}
+\CustomizeMathJax{\newcommand{\invpb}{\invpicobarn}}
+\CustomizeMathJax{\newcommand{\invfb}{\invfemtobarn}}
+\CustomizeMathJax{\newcommand{\invab}{\invattobarn}}
+\CustomizeMathJax{\newcommand{\invzb}{\invzeptobarn}}
+\CustomizeMathJax{\newcommand{\invyb}{\invyoctobarn}}
+\fi
+
+\CustomizeMathJax{\newcommand{\electronvoltc}{\electronvolt\per\mathit{c}}}
+\CustomizeMathJax{\newcommand{\electronvoltcsq}{\electronvolt\per\mathit{c}\squared}}
+\CustomizeMathJax{\let\eVc\electronvoltc}
+\CustomizeMathJax{\let\eVcsq\electronvoltcsq}
+
+\ifx\@HEPopt@noprefixcmds\@empty
+\CustomizeMathJax{\newcommand{\meV}{\milli\eV}}
+\CustomizeMathJax{\newcommand{\keV}{\kilo\eV}}
+\CustomizeMathJax{\newcommand{\MeV}{\mega\eV}}
+\CustomizeMathJax{\newcommand{\GeV}{\giga\eV}}
+\CustomizeMathJax{\newcommand{\TeV}{\tera\eV}}
+\CustomizeMathJax{\newcommand{\meVc}{\milli\eVc}}
+\CustomizeMathJax{\newcommand{\keVc}{\kilo\eVc}}
+\CustomizeMathJax{\newcommand{\MeVc}{\mega\eVc}}
+\CustomizeMathJax{\newcommand{\GeVc}{\giga\eVc}}
+\CustomizeMathJax{\newcommand{\TeVc}{\tera\eVc}}
+\CustomizeMathJax{\newcommand{\meVcsq}{\milli\eVcsq}}
+\CustomizeMathJax{\newcommand{\keVcsq}{\kilo\eVcsq}}
+\CustomizeMathJax{\newcommand{\MeVcsq}{\mega\eVcsq}}
+\CustomizeMathJax{\newcommand{\GeVcsq}{\giga\eVcsq}}
+\CustomizeMathJax{\newcommand{\TeVcsq}{\tera\eVcsq}}
+\fi
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</hepunits>
+% \fi
+%
+%
+%
+% \iffalse
%<*hhline>
% \fi
%
@@ -56247,6 +56779,62 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
%
%
% \iffalse
+%<*hhtensor>
+% \fi
+%
+% \part{lwarp-hhtensor.sty}
+%
+% \section{hhtensor}
+%
+% \credits{Harald Harders}
+%
+% \DescribePackage{hhtensor}
+% \pkg{hhtensor} is used as-is, and emulated for \brand{MathJax}.
+%
+% \changes{v0.88}{2020/07/23}{\pkg{hhtensor}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{hhtensor}[2011/12/29]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\iftensor@bold
+ \CustomizeMathJax{\newcommand{\vec}[1]{\boldsymbol{#1}}}
+ \CustomizeMathJax{\newcommand{\matr}[1]{\boldsymbol{#1}}}
+ \CustomizeMathJax{\newcommand{\tens}[2]{\boldsymbol{#1}}}
+\else
+ \iftensor@uline
+ \CustomizeMathJax{\newcommand{\vec}[1]{\ushort{#1}}}
+ \CustomizeMathJax{\newcommand{\matr}[1]{\ushortd{#1}}}
+ \CustomizeMathJax{\newcommand{\tens}[2]{
+ \underset{
+ \raise{.5ex}{\underset{#2}{\sim}}
+ }{#1}
+ }}
+ \else
+ \CustomizeMathJax{\newcommand{\matr}[1]{\vec{\vec{#1}}}}
+ \CustomizeMathJax{\newcommand{\tens}[2]{
+ \underset{
+ \raise{.5ex}{\underset{#2}{\sim}}
+ }{#1}
+ }}
+ \fi
+\fi
+\CustomizeMathJax{\newcommand{\dcdot}{\mathrel{\cdot\mkern 0.0mu \cdot}}}
+\CustomizeMathJax{\newcommand{\trans}{{}^{\mathrm{T}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</hhtensor>
+% \fi
+%
+%
+%
+% \iffalse
%<*hypbmsec>
% \fi
%
@@ -59418,7 +60006,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% The print version does not seem to honor \env{longtable*} from the
% \trouble[table numbering]{ltxtable=\pkg{ltxtable}>numbering}
-% \trouble{table>numbering}
+% \trouble{table>numbering>ltextable=\pkg{ltxtable}}
% \pkg{caption} package, while \pkg{lwarp} does.
%
% \changes{v0.44}{2017/11/15}{\pkg{ltxtable}: Added.}
@@ -60410,6 +60998,46 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
% \iffalse
+%<*mathalpha>
+% \fi
+%
+% \part{lwarp-mathalpha.sty}
+%
+% \section{mathalpha}
+%
+% \credits{Michael Sharpe}
+%
+% \DescribePackage{mathalpha}
+% \pkg{mathalpha} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options,
+% \trouble[limitations]{mathalpha=\pkg{mathalpha}}
+% and some bold fonts may not be not supported by \brand{MathJax}.
+%
+% \changes{v0.89}{2020/08/31}{\pkg{mathalpha}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{mathalpha}[2019/10/05]
+
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\mathbbb}[1]{\boldsymbol{\mathbb{#1}}}}% not bold
+\CustomizeMathJax{\newcommand{\mathbcal}[1]{\boldsymbol{\mathcal{#1}}}}
+\CustomizeMathJax{\newcommand{\mathbfrak}[1]{\boldsymbol{\mathfrak{#1}}}}
+\CustomizeMathJax{\newcommand{\mathbscr}[1]{\boldsymbol{\mathscr{#1}}}}% not bold
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</mathalpha>
+% \fi
+%
+%
+%
+%
+% \iffalse
%<*mathcomp>
% \fi
%
@@ -60450,6 +61078,96 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
%
+%
+% \iffalse
+%<*mathdesign>
+% \fi
+%
+% \part{lwarp-mathdesign.sty}
+%
+% \section{mathdesign}
+%
+% \credits{Paul Pichaureau}
+%
+% \DescribePackage{mathdesign}
+% \pkg{mathdesign} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options.
+% \trouble[limitations]{mathdesign=\pkg{mathdesign}}
+% The explicit macros for upright and italic greek letters do work correctly,
+% although the user may wish to swap the definitions for
+% epsilon and phi.
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.89}{2020/08/08}{\pkg{mathdesign}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
+
+\LWR@ProvidesPackagePass{mathdesign}[2013/08/29]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{mathdesign}
+
+% upright
+\LWR@mathjax@addgreek@l@up{}{up}
+\LWR@mathjax@addgreek@u@up*{}{up}
+
+
+% italicized
+\LWR@mathjax@addgreek@l@it{}{it}
+\LWR@mathjax@addgreek@u@it*{}{it}
+
+% adapt to mathdesign inconsistency:
+\CustomizeMathJax{\let\digammaup\Digammaup}
+\CustomizeMathJax{\renewcommand{\digammait}{\mathit{\digammaup}}}
+
+% extra symbols
+\CustomizeMathJax{\newcommand{\smallin}{\unicode{x220A}}}
+\CustomizeMathJax{\newcommand{\smallowns}{\unicode{x220D}}}
+\CustomizeMathJax{\newcommand{\notsmallin}{\LWRoverlaysymbols{/}{\unicode{x220A}}}}
+\CustomizeMathJax{\newcommand{\notsmallowns}{\LWRoverlaysymbols{/}{\unicode{x220D}}}}
+\CustomizeMathJax{\newcommand{\rightangle}{\unicode{x221F}}}
+
+% integrals
+\CustomizeMathJax{\newcommand{\intclockwise}{\unicode{x2231}}}
+\CustomizeMathJax{\newcommand{\ointclockwise}{\unicode{x2232}}}
+\CustomizeMathJax{\newcommand{\ointctrclockwise}{\unicode{x2233}}}
+\CustomizeMathJax{\newcommand{\oiint}{\unicode{x222F}}}
+\CustomizeMathJax{\newcommand{\oiiint}{\unicode{x2230}}}
+
+% math and text mode
+\CustomizeMathJax{\newcommand{\ddag}{\unicode{x2021}}}
+\CustomizeMathJax{\newcommand{\P}{\unicode{x00B6}}}
+\CustomizeMathJax{\newcommand{\copyright}{\unicode{x00A9}}}
+\CustomizeMathJax{\newcommand{\dag}{\unicode{x2020}}}
+\CustomizeMathJax{\newcommand{\pounds}{\unicode{x00A3}}}
+
+% extra symbols
+\CustomizeMathJax{\newcommand{\iddots}{\unicode{x22F0}}}
+\CustomizeMathJax{\newcommand{\utimes}{\overline{\times}}}
+\CustomizeMathJax{\newcommand{\dtimes}{\underline{\times}}}
+\CustomizeMathJax{\newcommand{\udtimes}{\overline{\underline{\times}}}}
+\CustomizeMathJax{\newcommand{\leftwave}{\left\{}}
+\CustomizeMathJax{\newcommand{\rightwave}{\right\}}}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</mathdesign>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*mathdots>
% \fi
@@ -60528,6 +61246,96 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
% \iffalse
+%<*mathpazo>
+% \fi
+%
+% \part{lwarp-mathpazo.sty}
+%
+% \section{mathpazo}
+%
+% \credits{Walter Schmidt}
+%
+% \DescribePackage{mathpazo}
+% \pkg{mathpazo} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options.
+% \trouble[limitations]{mathpazo=\pkg{mathpazo}}
+% The explicit macros for upright greek letters do work correctly.
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.89}{2020/08/10}{\pkg{mathpazo}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\LWR@ProvidesPackagePass{mathpazo}[2020/03/25]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{mathpazo}
+
+\LWR@mathjax@addgreek@u@up*{up}{}
+
+\CustomizeMathJax{\newcommand{\mathbold}[1]{\boldsymbol{#1}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</mathpazo>
+% \fi
+%
+%
+%
+% \iffalse
+%<*mathptmx>
+% \fi
+%
+% \part{lwarp-mathptmx.sty}
+%
+% \section{mathptmx}
+%
+% \credits{Walter Schmidt}
+%
+% \DescribePackage{mathptmx}
+% \pkg{mathptmx} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options.
+% \trouble[limitations]{mathptmx=\pkg{mathptmx}}
+% The explicit macros for upright greek letters do work correctly.
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.89}{2020/08/10}{\pkg{mathptmx}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\LWR@ProvidesPackagePass{mathptmx}[2020/03/25]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{mathptmx}
+
+\LWR@mathjax@addgreek@u@up*{up}{}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</mathptmx>
+% \fi
+%
+%
+%
+% \iffalse
%<*mathtools>
% \fi
%
@@ -60610,7 +61418,16 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\CustomizeMathJax{\newcommand{\crampedclap}[2][]{{#1#2}}}
\CustomizeMathJax{\newenvironment{crampedsubarray}[1]{}{}}
\CustomizeMathJax{\newcommand{\crampedsubstack}{}}
-\CustomizeMathJax{\newcommand{\smashoperator}[2][]{#2}}
+% \end{macrocode}
+% \changes{v0.89}{2020/08/21}{\pkg{mathtools}: Minor improvements.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\smashoperator}[2][]{#2\limits}}
+% \end{macrocode}
+% \changes{v0.89}{2020/08/21}{\pkg{mathtools}: Added \cs{adjustlimits}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\adjustlimits}{}}
+% \end{macrocode}
+% \begin{macrocode}
\CustomizeMathJax{\newcommand{\SwapAboveDisplaySkip}{}}
\CustomizeMathJax{\require{extpfeil}}
@@ -60816,8 +61633,11 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\CustomizeMathJax{\newcommand\lparen{(}}
\CustomizeMathJax{\newcommand\rparen{)}}
-\CustomizeMathJax{\newcommand{\vcentcolon}{:}}
\CustomizeMathJax{\newcommand{\ordinarycolon}{:}}
+% \end{macrocode}
+% \changes{v0.89}{2020/08/21}{\pkg{mathtools}: Minor improvements.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\vcentcolon}{\mathrel{\mathop\ordinarycolon}}}
\CustomizeMathJax{\newcommand\dblcolon{\vcentcolon\vcentcolon}}
\CustomizeMathJax{\newcommand\coloneqq{\vcentcolon=}}
@@ -60835,9 +61655,12 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\CustomizeMathJax{\newcommand\colonsim{\vcentcolon\sim}}
\CustomizeMathJax{\newcommand\Colonsim{\dblcolon\sim}}
-\CustomizeMathJax{\newcommand{\nuparrow}{\cancel{\uparrow}}}
-\CustomizeMathJax{\newcommand{\ndownarrow}{\cancel{\downarrow}}}
-\CustomizeMathJax{\newcommand{\bigtimes}{{\Large\times}}}
+% \end{macrocode}
+% \changes{v0.89}{2020/08/21}{\pkg{mathtools}: Minor improvements.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\nuparrow}{\mathrel{\cancel{\uparrow}}}}
+\CustomizeMathJax{\newcommand{\ndownarrow}{\mathrel{\cancel{\downarrow}}}}
+\CustomizeMathJax{\newcommand{\bigtimes}{\mathop{\Large\times}\limits}}
\CustomizeMathJax{\newcommand{\prescript}[3]{{}^{#1}_{#2}#3}}
@@ -62199,6 +63022,7 @@ background:
% \cs{mathset} may be set with \cs{CustomizeMathJax} in the preamble.
%
% \changes{v0.80}{2020/02/14}{\pkg{mismath}: Added.}
+% \changes{v0.89}{2020/09/02}{\pkg{mismath}: Improved math operators.}
%
% \codehtml
%
@@ -62258,48 +63082,48 @@ background:
\CustomizeMathJax{\newcommand{\V}{\operatorname{\probastyle{V}}}}
\CustomizeMathJax{\newcommand{\Par}{\unicode{x00B6}}}
-\CustomizeMathJax{\newcommand{\adj}{\mathrm{adj}}}
-\CustomizeMathJax{\newcommand{\Aut}{\mathrm{Aut}}}
-\CustomizeMathJax{\newcommand{\Conv}{\mathrm{Conv}}}
-\CustomizeMathJax{\newcommand{\cov}{\mathrm{cov}}}
-\CustomizeMathJax{\newcommand{\Cov}{\mathrm{Cov}}}
-\CustomizeMathJax{\newcommand{curl}{\operatorname{\vect{\mathrm{curl}}}}}
-\CustomizeMathJax{\newcommand{\divg}{\mathrm{div}}}
-\CustomizeMathJax{\newcommand{\End}{\mathrm{End}}}
-
-\CustomizeMathJax{\newcommand{\erf}{\mathrm{erf}}}
-\CustomizeMathJax{\newcommand{grad}{\operatorname{\vect{\mathrm{grad}}}}}
-\CustomizeMathJax{\newcommand{\id}{\mathrm{id}}}
-\CustomizeMathJax{\newcommand{\Id}{\mathrm{Id}}}
-\CustomizeMathJax{\newcommand{\im}{\mathrm{im}}}
+\CustomizeMathJax{\DeclareMathOperator{\adj}{adj}}
+\CustomizeMathJax{\DeclareMathOperator{\Aut}{Aut}}
+\CustomizeMathJax{\DeclareMathOperator{\Conv}{Conv}}
+\CustomizeMathJax{\DeclareMathOperator{\cov}{cov}}
+\CustomizeMathJax{\DeclareMathOperator{\Cov}{Cov}}
+\CustomizeMathJax{\newcommand{\curl}{\operatorname{\vect{\mathrm{curl}}}}}
+\CustomizeMathJax{\DeclareMathOperator{\divg}{div}}
+\CustomizeMathJax{\DeclareMathOperator{\End}{End}}
+
+\CustomizeMathJax{\DeclareMathOperator{\erf}{erf}}
+\CustomizeMathJax{\newcommand{\grad}{\operatorname{\vect{\mathrm{grad}}}}}
+\CustomizeMathJax{\DeclareMathOperator{\id}{id}}
+\CustomizeMathJax{\DeclareMathOperator{\Id}{Id}}
+\CustomizeMathJax{\DeclareMathOperator{\im}{im}}
\CustomizeMathJax{\let\oldIm\Im}
\CustomizeMathJax{\renewcommand{\Im}{\operatorname{Im}}}
-\CustomizeMathJax{\newcommand{\lb}{\mathrm{lb}}}
-\CustomizeMathJax{\newcommand{\lcm}{\mathrm{lcm}}}
+\CustomizeMathJax{\DeclareMathOperator{\lb}{lb}}
+\CustomizeMathJax{\DeclareMathOperator{\lcm}{lcm}}
-\CustomizeMathJax{\newcommand{\rank}{\mathrm{rank}}}
+\CustomizeMathJax{\DeclareMathOperator{\rank}{rank}}
\CustomizeMathJax{\let\oldRe\Re}
\CustomizeMathJax{\renewcommand{\Re}{\operatorname{Re}}}
-\CustomizeMathJax{\newcommand{rot}{\operatorname{\vect{\mathrm{rot}}}}}
-\CustomizeMathJax{\newcommand{\sgn}{\mathrm{sgn}}}
-\CustomizeMathJax{\newcommand{\spa}{\mathrm{span}}}
-\CustomizeMathJax{\newcommand{\tr}{\mathrm{tr}}}
-\CustomizeMathJax{\newcommand{\Var}{\mathrm{Var}}}
-\CustomizeMathJax{\newcommand{\Zu}{\mathrm{Z}}}
-
-\CustomizeMathJax{\newcommand{\arccot}{\mathrm{arccot}}}
-\CustomizeMathJax{\newcommand{\sech}{\mathrm{sech}}}
-\CustomizeMathJax{\newcommand{\csch}{\mathrm{csch}}}
-\CustomizeMathJax{\newcommand{\arsinh}{\mathrm{arsinh}}}
-\CustomizeMathJax{\newcommand{\arcosh}{\mathrm{arcosh}}}
-\CustomizeMathJax{\newcommand{\artanh}{\mathrm{artanh}}}
-\CustomizeMathJax{\newcommand{\arcoth}{\mathrm{arcoth}}}
-\CustomizeMathJax{\newcommand{\arsech}{\mathrm{arsech}}}
-\CustomizeMathJax{\newcommand{\arcsch}{\mathrm{arcsch}}}
-
-\CustomizeMathJax{\newcommand{\bigO}{\mathcal{O}}}
-\CustomizeMathJax{\newcommand{\bigo}{\mathrm{O}}}
-\CustomizeMathJax{\newcommand{\lito}{\mathrm{o}}}
+\CustomizeMathJax{\newcommand{\rot}{\operatorname{\vect{\mathrm{rot}}}}}
+\CustomizeMathJax{\DeclareMathOperator{\sgn}{sgn}}
+\CustomizeMathJax{\DeclareMathOperator{\spa}{span}}
+\CustomizeMathJax{\DeclareMathOperator{\tr}{tr}}
+\CustomizeMathJax{\DeclareMathOperator{\Var}{Var}}
+\CustomizeMathJax{\DeclareMathOperator{\Zu}{Z}}
+
+\CustomizeMathJax{\DeclareMathOperator{\arccot}{arccot}}
+\CustomizeMathJax{\DeclareMathOperator{\sech}{sech}}
+\CustomizeMathJax{\DeclareMathOperator{\csch}{csch}}
+\CustomizeMathJax{\DeclareMathOperator{\arsinh}{arsinh}}
+\CustomizeMathJax{\DeclareMathOperator{\arcosh}{arcosh}}
+\CustomizeMathJax{\DeclareMathOperator{\artanh}{artanh}}
+\CustomizeMathJax{\DeclareMathOperator{\arcoth}{arcoth}}
+\CustomizeMathJax{\DeclareMathOperator{\arsech}{arsech}}
+\CustomizeMathJax{\DeclareMathOperator{\arcsch}{arcsch}}
+
+\CustomizeMathJax{\DeclareMathOperator{\bigO}{\mathcal{O}}}
+\CustomizeMathJax{\DeclareMathOperator{\bigo}{O}}
+\CustomizeMathJax{\DeclareMathOperator{\lito}{o}}
\CustomizeMathJax{\newcommand{\R}{\mathset{R}}}
\CustomizeMathJax{\newcommand{\C}{\mathset{C}}}
@@ -62383,6 +63207,41 @@ background:
%
%
%
+% \iffalse
+%<*mleftright>
+% \fi
+%
+% \part{lwarp-mleftright.sty}
+%
+% \section{mleftright}
+%
+% \credits{Heiko Oberdiek}
+%
+% \DescribePackage{mleftright}
+% \pkg{mleftright} is used as-is, and is emulated for \brand{MathJax}.
+%
+% \changes{v0.88}{2020/07/22}{\pkg{mleftright}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{mleftright}[2019/12/03]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\mleft}{\left}}
+\CustomizeMathJax{\newcommand{\mright}{\right}}
+\CustomizeMathJax{\newcommand{\mleftright}{}}
+\CustomizeMathJax{\newcommand{\mleftrightrestore}{}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</mleftright>
+% \fi
+%
+%
%
% \iffalse
%<*morefloats>
@@ -63781,6 +64640,123 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
%
%
+% \iffalse
+%<*newpxmath>
+% \fi
+%
+% \part{lwarp-newpxmath.sty}
+%
+% \section{newpxmath}
+%
+% \credits{Michael Sharpe}
+%
+% \DescribePackage{newpxmath}
+% \pkg{newpxmath} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options.
+% \trouble[limitations]{newpxmath=\pkg{newpxmath}}
+% The explicit macros for upright and italic Greek do work correctly.
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.89}{2020/08/31}{\pkg{newpxmath}: Added.}
+%
+% \codehtml
+%
+% The \brand{MathJax} code from \pkg{newtxmath} is used:
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{newpxmath}[2020/01/09]
+
+\LWR@infoprocessingmathjax{newpxmath}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-newpxtxmath}
+% \end{macrocode}
+%
+% \iffalse
+%</newpxmath>
+% \fi
+%
+%
+%
+% \iffalse
+%<*newtxmath>
+% \fi
+%
+% \part{lwarp-newtxmath.sty}
+%
+% \section{newtxmath}
+%
+% \credits{Michael Sharpe}
+%
+% \DescribePackage{newtxmath}
+% \pkg{newtxmath} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options,
+% \trouble[limitations]{newtxmath=\pkg{newtxmath}}
+% except that bold italic Latin letters are not defined for \brand{MathJax} if
+% the option is not selected.
+%
+% The explicit macros for upright and italic Greek and bold italic Latin letters
+% do work correctly.
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.89}{2020/08/31}{\pkg{newtxmath}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{newtxmath}[2020/08/04]
+
+\LWR@infoprocessingmathjax{newtxmath}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-newpxtxmath}
+% \end{macrocode}
+%
+% \iffalse
+%</newtxmath>
+% \fi
+%
+%
+%
+%
+% \iffalse
+%<*newtxsf>
+% \fi
+%
+% \part{lwarp-newtxsf.sty}
+%
+% \section{newtxsf}
+%
+% \credits{Michael Sharpe}
+%
+% \DescribePackage{newtxsf}
+% \pkg{newtxsf} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options.
+% \trouble[limitations]{newtxsf=\pkg{newtxsf}}
+% The explicit macros for upright and italic Greek and bold italic Latin letters
+% do work correctly.
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.89}{2020/08/31}{\pkg{newtxsf}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{newtxsf}[2020/05/02]
+
+\LWR@infoprocessingmathjax{newtxsf}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-newpxtxmath}
+% \end{macrocode}
+%
+% \iffalse
+%</newtxsf>
+% \fi
+%
+%
%
% \iffalse
%<*nextpage>
@@ -67659,6 +68635,45 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*pxfonts>
+% \fi
+%
+% \part{lwarp-pxfonts.sty}
+%
+% \section{pxfonts}
+%
+% \credits{Young Ryu}
+%
+% \DescribePackage{pxfonts}
+% \pkg{pxfonts} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% \changes{v0.89}{2020/08/10}{\pkg{pxfonts}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\LWR@ProvidesPackagePass{pxfonts}[2008/01/22]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{pxfonts}
+
+\LWR@mathjax@addgreek@l@up{}{up}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</pxfonts>
+% \fi
+%
+%
+%
+% \iffalse
%<*pxftnright>
% \fi
%
@@ -69903,6 +70918,78 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*shuffle>
+% \fi
+%
+% \part{lwarp-shuffle.sty}
+%
+% \section{shuffle}
+%
+% \credits{Julian Gilbey and Antoine Lejay}
+%
+% \DescribePackage{shuffle}
+% \pkg{shuffle} is emulated for \SVG\ math, and
+% also emulated for \brand{MathJax}.
+%
+% The font used for \pkg{shuffle} may not render correctly when
+% converted to \SVG\ math, so a \env{picture} environment drawing
+% is used instead.
+%
+% For \brand{MathJax}, the Unicode character is used, and for
+% \cs{cshuffle} a \cs{bar} is added.
+%
+% \changes{v0.89}{2020/07/26}{\pkg{shuffle}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{shuffle}[2008/10/27]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpHTML}
+\newcommand*{\LWR@shuffle@start}{%
+ \hspace*{.2em}
+ \begin{picture}(.75,0.65)
+ \setlength{\unitlength}{1em}
+ \put(0,0){\line(1,0){.75}}
+ \put(0,0){\line(0,1){.5}}
+ \put(.375,0){\line(0,1){.5}}
+ \put(.75,0){\line(0,1){.5}}
+}
+
+\newcommand*{\LWR@shuffle@finish}{%
+ \end{picture}
+ \hspace*{.75em}
+ \hspace*{.2em}
+}
+
+\newcommand*{\shuffle}{%
+ \LWR@shuffle@start%
+ \LWR@shuffle@finish%
+}
+
+\newcommand*{\cshuffle}{%
+ \LWR@shuffle@start%
+ \put(.05,.65){\line(1,0){.65}}%
+ \LWR@shuffle@finish%
+}
+\end{warpHTML}
+
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\shuffle}{\unicode{0x29E2}}}
+\CustomizeMathJax{\newcommand{\cshuffle}{\bar{\unicode{0x29E2}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</shuffle>
+% \fi
+%
+%
+%
+%
+% \iffalse
%<*sidecap>
% \fi
@@ -70392,7 +71479,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\CustomizeMathJax{\newcommand{\barn}{\mathrm{b}}}
\CustomizeMathJax{\newcommand{\bbar}{\mathrm{bar}}}
\CustomizeMathJax{\newcommand{\gal}{\mathrm{Gal}}}
-\CustomizeMathJax{\newcommand{\angstrom}{\mathrm{\unicode{x00C5}}}}
+\CustomizeMathJax{\newcommand{\angstrom}{\mathrm{\unicode{x212B}}}}
\CustomizeMathJax{\newcommand{\rperminute}{\mathrm{r}\per\minute}}
\CustomizeMathJax{\newcommand{\rpersecond}{\mathrm{r}\per\second}}
\CustomizeMathJax{\newcommand{\squaremetre}{\power{\metre}{2}}}
@@ -70878,6 +71965,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \begin{macrocode}
\begin{warpMathJax}
\LWR@infoprocessingmathjax{siunitx}
+% \end{macrocode}
+%
+% \changes{v0.89}{2020/07/23}{\pkg{siunitx}: Fix: \brand{MathJax} for \cs{tothe}, \cs{raiseto}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\tothe}[1]{^{#1}}}
+\CustomizeMathJax{\newcommand{\raiseto}[2]{{#2}^{#1}}}
\CustomizeMathJax{\newcommand{\ang}[2][]{(\mathrm{#2})\degree}}
\CustomizeMathJax{\newcommand{\num}[2][]{\mathrm{#2}}}
@@ -70886,11 +71979,14 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \SI[opt]{num}[preunit]{unit}
\CustomizeMathJax{\newcommand{\LWRSI}[2][]{\mathrm{#1\LWRSInumber\,#2}}}
\CustomizeMathJax{\newcommand{\SI}[2][]{\def\LWRSInumber{#2}\LWRSI}}
+% \end{macrocode}
%
+% \changes{v0.89}{2020/08/02}{\pkg{siunitx}: Unicode for endash.}
+% \begin{macrocode}
\CustomizeMathJax{\newcommand{\numlist}[2][]{\mathrm{#2}}}
-\CustomizeMathJax{\newcommand{\numrange}[3][]{\mathrm{#2~-- #3}}}
+\CustomizeMathJax{\newcommand{\numrange}[3][]{\mathrm{#2\,\unicode{x2013}\,#3}}}
\CustomizeMathJax{\newcommand{\SIlist}[3][]{\mathrm{#2\,#3}}}
-\CustomizeMathJax{\newcommand{\SIrange}[4][]{\mathrm{#2\,#4~-- #3\,#4}}}
+\CustomizeMathJax{\newcommand{\SIrange}[4][]{\mathrm{#2\,#4\,\unicode{x2013}\,#3\,#4}}}
\CustomizeMathJax{\newcommand{\tablenum}[2][]{\mathrm{#2}}}
%
\CustomizeMathJax{\newcommand{\ampere}{\mathrm{A}}}
@@ -70942,8 +72038,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\CustomizeMathJax{\newcommand{\electronvolt}{\mathrm{eV}}}
\CustomizeMathJax{\newcommand{\elementarycharge}{\mathit{e}}}
\CustomizeMathJax{\newcommand{\hartree}{\mathit{E}_{\mathrm{h}}}}
-\CustomizeMathJax{\newcommand{\planckbar}{\mathit{\unicode{x0127}}}}
-\CustomizeMathJax{\newcommand{\angstrom}{\mathrm{\unicode{x00C5}}}}
+\CustomizeMathJax{\newcommand{\planckbar}{\mathit{\unicode{x210F}}}}
+\CustomizeMathJax{\newcommand{\angstrom}{\mathrm{\unicode{x212B}}}}
\CustomizeMathJax{\let\LWRorigbar\bar}
\CustomizeMathJax{\newcommand{\bar}{\mathrm{bar}}}
\CustomizeMathJax{\newcommand{\barn}{\mathrm{b}}}
@@ -72104,10 +73200,14 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% is emulated for \brand{MathJax}.
%
% \changes{v0.81}{2020/02/28}{\pkg{statmath}: Added.}
+% \changes{v0.89}{2020/09/01}{\pkg{statmath}: Fixed \optn{abcbm},
+% uses \pkg{lwarp-common-mathjax-letters}.}
%
% \codehtml
%
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\LWR@ProvidesPackagePass{statmath}[2018/03/08]
% \end{macrocode}
%
@@ -72115,8 +73215,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\begin{warpMathJax}
\LWR@infoprocessingmathjax{statmath}
-\CustomizeMathJax{\let\abcbf\mathbf}
+\ifdefequal{\abcbf}{\mathbf}
+ {\CustomizeMathJax{\newcommand{\abcbf}[1]{\mathbf{#1}}}}
+ {\CustomizeMathJax{\newcommand{\abcbf}[1]{\boldsymbol{#1}}}}
+
\CustomizeMathJax{\newcommand{\greekbf}[1]{\boldsymbol{#1}}}
+
\CustomizeMathJax{\newcommand{\bfA}{\abcbf A}}
\CustomizeMathJax{\newcommand{\bfB}{\abcbf B}}
\CustomizeMathJax{\newcommand{\bfC}{\abcbf C}}
@@ -72169,47 +73273,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\CustomizeMathJax{\newcommand{\bfx}{\abcbf x}}
\CustomizeMathJax{\newcommand{\bfy}{\abcbf y}}
\CustomizeMathJax{\newcommand{\bfz}{\abcbf z}}
-\CustomizeMathJax{\newcommand{\bfalpha}{\greekbf \alpha}}
-\CustomizeMathJax{\newcommand{\bfbeta}{\greekbf \beta}}
-\CustomizeMathJax{\newcommand{\bfdelta}{\greekbf \delta}}
-\CustomizeMathJax{\newcommand{\bfepsilon}{\greekbf \epsilon}}
-\CustomizeMathJax{\newcommand{\bfvarepsilon}{\greekbf \varepsilon}}
-\CustomizeMathJax{\newcommand{\bfzeta}{\greekbf \zeta}}
-\CustomizeMathJax{\newcommand{\bfeta}{\greekbf \eta}}
-\CustomizeMathJax{\newcommand{\bftheta}{\greekbf \theta}}
-\CustomizeMathJax{\newcommand{\bfvartheta}{\greekbf \vartheta}}
-\CustomizeMathJax{\newcommand{\bfgamma}{\greekbf \gamma}}
-\CustomizeMathJax{\newcommand{\bfkappa}{\greekbf \kappa}}
-\CustomizeMathJax{\newcommand{\bflambda}{\greekbf \lambda}}
-\CustomizeMathJax{\newcommand{\bfmu}{\greekbf \mu}}
-\CustomizeMathJax{\newcommand{\bfnu}{\greekbf \nu}}
-\CustomizeMathJax{\newcommand{\bfxi}{\greekbf \xi}}
-\CustomizeMathJax{\newcommand{\bfpi}{\greekbf \pi}}
-\CustomizeMathJax{\newcommand{\bfvarpi}{\greekbf \varpi}}
-\CustomizeMathJax{\newcommand{\bfrho}{\greekbf \rho}}
-\CustomizeMathJax{\newcommand{\bfvarrho}{\greekbf \varrho}}
-\CustomizeMathJax{\newcommand{\bfsigma}{\greekbf \sigma}}
-\CustomizeMathJax{\newcommand{\bfvarsigma}{\greekbf \varsigma}}
-\CustomizeMathJax{\newcommand{\bftau}{\greekbf \tau}}
-\CustomizeMathJax{\newcommand{\bfupsilon}{\greekbf \upsilon}}
-\CustomizeMathJax{\newcommand{\bfphi}{\greekbf \phi}}
-\CustomizeMathJax{\newcommand{\bfvarphi}{\greekbf \varphi}}
-\CustomizeMathJax{\newcommand{\bfchi}{\greekbf \chi}}
-\CustomizeMathJax{\newcommand{\bfpsi}{\greekbf \psi}}
-\CustomizeMathJax{\newcommand{\bfomega}{\greekbf \omega}}
-\CustomizeMathJax{\newcommand{\bfiota}{\greekbf \iota}}
-\CustomizeMathJax{\newcommand{\bfGamma}{\greekbf \Gamma}}
-\CustomizeMathJax{\newcommand{\bfDelta}{\greekbf \Delta}}
-\CustomizeMathJax{\newcommand{\bfTheta}{\greekbf \Theta}}
-\CustomizeMathJax{\newcommand{\bfLambda}{\greekbf \Lambda}}
-\CustomizeMathJax{\newcommand{\bfXi}{\greekbf \Xi}}
-\CustomizeMathJax{\newcommand{\bfPi}{\greekbf \Pi}}
-\CustomizeMathJax{\newcommand{\bfSigma}{\greekbf \Sigma}}
-\CustomizeMathJax{\newcommand{\bfUpsilon}{\greekbf \Upsilon}}
-\CustomizeMathJax{\newcommand{\bfPhi}{\greekbf \Phi}}
-\CustomizeMathJax{\newcommand{\bfPsi}{\greekbf \Psi}}
-\CustomizeMathJax{\newcommand{\bfOmega}{\greekbf \Omega}}
+
+\LWR@mathjax@addgreek@l@bfit{bf}{}% Greek lowercase bold face italic
+\LWR@mathjax@addgreek@u@bfup*{bf}{}% Greek uppercase bold face upright, cap macros.
+
\CustomizeMathJax{\newcommand{\bfzero}{\greekbf 0}}
+
\CustomizeMathJax{\DeclareMathOperator{\cov}{Cov}}
\CustomizeMathJax{\DeclareMathOperator{\E}{E}}
\CustomizeMathJax{\DeclareMathOperator{\V}{V}}
@@ -74533,12 +75602,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \section{thm-listof}
%
-% \credits{Ulrich M. Schwarz}
+% \credits{Ulrich M. Schwarz, Yukai Chou}
%
% \DescribePackage{thm-listof}
% \pkg{thm-listof} is part of \pkg{thmtools}, and is patched for use by \pkg{lwarp}.
%
% \changes{v0.88}{2020/07/03}{\pkg{thm-listof}: Added.}
+% \changes{v0.89}{2020/09/02}{\pkg{thm-listof}: Updated to v0.72.}
%
% \codehtml
%
@@ -74551,29 +75621,35 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% Other \pkg{thm-*} package may be loaded by \pkg{thm-listof}.
% \begin{macrocode}
-\xpatchcmd{\listoftheorems}
- {%
- \@xa\protected@edef\csname l@\thmt@envname\endcsname{%
- \@nx\@dottedtocline{1}{1.5em}{\@nx\thmt@listnumwidth}%
- }%
- }
- {%
- \csdef{l@\thmt@envname}##1##2{\hypertocfloat{1}{figure}{lof}{##1}{##2}}%
- }
- {}
- {\LWR@patcherror{thm-listof}{listoftheorems}}
+\@ifpackagelater{thm-listof}{2020/08/01}{% v0.72
+ \def\thmtlo@newentry{%
+ \csdef{l@\thmt@envname}##1##2{\hypertocfloat{1}{figure}{lof}{##1}{##2}}%
+ }
+}{% earlier than v0.72
+ \xpatchcmd{\listoftheorems}
+ {%
+ \@xa\protected@edef\csname l@\thmt@envname\endcsname{%
+ \@nx\@dottedtocline{1}{1.5em}{\@nx\thmt@listnumwidth}%
+ }%
+ }
+ {%
+ \csdef{l@\thmt@envname}##1##2{\hypertocfloat{1}{figure}{lof}{##1}{##2}}%
+ }
+ {}
+ {\LWR@patcherror{thm-listof}{listoftheorems}}
-\xpatchcmd{\thmt@mklistcmd}
- {%
- \@xa\protected@edef\csname l@\thmt@envname\endcsname{%
- \@nx\@dottedtocline{1}{1.5em}{\@nx\thmt@listnumwidth}%
- }%
- }
- {%
- \csdef{l@\thmt@envname}##1##2{\hypertocfloat{1}{figure}{lof}{##1}{##2}}%
- }
- {}
- {\LWR@patcherror{thm-listof}{thmt@mklistcmd}}
+ \xpatchcmd{\thmt@mklistcmd}
+ {%
+ \@xa\protected@edef\csname l@\thmt@envname\endcsname{%
+ \@nx\@dottedtocline{1}{1.5em}{\@nx\thmt@listnumwidth}%
+ }%
+ }
+ {%
+ \csdef{l@\thmt@envname}##1##2{\hypertocfloat{1}{figure}{lof}{##1}{##2}}%
+ }
+ {}
+ {\LWR@patcherror{thm-listof}{thmt@mklistcmd}}
+}
% \end{macrocode}
%
% \iffalse
@@ -74596,11 +75672,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \pkg{thm-restate} is part of \pkg{thmtools}, and is patched for use by \pkg{lwarp}.
%
% \changes{v0.88}{2020/07/03}{\pkg{thm-restate}: Added.}
+% \changes{v0.89}{2020/09/02}{\pkg{thm-restate}: Updated to v0.72, no changes needed.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{thm-restate}[2019/12/22]
+\LWR@ProvidesPackagePass{thm-restate}[2020/08/01]
% \end{macrocode}
%
% \begin{macrocode}
@@ -74677,6 +75754,49 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
%
+%
+%
+% \iffalse
+%<*thmtools>
+% \fi
+%
+% \part{lwarp-thmtools.sty}
+%
+% \section{thmtools}
+%
+% \credits{Ulrich M. Schwarz}
+%
+% \DescribePackage{thmtools}
+% \pkg{thmtools} is patched for use by \pkg{lwarp}.
+%
+% Also see \pkg{thm-listof} and \pkg{thm-restate}.
+%
+% \changes{v0.89}{2020/09/02}{\pkg{thmtools}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{thmtools}[2020/08/01]
+% \end{macrocode}
+%
+% The following patches either \pkg{thm-amsthm} or \pkg{thm-ntheorem}.
+% \begin{macrocode}
+\def\thmt@headstyle@margin{%
+ \InlineClass{amsthmnnumbertheorem}{\NUMBER}
+ \
+ \InlineClass{amsthmnametheorem}{\NAME}
+ \InlineClass{amsthmnotetheorem}{\NOTE}
+}
+
+\let\thmt@headstyle@swapnumber\thmt@headstyle@margin
+% \end{macrocode}
+%
+% \iffalse
+%</thmtools>
+% \fi
+%
+%
+%
% \iffalse
%<*threadcol>
% \fi
@@ -77200,6 +78320,45 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
%
+%
+% \iffalse
+%<*txfonts>
+% \fi
+%
+% \part{lwarp-txfonts.sty}
+%
+% \section{txfonts}
+%
+% \credits{Young Ryu}
+%
+% \DescribePackage{txfonts}
+% \pkg{txfonts} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% \changes{v0.89}{2020/08/10}{\pkg{txfonts}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\LWR@ProvidesPackagePass{txfonts}[2008/01/22]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{txfonts}
+
+\LWR@mathjax@addgreek@l@up{}{up}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</txfonts>
+% \fi
+%
+%
% \iffalse
%<*typearea>
% \fi
@@ -77743,6 +78902,49 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
%
+%
+% \iffalse
+%<*upgreek>
+% \fi
+%
+% \part{lwarp-upgreek.sty}
+%
+% \section{upgreek}
+%
+% \credits{Walter Schmidt}
+%
+% \DescribePackage{upgreek}
+% \pkg{upgreek} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% \changes{v0.89}{2020/08/10}{\pkg{upgreek}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\LWR@ProvidesPackagePass{upgreek}[2003/02/12]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{upgreek}
+
+\LWR@mathjax@addgreek@l@up{up}{}
+\LWR@mathjax@addgreek@u@up{Up}{}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</upgreek>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*upref>
% \fi
@@ -77817,6 +79019,47 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
%
+%
+%
+% \iffalse
+%<*ushort>
+% \fi
+%
+% \part{lwarp-ushort.sty}
+%
+% \section{ushort}
+%
+% \credits{Martin V\"ath}
+%
+% \DescribePackage{ushort}
+% \pkg{ushort} is used as-is, and emulated for \brand{MathJax}.
+%
+% \changes{v0.88}{2020/07/23}{\pkg{ushort}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{ushort}[2001/06/13]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\ushortdline}[1]{%
+ \kern{.1em}\underline{\underline{{#1}}}\kern{.1em}%
+}}
+\CustomizeMathJax{\newcommand{\ushort}[1]{\kern{.1em}\underline{#1}\kern{.1em}}}
+\CustomizeMathJax{\newcommand{\ushortd}[1]{\ushortdline{#1}}}
+\CustomizeMathJax{\newcommand{\ushortw}[1]{\kern{.1em}\underline{#1}\kern{.1em}}}
+\CustomizeMathJax{\newcommand{\ushortdw}[1]{\ushortdline{#1}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</ushort>
+% \fi
+%
+%
+%
% \iffalse
%<*uspace>
% \fi
@@ -78507,7 +79750,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \begin{macrocode}
\begin{warpHTML}
-\makeatletter
\ifbool{mathjax}{
% For the hidden print version in the HTML:
\newcommand{\Arrow}[2][]{}
@@ -78564,7 +79806,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
}
\AfterEndEnvironment{DispWithArrows*}{\end{lateximage}\end{BlockClass}}
}
-\makeatother
\end{warpHTML}
\begin{warpMathJax}
@@ -82763,6 +84004,937 @@ height:\LWR@printlength{\LWR@tempheight}%
% \fi
%
%
+%
+% ^^A *common-mathjax-letters
+% ^^A *letters
+%
+% \iffalse
+%<*common-mathjax-letters>
+% \fi
+%
+% \part{lwarp-common-mathjax-letters.sty}
+%
+% \section{common-mathjax-letters}
+%
+% \DescribePackage{lwarp-common-mathjax-letters}
+% Common code used by a number of packages to generate Greek math characters
+% for \brand{MathJax}.
+%
+% \changes{v0.89}{2020/08/10}{\pkg{lwarp-common-mathjax-letters}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\ProvidesPackage{lwarp-common-mathjax-letters}[2020/08/10]
+% \end{macrocode}
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addletter}
+% * \marg{2: capitalize name?} \marg{3: prefix} \marg{4: postfix}
+% \marg{5: name} \marg{6: unicode}
+%
+% Star to italicize the result, used when the unicode character does not exist.
+% \begin{macrocode}
+\begin{warpMathJax}
+
+\NewDocumentCommand{\LWR@mathjax@addletter}{s m m m m m}{
+ \IfBooleanTF{#2}%
+ {\edef\LWR@tempone{\LWRtexttitlecase{#5}}}%
+ {\edef\LWR@tempone{#5}}%
+ \xdef\LWR@customizedMathJax{%
+ \LWR@customizedMathJax%
+ \LWRbackslash(%
+ \LWRbackslash newcommand\LWRleftbrace\LWRbackslash%
+ #3% prefix
+ \LWR@tempone%name
+ #4% postfix
+ \LWRrightbrace\LWRleftbrace%
+ }%
+ \IfBooleanTF{#1}{%
+ \xdef\LWR@customizedMathJax{%
+ \LWR@customizedMathJax%
+ \LWRbackslash mathit\LWRleftbrace%
+ \LWRbackslash unicode\LWRleftbrace x#6\LWRrightbrace%
+ \LWRrightbrace%
+ }%
+ }{%
+ \xdef\LWR@customizedMathJax{%
+ \LWR@customizedMathJax%
+ \LWRbackslash unicode\LWRleftbrace x#6\LWRrightbrace%
+ }%
+ }%
+ \xdef\LWR@customizedMathJax{%
+ \LWR@customizedMathJax%
+ \LWRrightbrace\LWRbackslash)\par%
+ }%
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addgreek@l@up}
+% * \marg{2: prefix} \marg{3: postfix}
+%
+% Star to capitalize the macro names.
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% Greek letters, lowercase upright.
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addgreek@l@up}{s m m}{
+ \LWR@mathjax@addletter{#1}{#2}{#3}{alpha}{03B1}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{beta}{03B2}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{gamma}{03B3}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{digamma}{03DD}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{delta}{03B4}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{epsilon}{03F5}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varepsilon}{03B5}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{zeta}{03B6}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{eta}{03B7}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{theta}{03B8}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{vartheta}{03D1}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{iota}{03B9}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{kappa}{03BA}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varkappa}{03F0}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{lambda}{03BB}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{mu}{03BC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{nu}{03BD}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{xi}{03BE}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omicron}{03BF}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{pi}{03C0}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varpi}{03D6}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{rho}{03C1}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varrho}{03F1}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{sigma}{03C3}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varsigma}{03C2}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{tau}{03C4}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{upsilon}{03C5}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{phi}{03D5}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varphi}{03C6}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{chi}{03C7}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{psi}{03C8}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omega}{03C9}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addgreek@u@up}
+% * \marg{2: prefix} \marg{3: postfix}
+%
+% Star to capitalize the macro names.
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% Greek letters, uppercase upright.
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addgreek@u@up}{s m m}{
+ \LWR@mathjax@addletter{#1}{#2}{#3}{alpha}{0391}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{beta}{0392}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{gamma}{0393}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{digamma}{03DC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{delta}{0394}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{epsilon}{0395}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{zeta}{0396}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{eta}{0397}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{theta}{0398}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{vartheta}{03F4}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{iota}{0399}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{kappa}{039A}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{lambda}{039B}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{mu}{039C}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{nu}{039D}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{xi}{039E}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omicron}{039F}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{pi}{03A0}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varpi}{03D6}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{rho}{03A1}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{sigma}{03A3}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{tau}{03A4}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{upsilon}{03A5}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{phi}{03A6}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{chi}{03A7}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{psi}{03A8}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omega}{03A9}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addgreek@l@it}
+% * \marg{2: prefix} \marg{3: postfix}
+%
+% Star to capitalize the macro names.
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% Greek letters, lowercase italic.
+%
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addgreek@l@it}{s m m}{
+ \LWR@mathjax@addletter{#1}{#2}{#3}{alpha}{1D6FC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{beta}{1D6FD}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{gamma}{1D6FE}
+ \LWR@mathjax@addletter*{#1}{#2}{#3}{digamma}{03DD}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{delta}{1D6FF}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{epsilon}{1D716}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varepsilon}{1D700}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{zeta}{1D701}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{eta}{1D702}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{theta}{1D703}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{vartheta}{1D717}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{iota}{1D704}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{kappa}{1D705}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varkappa}{1D718}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{lambda}{1D706}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{mu}{1D707}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{nu}{1D708}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{xi}{1D709}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omicron}{1D70A}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{pi}{1D70B}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varpi}{1D71B}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{rho}{1D70C}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varrho}{1D71A}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{sigma}{1D70E}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varsigma}{1D70D}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{tau}{1D70F}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{upsilon}{1D710}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{phi}{1D719}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varphi}{1D711}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{chi}{1D712}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{psi}{1D713}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omega}{1D714}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addgreek@u@it}
+% * \marg{2: prefix} \marg{3: postfix}
+%
+% Star to capitalize the macro names.
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% Greek letters, uppercase italic.
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addgreek@u@it}{s m m}{
+ \LWR@mathjax@addletter{#1}{#2}{#3}{alpha}{1D6E2}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{beta}{1D6E3}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{gamma}{1D6E4}
+ \LWR@mathjax@addletter*{#1}{#2}{#3}{digamma}{03DC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{delta}{1D6E5}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{epsilon}{1D6E6}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{zeta}{1D6E7}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{eta}{1D6E8}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{theta}{1D6E9}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{vartheta}{1D6F3}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{iota}{1D6EA}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{kappa}{1D6EB}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{lambda}{1D6EC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{mu}{1D6ED}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{nu}{1D6EE}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{xi}{1D6EF}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omicron}{1D6F0}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{pi}{1D6F1}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{rho}{1D6F2}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{sigma}{1D6F4}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{tau}{1D6F5}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{upsilon}{1D6F6}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{phi}{1D6F7}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{chi}{1D6F8}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{psi}{1D6F9}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omega}{1D6FA}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addgreek@l@bfit}
+% * \marg{2: prefix} \marg{3: postfix}
+%
+% Star to capitalize the macro names.
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% Greek letters, lowercase boldface italic.
+%
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addgreek@l@bfit}{s m m}{
+ \LWR@mathjax@addletter{#1}{#2}{#3}{alpha}{1D736}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{beta}{1D737}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{gamma}{1D738}
+ \LWR@mathjax@addletter*{#1}{#2}{#3}{digamma}{03DD}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{delta}{1D739}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{epsilon}{1D750}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varepsilon}{1D73A}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{zeta}{1D73B}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{eta}{1D73C}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{theta}{1D73D}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{vartheta}{1D751}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{iota}{1D73E}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{kappa}{1D73F}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varkappa}{1D752}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{lambda}{1D740}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{mu}{1D741}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{nu}{1D742}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{xi}{1D743}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omicron}{1D744}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{pi}{1D745}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varpi}{1D755}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{rho}{1D746}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varrho}{1D754}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{sigma}{1D748}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varsigma}{1D747}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{tau}{1D749}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{upsilon}{1D74A}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{phi}{1D753}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{varphi}{1D74B}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{chi}{1D74C}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{psi}{1D74D}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omega}{1D74E}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addgreek@u@bfit}
+% * \marg{2: prefix} \marg{3: postfix}
+%
+% Star to capitalize the macro names.
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% Greek letters, uppercase boldface italic.
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addgreek@u@bfit}{s m m}{
+ \LWR@mathjax@addletter{#1}{#2}{#3}{alpha}{1D71C}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{beta}{1D71D}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{gamma}{1D71E}
+ \LWR@mathjax@addletter*{#1}{#2}{#3}{digamma}{03DC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{delta}{1D71F}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{epsilon}{1D720}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{zeta}{1D721}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{eta}{1D722}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{theta}{1D723}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{vartheta}{1D72D}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{iota}{1D724}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{kappa}{1D725}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{lambda}{1D726}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{mu}{1D727}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{nu}{1D728}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{xi}{1D729}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omicron}{1D72A}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{pi}{1D72B}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{rho}{1D72C}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{sigma}{1D72E}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{tau}{1D72F}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{upsilon}{1D730}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{phi}{1D731}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{chi}{1D732}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{psi}{1D733}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omega}{1D734}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addgreek@u@bfup}
+% * \marg{2: prefix} \marg{3: postfix}
+%
+% Star to capitalize the macro names.
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% Greek letters, uppercase boldface upright.
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addgreek@u@bfup}{s m m}{
+ \LWR@mathjax@addletter{#1}{#2}{#3}{alpha}{1D6A8}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{beta}{1D6A9}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{gamma}{1D6AA}
+ \LWR@mathjax@addletter*{#1}{#2}{#3}{digamma}{03DC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{delta}{1D6AB}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{epsilon}{1D6AC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{zeta}{1D6AD}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{eta}{1D6AE}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{theta}{1D6AF}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{vartheta}{1D6B9}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{iota}{1D6B0}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{kappa}{1D6B1}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{lambda}{1D6B2}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{mu}{1D6B3}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{nu}{1D6B4}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{xi}{1D6B5}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omicron}{1D6B6}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{pi}{1D6B7}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{rho}{1D6B8}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{sigma}{1D6BA}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{tau}{1D6BB}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{upsilon}{1D6BC}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{phi}{1D6BD}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{chi}{1D6BE}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{psi}{1D6BF}
+ \LWR@mathjax@addletter{#1}{#2}{#3}{omega}{1D6C0}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+% \begin{noindmacro}{\LWR@mathjax@addlatin@u@bfit} \marg{prefix}
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% bold-face italic Latin letters, uppercase and lowercase.
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addlatin@u@bfit}{m}{
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{A}{1D468}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{B}{1D469}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{C}{1D46A}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{D}{1D46B}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{E}{1D46C}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{F}{1D46D}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{G}{1D46E}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{H}{1D46F}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{I}{1D470}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{J}{1D471}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{K}{1D472}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{L}{1D473}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{M}{1D474}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{N}{1D475}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{O}{1D476}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{P}{1D477}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{Q}{1D478}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{R}{1D479}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{S}{1D47A}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{T}{1D47B}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{U}{1D47C}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{V}{1D47D}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{W}{1D47E}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{X}{1D47F}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{Y}{1D480}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{Z}{1D481}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+% \begin{noindmacro}{\LWR@mathjax@addlatin@l@bfit} \marg{prefix}
+%
+% Adds \cs{CustomizeMathjax} expressions to define a set of macros for
+% bold-face italic Latin letters, uppercase and lowercase.
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@mathjax@addlatin@l@bfit}{m}{
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{a}{1D482}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{b}{1D483}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{c}{1D484}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{d}{1D485}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{e}{1D486}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{f}{1D487}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{g}{1D488}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{h}{1D489}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{i}{1D48A}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{j}{1D48B}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{k}{1D48C}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{l}{1D48D}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{m}{1D48E}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{n}{1D48F}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{o}{1D490}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{p}{1D491}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{q}{1D492}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{r}{1D493}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{s}{1D494}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{t}{1D495}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{u}{1D496}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{v}{1D497}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{w}{1D498}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{x}{1D499}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{y}{1D49A}
+ \LWR@mathjax@addletter{\BooleanFalse}{#1}{}{z}{1D49B}
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
+%
+% \begin{macrocode}
+\end{warpMathJax}
+% \end{macrocode}
+
+
+% \iffalse
+%</common-mathjax-letters>
+% \fi
+%
+%
+%
+%
+% ^^A *common-mathjax-newpxtxmath
+%
+% \iffalse
+%<*common-mathjax-newpxtxmath>
+% \fi
+%
+% \part{lwarp-common-mathjax-newpxtxmath.sty}
+%
+% \section{common-mathjax-newpxtxmath}
+%
+% \credits{Michael Sharpe}
+%
+% \DescribePackage{lwarp-common-mathjax-newpxtxmath}
+% Common code used by \pkg{newpxmath}, \pkg{newtxmath}, and \pkg{newtxsf}
+% for \brand{MathJax}.
+%
+% \changes{v0.89}{2020/08/31}{\pkg{lwarp-common-mathjax-newpxtxmath}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\ProvidesPackage{lwarp-common-mathjax-newpxtxmath}[2020/08/31]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
+
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\fAlt}{f}}
+\CustomizeMathJax{\newcommand{\rhoAlt}{\rho}}
+
+\CustomizeMathJax{\newcommand{\imathscr}{\mathord{\mathscr{i}}}}
+\CustomizeMathJax{\newcommand{\jmathscr}{\mathord{\mathscr{j}}}}
+
+\CustomizeMathJax{\let\llbracket[}% single only
+\CustomizeMathJax{\let\rrbracket]}% single only
+\CustomizeMathJax{\let\lBrack=\llbracket}% single only
+\CustomizeMathJax{\let\rBrack=\rrbracket}% single only
+\CustomizeMathJax{\let\smlbrace\{}
+\CustomizeMathJax{\let\smrbrace\}}
+\CustomizeMathJax{\newcommand{\Perp}{\mathrel{\unicode{x02AEB}}}}
+\CustomizeMathJax{\newcommand{\nPerp}{\mathrel{\not{\!\unicode{x02AEB}}}}}
+\CustomizeMathJax{\newcommand{\lambdabar}{%
+ \mathord{\LWRoverlaysymbols{\raise{.5ex}{-}}{\lambda}}%
+}}
+\CustomizeMathJax{\newcommand{\lambdaslash}{\mathord{\unicode{x019B}}}}
+\CustomizeMathJax{\newcommand{\Zbar}{\mathord{\unicode{x01B5}}}}
+\CustomizeMathJax{\newcommand{\Angstrom}{\mathord{\unicode{x212B}}}}
+\CustomizeMathJax{\newcommand{\Euler}{\mathord{\unicode{x2107}}}}
+\CustomizeMathJax{\newcommand{\transp}{\mathord{\unicode{xFF34}}}}
+\CustomizeMathJax{\newcommand{\hermtransp}{\mathord{\unicode{xFF28}}}}
+\CustomizeMathJax{\let\htransp=\hermtransp}
+\CustomizeMathJax{\newcommand{\circledplus}{\mathbin{\unicode{x2295}}}}
+\CustomizeMathJax{\newcommand{\circledminus}{\mathbin{\unicode{x2296}}}}
+\CustomizeMathJax{\newcommand{\circledtimes}{\mathbin{\unicode{x2297}}}}
+\CustomizeMathJax{\newcommand{\circleddot}{\mathbin{\unicode{x2299}}}}
+\CustomizeMathJax{\let\overgroup\overparen}
+\CustomizeMathJax{\let\overgroupra\overrightarrow}
+\CustomizeMathJax{\let\undergroup\underparen}
+\CustomizeMathJax{\let\undergroupla\underleftarrow}
+\CustomizeMathJax{\newcommand{\widering}[1]{\stackrel{\unicode{x2218}}{\overgroup{#1}}}}
+\CustomizeMathJax{\let\widearc\overparen}
+\CustomizeMathJax{\let\wideOarc\overrightarrow}
+\CustomizeMathJax{\newcommand{\LWRvvstar}[2]{{\overrightarrow{#1}_{#2}}}}
+\CustomizeMathJax{\newcommand{\vv}{\ifstar\LWRvvstar\overrightarrow}}
+%
+\CustomizeMathJax{\let\smallintsl\smallint}
+\CustomizeMathJax{\newcommand{\smalliintsl}{\mathop{\unicode{x222C}}}}
+\CustomizeMathJax{\newcommand{\smalliiintsl}{\mathop{\unicode{x222D}}}}
+\CustomizeMathJax{\newcommand{\smalliiiintsl}{\mathop{\unicode{x2A0C}}}}
+\CustomizeMathJax{\newcommand{\smallointsl}{\mathop{\unicode{x222E}}}}
+\CustomizeMathJax{\newcommand{\smalloiintsl}{\mathop{\unicode{x222F}}}}
+\CustomizeMathJax{\newcommand{\smalloiiintsl}{\mathop{\unicode{x2230}}}}
+\CustomizeMathJax{\newcommand{\smallvarointclockwisesl}{\mathop{\unicode{x2232}}}}
+\CustomizeMathJax{\newcommand{\smallointctrclockwisesl}{\mathop{\unicode{x2233}}}}
+\CustomizeMathJax{\newcommand{\smallsumintsl}{\mathop{\unicode{x2A0B}}}}
+\CustomizeMathJax{\newcommand{\smallfintsl}{\mathop{\unicode{x2A0F}}}}
+\CustomizeMathJax{\newcommand{\smallsqintsl}{\mathop{\unicode{x2A16}}}}
+%
+\CustomizeMathJax{\let\smallintup\smallint}
+\CustomizeMathJax{\newcommand{\smalliintup}{\mathop{\unicode{x222C}}}}
+\CustomizeMathJax{\newcommand{\smalliiintup}{\mathop{\unicode{x222D}}}}
+\CustomizeMathJax{\newcommand{\smalliiiintup}{\mathop{\unicode{x2A0C}}}}
+\CustomizeMathJax{\newcommand{\smallointup}{\mathop{\unicode{x222E}}}}
+\CustomizeMathJax{\newcommand{\smalloiintup}{\mathop{\unicode{x222F}}}}
+\CustomizeMathJax{\newcommand{\smalloiiintup}{\mathop{\unicode{x2230}}}}
+\CustomizeMathJax{\newcommand{\smallvarointclockwiseup}{\mathop{\unicode{x2232}}}}
+\CustomizeMathJax{\newcommand{\smallointctrclockwiseup}{\mathop{\unicode{x2233}}}}
+\CustomizeMathJax{\newcommand{\smallsumintup}{\mathop{\unicode{x2A0B}}}}
+\CustomizeMathJax{\newcommand{\smallfintup}{\mathop{\unicode{x2A0F}}}}
+\CustomizeMathJax{\newcommand{\smallsqintup}{\mathop{\unicode{x2A16}}}}
+%
+\CustomizeMathJax{\newcommand{\iint}{\mathop{\unicode{x222C}}}}
+\CustomizeMathJax{\newcommand{\iiint}{\mathop{\unicode{x222D}}}}
+\CustomizeMathJax{\newcommand{\iiiint}{\mathop{\unicode{x2A0C}}}}
+\CustomizeMathJax{\newcommand{\oiint}{\mathop{\unicode{x222F}}}}
+\CustomizeMathJax{\newcommand{\oiiint}{\mathop{\unicode{x2230}}}}
+\CustomizeMathJax{\newcommand{\varointclockwise}{\mathop{\unicode{x2232}}}}
+\CustomizeMathJax{\newcommand{\ointctrclockwise}{\mathop{\unicode{x2233}}}}
+\CustomizeMathJax{\newcommand{\sumint}{\mathop{\unicode{x2A0B}}}}
+\CustomizeMathJax{\newcommand{\fint}{\mathop{\unicode{x2A0F}}}}
+\CustomizeMathJax{\newcommand{\sqint}{\mathop{\unicode{x2A16}}}}
+%
+\CustomizeMathJax{\let\intsl\int}
+\CustomizeMathJax{\newcommand{\iintsl}{\mathop{\unicode{x222C}}}}
+\CustomizeMathJax{\newcommand{\iiintsl}{\mathop{\unicode{x222D}}}}
+\CustomizeMathJax{\newcommand{\iiiintsl}{\mathop{\unicode{x2A0C}}}}
+\CustomizeMathJax{\let\ointsl\oint}
+\CustomizeMathJax{\newcommand{\oiintsl}{\mathop{\unicode{x222F}}}}
+\CustomizeMathJax{\newcommand{\oiiintsl}{\mathop{\unicode{x2230}}}}
+\CustomizeMathJax{\newcommand{\varointclockwisesl}{\mathop{\unicode{x2232}}}}
+\CustomizeMathJax{\newcommand{\ointctrclockwisesl}{\mathop{\unicode{x2233}}}}
+\CustomizeMathJax{\newcommand{\sumintsl}{\mathop{\unicode{x2A0B}}}}
+\CustomizeMathJax{\newcommand{\fintsl}{\mathop{\unicode{x2A0F}}}}
+\CustomizeMathJax{\newcommand{\sqintsl}{\mathop{\unicode{x2A16}}}}
+%
+\CustomizeMathJax{\let\intup\int}
+\CustomizeMathJax{\newcommand{\iintup}{\mathop{\unicode{x222C}}}}
+\CustomizeMathJax{\newcommand{\iiintup}{\mathop{\unicode{x222D}}}}
+\CustomizeMathJax{\newcommand{\iiiintup}{\mathop{\unicode{x2A0C}}}}
+\CustomizeMathJax{\let\ointup\oint}
+\CustomizeMathJax{\newcommand{\oiintup}{\mathop{\unicode{x222F}}}}
+\CustomizeMathJax{\newcommand{\oiiintup}{\mathop{\unicode{x2230}}}}
+\CustomizeMathJax{\newcommand{\varointclockwiseup}{\mathop{\unicode{x2232}}}}
+\CustomizeMathJax{\newcommand{\ointctrclockwiseup}{\mathop{\unicode{x2233}}}}
+\CustomizeMathJax{\newcommand{\sumintup}{\mathop{\unicode{x2A0B}}}}
+\CustomizeMathJax{\newcommand{\fintup}{\mathop{\unicode{x2A0F}}}}
+\CustomizeMathJax{\newcommand{\sqintup}{\mathop{\unicode{x2A16}}}}
+%
+\CustomizeMathJax{\newcommand{\bigcupdot}{\mathop{\unicode{x2A03}}}}
+\CustomizeMathJax{\newcommand{\bignplus}{%
+ \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x22C2}}}%
+}}
+\CustomizeMathJax{\let\bigcapplus\bignplus}
+\CustomizeMathJax{\newcommand{\bigcupplus}{\mathop{\unicode{x2A04}}}}
+\CustomizeMathJax{\newcommand{\bigsqcap}{\mathop{\unicode{x2A05}}}}
+\CustomizeMathJax{\newcommand{\bigsqcapplus}{%
+ \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x2A05}}}
+}}
+\CustomizeMathJax{\newcommand{\bigsqcupplus}{%
+ \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x2A06}}}
+}}
+\CustomizeMathJax{\newcommand{\bigtimes}{\mathop{\unicode{x2A09}}}}
+\CustomizeMathJax{\let\varprod\bigtimes}
+%
+\CustomizeMathJax{\newcommand{\mappedfrom}{\mathrel{\unicode{x021A4}}}}
+\CustomizeMathJax{\newcommand{\mapsfrom}{\mathrel{\unicode{x021A4}}}}
+\CustomizeMathJax{\newcommand{\longmappedfrom}{\mathrel{\unicode{x027FB}}}}
+%
+\CustomizeMathJax{\newcommand{\Mapsto}{\mathrel{\unicode{x02907}}}}
+\CustomizeMathJax{\newcommand{\Longmapsto}{\mathrel{\unicode{x027FE}}}}
+\CustomizeMathJax{\newcommand{\Mappedfrom}{\mathrel{\unicode{x02906}}}}
+\CustomizeMathJax{\newcommand{\Mapsfrom}{\mathrel{\unicode{x02906}}}}
+\CustomizeMathJax{\newcommand{\Longmappedfrom}{\mathrel{\unicode{x27FD}}}}
+%
+\CustomizeMathJax{\newcommand{\mmapsto}{\mathrel{\unicode{x02905}}}}
+\CustomizeMathJax{\newcommand{\longmmapsto}{\mathrel{\unicode{x02905}}}}
+\CustomizeMathJax{\newcommand{\mmappedfrom}{\mathrel{\unicode{x021A4}}}}% x02B36
+\CustomizeMathJax{\newcommand{\longmmappedfrom}{\mathrel{\unicode{x021A4}}}}% x02B36
+%
+\CustomizeMathJax{\newcommand{\Mmapsto}{\mathrel{\unicode{x02907}}}}
+\CustomizeMathJax{\newcommand{\Longmmapsto}{\mathrel{\unicode{x027FE}}}}
+\CustomizeMathJax{\newcommand{\Mmappedfrom}{\mathrel{\unicode{x02906}}}}
+\CustomizeMathJax{\newcommand{\Longmmappedfrom}{\mathrel{\unicode{x027FD}}}}
+%
+\CustomizeMathJax{\newcommand{\medcirc}{\mathbin{\unicode{x025CB}}}}
+\CustomizeMathJax{\newcommand{\medbullet}{\mathbin{\unicode{x025CF}}}}
+\CustomizeMathJax{\newcommand{\varparallel}{\mathrel{\unicode{x02AFD}}}}
+\CustomizeMathJax{\newcommand{\varparallelinv}{\mathrel{\unicode{x244A}}}}
+\CustomizeMathJax{\newcommand{\nvarparallel}{\mathrel{\LWRoverlaysymbols{-}{\unicode{x02AFD}}}}}
+\CustomizeMathJax{\newcommand{\nvarparallelinv}{\mathrel{\LWRoverlaysymbols{-}{\unicode{x244A}}}}}
+%
+\CustomizeMathJax{\newcommand{\colonapprox}{\mathrel{:\approx}}}
+\CustomizeMathJax{\newcommand{\colonsim}{\mathrel{:\sim}}}
+\CustomizeMathJax{\newcommand{\Colonapprox}{\mathrel{\unicode{x2237}\approx}}}
+\CustomizeMathJax{\newcommand{\Colonsim}{\mathrel{\unicode{x2237}\sim}}}
+%
+\CustomizeMathJax{\newcommand{\multimapinv}{\mathrel{\unicode{x027DC}}}}
+\CustomizeMathJax{\newcommand{\multimapboth}{\mathrel{\unicode{x029DF}}}}
+\CustomizeMathJax{\newcommand{\multimapdot}{{\mathrel{-\!\bullet}}}}
+\CustomizeMathJax{\newcommand{\multimapdotinv}{\mathrel{\bullet\!-}}}
+\CustomizeMathJax{\newcommand{\multimapdotboth}{\mathrel{{\bullet\!\!-\!\!\bullet}}}}
+\CustomizeMathJax{\newcommand{\multimapdotbothA}{\mathrel{\unicode{x022B6}}}}
+\CustomizeMathJax{\newcommand{\multimapdotbothB}{\mathrel{\unicode{x22B7}}}}
+%
+\CustomizeMathJax{\newcommand{\VDash}{\mathrel{\unicode{x22AB}}}}
+\CustomizeMathJax{\newcommand{\VvDash}{\mathrel{\unicode{x22AA}}}}
+%
+\CustomizeMathJax{\newcommand{\preceqq}{\mathrel{\unicode{x02AB3}}}}
+\CustomizeMathJax{\newcommand{\succeqq}{\mathrel{\unicode{x02AB4}}}}
+%
+\CustomizeMathJax{\newcommand{\nprecsim}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0227E}}}}}
+\CustomizeMathJax{\newcommand{\nsuccsim}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0227F}}}}}
+\CustomizeMathJax{\newcommand{\nlesssim}{\mathrel{\unicode{x02274}}}}
+\CustomizeMathJax{\newcommand{\ngtrsim}{\mathrel{\unicode{x02275}}}}
+\CustomizeMathJax{\newcommand{\nlessapprox}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02A85}}}}}
+\CustomizeMathJax{\newcommand{\ngtrapprox}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02A86}}}}}
+%
+\CustomizeMathJax{\newcommand{\npreccurlyeq}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0227C}}}}}
+\CustomizeMathJax{\newcommand{\nsucccurlyeq}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0227D}}}}}
+\CustomizeMathJax{\newcommand{\ngtrless}{\mathrel{\unicode{x02279}}}}
+\CustomizeMathJax{\newcommand{\nlessgtr}{\mathrel{\unicode{x2278}}}}
+\CustomizeMathJax{\newcommand{\nbumpeq}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0224F}}}}}
+\CustomizeMathJax{\newcommand{\nBumpeq}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0224E}}}}}
+%
+\CustomizeMathJax{\newcommand{\nbacksim}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0223D}}}}}
+\CustomizeMathJax{\newcommand{\nbacksimeq}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x022CD}}}}}
+\CustomizeMathJax{\newcommand{\nasymp}{\mathrel{\unicode{x226D}}}}
+\CustomizeMathJax{\newcommand{\nequiv}{\mathrel{\unicode{x2262}}}}
+\CustomizeMathJax{\newcommand{\napprox}{\mathrel{\unicode{x2249}}}}
+%
+\CustomizeMathJax{\newcommand{\nll}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0226A}}}}}
+\CustomizeMathJax{\newcommand{\ngg}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0226B}}}}}
+\CustomizeMathJax{\newcommand{\nthickapprox}{%
+ \mathrel{\LWRoverlaysymbols{/}{{\mathbf{\unicode{x02248}}}}}%
+}}
+\CustomizeMathJax{\newcommand{\napproxeq}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0224A}}}}}
+\CustomizeMathJax{\newcommand{\nprecapprox}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02AB7}}}}}
+\CustomizeMathJax{\newcommand{\nsuccapprox}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02AB8}}}}}
+\CustomizeMathJax{\newcommand{\npreceqq}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02AB3}}}}}
+\CustomizeMathJax{\newcommand{\nsucceqq}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02AB4}}}}}
+\CustomizeMathJax{\newcommand{\nsimeq}{\mathrel{\unicode{x02244}}}}
+%
+\CustomizeMathJax{\newcommand{\nSubset}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x022D0}}}}}
+\CustomizeMathJax{\newcommand{\nSupset}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x022D1}}}}}
+\CustomizeMathJax{\newcommand{\nsqsubseteq}{\mathrel{\unicode{x022E2}}}}
+\CustomizeMathJax{\newcommand{\nsqsupseteq}{\mathrel{\unicode{x022E3}}}}
+%
+\CustomizeMathJax{\newcommand{\coloneqq}{\mathrel{\unicode{x02254}}}}
+\CustomizeMathJax{\newcommand{\eqqcolon}{\mathrel{\unicode{x02255}}}}
+\CustomizeMathJax{\newcommand{\Coloneqq}{\mathrel{\unicode{x02A74}}}}
+\CustomizeMathJax{\newcommand{\Eqqcolon}{\mathrel{=\!\unicode{x2237}}}}
+\CustomizeMathJax{\newcommand{\Coloneq}{\mathrel{\unicode{x2237}-}}}
+\CustomizeMathJax{\newcommand{\Eqcolon}{\mathrel{-\unicode{x2237}}}}
+%
+\CustomizeMathJax{\newcommand{\lvec}[1]{\mathord{\overset{\unicode{x02190}}{#1}}}}
+\CustomizeMathJax{\newcommand{\lrvec}[1]{\mathord{\overset{\unicode{x2194}}{#1}}}}
+\CustomizeMathJax{\newcommand{\harpoonacc}[1]{\mathord{\overset{\unicode{x021C0}}{#1}}}}
+\CustomizeMathJax{\newcommand{\lharpoonacc}[1]{\mathord{\overset{\unicode{x021BC}}{#1}}}}
+\CustomizeMathJax{\newcommand{\lrharpoonacc}[1]{\mathord{\overset{\unicode{x0294E}}{#1}}}}
+\CustomizeMathJax{\newcommand{\barbar}[1]{\mathord{\overset{=}{#1}}}}
+\CustomizeMathJax{\newcommand{\bartilde}[1]{\mathord{\overset{\simeq}{#1}}}}
+\CustomizeMathJax{\newcommand{\barhat}[1]{\mathord{\hat{\bar{#1}}}}}
+\CustomizeMathJax{\newcommand{\tildebar}[1]{\mathord{\overset{\eqsim}{#1}}}}
+\CustomizeMathJax{\newcommand{\tildetilde}[1]{\mathord{\overset{\approx}{#1}}}}
+\CustomizeMathJax{\newcommand{\tildehat}[1]{\mathord{\hat{\tilde{#1}}}}}
+\CustomizeMathJax{\newcommand{\hatbar}[1]{\mathord{\bar{\hat{#1}}}}}
+\CustomizeMathJax{\newcommand{\hattilde}[1]{\mathord{\tilde{\hat{#1}}}}}
+\CustomizeMathJax{\newcommand{\hathat}[1]{\mathord{\hat{\hat{#1}}}}}
+
+\CustomizeMathJax{\newcommand{\cdotB}{\mathord{\boldsymbol{\cdot}}}}
+\CustomizeMathJax{\newcommand{\cdotBB}{\mathord{\unicode{x2022}}}}
+\CustomizeMathJax{\newcommand{\circS}{\boldsymbol{\circ}}}
+\CustomizeMathJax{\newcommand{\bulletSSS}{\bullet}}
+\CustomizeMathJax{\newcommand{\bulletSS}{\mathord{\unicode{x025CF}}}}
+\CustomizeMathJax{\newcommand{\bulletS}{\mathord{\unicode{x02B24}}}}
+\CustomizeMathJax{\newcommand{\primeS}{\prime}}
+
+\CustomizeMathJax{\newcommand{\strictif}{\mathrel{\unicode{x0297D}}}}% right fish tail
+\CustomizeMathJax{\newcommand{\strictfi}{\mathrel{\unicode{x0297C}}}}% left fish tail
+\CustomizeMathJax{\newcommand{\strictiff}{%
+ \mathrel{\unicode{x0297C}\!\!\unicode{x0297D}}%
+}}% left/right fish tails
+\CustomizeMathJax{\newcommand{\invamp}{\mathbin{\unicode{x0214B}}}}
+\CustomizeMathJax{\newcommand{\lbag}{\mathopen{\unicode{x027C5}}}}
+\CustomizeMathJax{\newcommand{\rbag}{\mathclose{\unicode{x027C6}}}}
+\CustomizeMathJax{\newcommand{\Lbag}{\mathopen{\large\unicode{x027C5}}}}
+\CustomizeMathJax{\newcommand{\Rbag}{\mathclose{\large\unicode{x027C6}}}}
+\CustomizeMathJax{\newcommand{\circledless}{\mathrel{\unicode{x029C0}}}}
+\CustomizeMathJax{\newcommand{\circledgtr}{\mathrel{\unicode{x029C1}}}}
+\CustomizeMathJax{\newcommand{\circledwedge}{%
+ \mathbin{\LWRoverlaysymbols{\unicode{x025EF}}{\unicode{x02227}}}%
+}}
+\CustomizeMathJax{\newcommand{\circledvee}{%
+ \mathbin{\LWRoverlaysymbols{\unicode{x025EF}}{\unicode{0x02228}}}%
+}}
+\CustomizeMathJax{\newcommand{\circledbar}{\mathbin{\unicode{x029B6}}}}
+\CustomizeMathJax{\newcommand{\circledbslash}{\mathbin{\unicode{x029B8}}}}
+
+\CustomizeMathJax{\newcommand{\lJoin}{\mathrel{\unicode{x22C9}}}}
+\CustomizeMathJax{\newcommand{\rJoin}{\mathrel{\unicode{x22CA}}}}
+\CustomizeMathJax{\newcommand{\lrJoin}{\mathrel{\unicode{x2A1D}}}}
+\CustomizeMathJax{\newcommand{\openJoin}{\mathrel{\unicode{x2AA4}}}}% overlapping ><
+
+\CustomizeMathJax{\newcommand{\lrtimes}{\mathrel{\unicode{x2A1D}}}}
+\CustomizeMathJax{\newcommand{\opentimes}{\mathrel{\unicode{x2AA4}}}}% overlapping ><
+\CustomizeMathJax{\newcommand{\Diamondblack}{\mathord{\unicode{x025C6}}}}
+\CustomizeMathJax{\newcommand{\nplus}{\mathrel{\LWRoverlaysymbols{+}{\unicode{x02229}}}}}
+\CustomizeMathJax{\newcommand{\nsqsubset}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0228F}}}}}
+\CustomizeMathJax{\newcommand{\nsqsupset}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02290}}}}}
+\CustomizeMathJax{\newcommand{\dasharrow}{\mathrel{\unicode{x021E2}}}}
+\CustomizeMathJax{\newcommand{\dashleftrightarrow}{\mathrel{\unicode{x021E0}\!\unicode{x021E2}}}}
+\CustomizeMathJax{\newcommand{\leftsquigarrow}{\mathrel{\unicode{x021DC}}}}
+\CustomizeMathJax{\newcommand{\ntwoheadrightarrow}{\mathrel{\unicode{x02900}}}}
+\CustomizeMathJax{\newcommand{\ntwoheadleftarrow}{\mathrel{\unicode{x02B34}}}}
+\CustomizeMathJax{\newcommand{\boxast}{\mathbin{\unicode{x029C6}}}}
+\CustomizeMathJax{\newcommand{\boxbslash}{\mathbin{\unicode{x29C5}}}}
+\CustomizeMathJax{\newcommand{\boxbar}{\mathbin{\unicode{x025EB}}}}
+\CustomizeMathJax{\newcommand{\boxslash}{\mathbin{\unicode{x029C4}}}}
+
+\CustomizeMathJax{\newcommand{\Wr}{\mathbin{\unicode{x02240}\!\unicode{x02240}}}}
+
+% defined above:
+% \CustomizeMathJax{\newcommand{\lambdaslash}{\mathord{\unicode{x00023}}}}
+% \CustomizeMathJax{\newcommand{\lambdabar}{\mathord{\unicode{x00023}}}}
+
+\CustomizeMathJax{\newcommand{\varclubsuit}{\mathord{\unicode{x02667}}}}
+\CustomizeMathJax{\newcommand{\vardiamondsuit}{\mathord{\unicode{x02666}}}}
+\CustomizeMathJax{\newcommand{\varheartsuit}{\mathord{\unicode{x02665}}}}
+\CustomizeMathJax{\newcommand{\varspadesuit}{\mathord{\unicode{x02664}}}}
+
+\CustomizeMathJax{\newcommand{\Nearrow}{\mathrel{\unicode{x021D7}}}}
+\CustomizeMathJax{\newcommand{\Searrow}{\mathrel{\unicode{x021D8}}}}
+\CustomizeMathJax{\newcommand{\Nwarrow}{\mathrel{\unicode{x021D6}}}}
+\CustomizeMathJax{\newcommand{\Swarrow}{\mathrel{\unicode{x021D9}}}}
+\CustomizeMathJax{\newcommand{\Top}{\mathord{\unicode{x02AEA}}}}
+\CustomizeMathJax{\newcommand{\Bot}{\mathord{\unicode{x02AEB}}}}
+
+\CustomizeMathJax{\newcommand{\leadstoext}{\mathrel{\unicode{xFF5E}}}}
+
+\CustomizeMathJax{\newcommand{\sqcupplus}{\mathbin{\LWRoverlaysymbols{+}{\unicode{x02294}}}}}
+\CustomizeMathJax{\newcommand{\sqcapplus}{\mathbin{\LWRoverlaysymbols{+}{\unicode{x02293}}}}}
+
+\CustomizeMathJax{\newcommand{\boxright}{\mathrel{\unicode{x025A1}\!\unicode{x02192}}}}
+\CustomizeMathJax{\newcommand{\boxleft}{\mathrel{\unicode{x02190}\!\unicode{x025A1}}}}
+\CustomizeMathJax{\newcommand{\boxdotright}{\mathrel{\unicode{x022A1}\!\unicode{x02192}}}}
+\CustomizeMathJax{\newcommand{\boxdotleft}{\mathrel{\unicode{x02190}\!\unicode{x022A1}}}}
+
+\CustomizeMathJax{\newcommand{\Diamondright}{\mathrel{\unicode{x025C7}\!\unicode{x02192}}}}
+\CustomizeMathJax{\newcommand{\Diamondleft}{\mathrel{\unicode{x02190}\!\unicode{x025C7}}}}
+\CustomizeMathJax{\newcommand{\Diamonddotright}{\mathrel{\unicode{x027D0}\!\unicode{x02192}}}}
+\CustomizeMathJax{\newcommand{\Diamonddotleft}{\mathrel{\unicode{x02190}\!\unicode{x027D0}}}}
+
+\CustomizeMathJax{\newcommand{\boxRight}{\mathrel{\unicode{x025A1}\!\unicode{x021D2}}}}
+\CustomizeMathJax{\newcommand{\boxLeft}{\mathrel{\unicode{x021D0}\!\unicode{x025A1}}}}
+\CustomizeMathJax{\newcommand{\boxdotRight}{\mathrel{\unicode{x022A1}\!\unicode{x021D2}}}}
+\CustomizeMathJax{\newcommand{\boxdotLeft}{\mathrel{\unicode{x021D0}\!\unicode{x022A1}}}}
+
+\CustomizeMathJax{\newcommand{\DiamondRight}{\mathrel{\unicode{x025C7}\!\unicode{x021D2}}}}
+\CustomizeMathJax{\newcommand{\DiamondLeft}{\mathrel{\unicode{x021D0}\!\unicode{x025C7}}}}
+\CustomizeMathJax{\newcommand{\DiamonddotRight}{\mathrel{\unicode{x027D0}\!\unicode{x021D2}}}}
+\CustomizeMathJax{\newcommand{\DiamonddotLeft}{\mathrel{\unicode{x021D0}\!\unicode{x027D0}}}}
+\CustomizeMathJax{\newcommand{\Diamonddot}{\mathrel{\unicode{x027D0}}}}
+
+\CustomizeMathJax{\newcommand{\circleright}{\mathrel{\unicode{x025CB}\!\unicode{x02192}}}}
+\CustomizeMathJax{\newcommand{\circleleft}{\mathrel{\unicode{x02190}\!\unicode{x025CB}}}}
+\CustomizeMathJax{\newcommand{\circledotright}{\mathrel{\unicode{x02299}\!\unicode{x02192}}}}
+\CustomizeMathJax{\newcommand{\circledotleft}{\mathrel{\unicode{x02190}\!\unicode{x02299}}}}
+\CustomizeMathJax{\let\circleddotright\circledotright}
+\CustomizeMathJax{\let\circleddotleft\circledotleft}
+
+\CustomizeMathJax{\newcommand{\multimapbothvert}{%
+ \mathrel{\overset{\unicode{x025CB}}{\underset{\unicode{x025CB}}{|}}}%
+}}
+\CustomizeMathJax{\newcommand{\multimapdotbothvert}{%
+ \mathrel{\overset{\unicode{x025CF}}{\underset{\unicode{x025CF}}{|}}}%
+}}
+\CustomizeMathJax{\newcommand{\multimapdotbothBvert}{%
+ \mathrel{\overset{\unicode{x025CF}}{\underset{\unicode{x025CB}}{|}}}%
+}}
+\CustomizeMathJax{\newcommand{\multimapdotbothAvert}{%
+ \mathrel{\overset{\unicode{x025CB}}{\underset{\unicode{x025CF}}{|}}}%
+}}
+
+\CustomizeMathJax{\newcommand{\dlb}{\mathopen{\unicode{x027E6}}}}
+\CustomizeMathJax{\newcommand{\drb}{\mathopen{\unicode{x027E7}}}}
+
+% * \marg{2: prefix} \marg{3: postfix} \marg{4: i/u: italic/upright}
+\LWR@mathjax@addgreek@u@up*{}{up}
+\LWR@mathjax@addgreek@u@up*{up}{}
+\LWR@mathjax@addgreek@l@up{up}{}
+\LWR@mathjax@addgreek@l@up{}{up}
+\LWR@mathjax@addgreek@u@it*{}{it}
+\LWR@mathjax@addgreek@l@it{}{it}
+
+% only newtxmath, not newpxmath:
+\LWR@mathjax@addgreek@u@it*{it}{}
+\LWR@mathjax@addgreek@l@it{it}{}
+
+\CustomizeMathJax{\newcommand{\varg}{g}}
+\CustomizeMathJax{\newcommand{\vary}{y}}
+\CustomizeMathJax{\newcommand{\varv}{v}}
+\CustomizeMathJax{\newcommand{\varw}{w}}
+
+\CustomizeMathJax{\newcommand{\nexistsAlt}{\mathord{\unicode{x02204}}}}
+\CustomizeMathJax{\newcommand{\existsAlt}{\mathord{\unicode{x02203}}}}
+\CustomizeMathJax{\newcommand{\forallAlt}{\mathord{\unicode{x02200}}}}
+\CustomizeMathJax{\newcommand{\emptysetAlt}{\mathord{\unicode{x02205}}}}
+
+\CustomizeMathJax{\newcommand{\uppartial}{\mathord{\unicode{x02202}}}}
+
+\CustomizeMathJax{\let\varmathbb\mathbb}
+\CustomizeMathJax{\let\vmathbb\mathbb}
+\CustomizeMathJax{\let\vvmathbb\mathbb}
+
+\CustomizeMathJax{\let\smallprod\prod}
+\CustomizeMathJax{\let\smallsum\sum}
+\CustomizeMathJax{\let\smallcoprod\coprod}
+
+\CustomizeMathJax{\newcommand{\openbox}{\mathord{\unicode{x25FD}}}}
+\CustomizeMathJax{\let\textsquare\openbox}
+
+% only newtxmath, not newpxmath:
+\ifdef{\iftx@BI}{
+ \iftx@BI
+ \LWR@mathjax@addlatin@u@bfit{BI}
+ \LWR@mathjax@addlatin@l@bfit{BI}
+ \fi
+}{}
+
+% for newpxmath:
+\CustomizeMathJax{\newcommand{\mathsterling}{\mathord{\unicode{x000A3}}}}
+\CustomizeMathJax{\newcommand{\mathcent}{\mathord{\unicode{x000A2}}}}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</common-mathjax-newpxtxmath>
+% \fi
+%
+%
+%
+%
+%
+% ^^A *common-mathjax-overlaysymbols
+%
+% \iffalse
+%<*common-mathjax-overlaysymbols>
+% \fi
+%
+% \part{lwarp-common-mathjax-overlaysymbols.sty}
+%
+% \section{common-mathjax-overlaysymbols}
+%
+% \DescribePackage{lwarp-common-mathjax-overlaysymbols}
+% Common code used by a number of packages to overlay two symbols
+% for \brand{MathJax}.
+%
+% \changes{v0.89}{2020/08/17}{\pkg{lwarp-common-mathjax-overlaysymbols}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\ProvidesPackage{lwarp-common-mathjax-overlaysymbols}[2020/08/17]
+% \end{macrocode}
+%
+% \noindmacro{\LWRoverlaysymbols} \marg{symbol} \marg{symbol}
+%
+% Overlays one symbol over another.
+% \begin{macrocode}
+\begin{warpMathJax}
+
+\CustomizeMathJax{\newcommand{\LWRoverlaysymbols}[2]{%
+ \mathord{%
+ \smash{%
+ \mathop{#2\strut}%
+ \limits^{\smash{\lower3ex{#1}}}%
+ }%
+ \strut%
+ }%
+}}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+%
+% \iffalse
+%</common-mathjax-overlaysymbols>
+% \fi
+%
+%
+%
+%
% \addtocontents{toc}{\protect\setcounter{tocdepth}{4}}
%
%
diff --git a/macros/latex/contrib/lwarp/lwarp.ins b/macros/latex/contrib/lwarp/lwarp.ins
index e0d03f6bff..c3e4c7d0e6 100644
--- a/macros/latex/contrib/lwarp/lwarp.ins
+++ b/macros/latex/contrib/lwarp/lwarp.ins
@@ -40,6 +40,7 @@ version 2005/12/01 or later.
\file{lwarp-a5comb.sty}{\from{lwarp.dtx}{a5comb}}
\file{lwarp-abstract.sty}{\from{lwarp.dtx}{abstract}}
\file{lwarp-academicons.sty}{\from{lwarp.dtx}{academicons}}
+\file{lwarp-accents.sty}{\from{lwarp.dtx}{accents}}
\file{lwarp-accessibility.sty}{\from{lwarp.dtx}{accessibility}}
\file{lwarp-accsupp.sty}{\from{lwarp.dtx}{accsupp}}
\file{lwarp-acro.sty}{\from{lwarp.dtx}{acro}}
@@ -97,6 +98,7 @@ version 2005/12/01 or later.
\file{lwarp-cancel.sty}{\from{lwarp.dtx}{cancel}}
\file{lwarp-canoniclayout.sty}{\from{lwarp.dtx}{canoniclayout}}
\file{lwarp-caption.sty}{\from{lwarp.dtx}{caption}}
+\file{lwarp-caption3.sty}{\from{lwarp.dtx}{caption3}}
\file{lwarp-cases.sty}{\from{lwarp.dtx}{cases}}
\file{lwarp-centernot.sty}{\from{lwarp.dtx}{centernot}}
\file{lwarp-changebar.sty}{\from{lwarp.dtx}{changebar}}
@@ -230,7 +232,9 @@ version 2005/12/01 or later.
\file{lwarp-gridset.sty}{\from{lwarp.dtx}{gridset}}
\file{lwarp-hang.sty}{\from{lwarp.dtx}{hang}}
\file{lwarp-hanging.sty}{\from{lwarp.dtx}{hanging}}
+\file{lwarp-hepunits.sty}{\from{lwarp.dtx}{hepunits}}
\file{lwarp-hhline.sty}{\from{lwarp.dtx}{hhline}}
+\file{lwarp-hhtensor.sty}{\from{lwarp.dtx}{hhtensor}}
\file{lwarp-hypbmsec.sty}{\from{lwarp.dtx}{hypbmsec}}
\file{lwarp-hypcap.sty}{\from{lwarp.dtx}{hypcap}}
\file{lwarp-hypdestopt.sty}{\from{lwarp.dtx}{hypdestopt}}
@@ -280,9 +284,13 @@ version 2005/12/01 or later.
\file{lwarp-marginfix.sty}{\from{lwarp.dtx}{marginfix}}
\file{lwarp-marginnote.sty}{\from{lwarp.dtx}{marginnote}}
\file{lwarp-marvosym.sty}{\from{lwarp.dtx}{marvosym}}
+\file{lwarp-mathalpha.sty}{\from{lwarp.dtx}{mathalpha}}
\file{lwarp-mathcomp.sty}{\from{lwarp.dtx}{mathcomp}}
+\file{lwarp-mathdesign.sty}{\from{lwarp.dtx}{mathdesign}}
\file{lwarp-mathdots.sty}{\from{lwarp.dtx}{mathdots}}
\file{lwarp-mathfixs.sty}{\from{lwarp.dtx}{mathfixs}}
+\file{lwarp-mathpazo.sty}{\from{lwarp.dtx}{mathpazo}}
+\file{lwarp-mathptmx.sty}{\from{lwarp.dtx}{mathptmx}}
\file{lwarp-mathtools.sty}{\from{lwarp.dtx}{mathtools}}
\file{lwarp-mcaption.sty}{\from{lwarp.dtx}{mcaption}}
\file{lwarp-mdframed.sty}{\from{lwarp.dtx}{mdframed}}
@@ -297,6 +305,7 @@ version 2005/12/01 or later.
\file{lwarp-minibox.sty}{\from{lwarp.dtx}{minibox}}
\file{lwarp-minitoc.sty}{\from{lwarp.dtx}{minitoc}}
\file{lwarp-mismath.sty}{\from{lwarp.dtx}{mismath}}
+\file{lwarp-mleftright.sty}{\from{lwarp.dtx}{mleftright}}
\file{lwarp-morefloats.sty}{\from{lwarp.dtx}{morefloats}}
\file{lwarp-moreverb.sty}{\from{lwarp.dtx}{moreverb}}
\file{lwarp-movie15.sty}{\from{lwarp.dtx}{movie15}}
@@ -317,6 +326,9 @@ version 2005/12/01 or later.
\file{lwarp-nccfoots.sty}{\from{lwarp.dtx}{nccfoots}}
\file{lwarp-nccmath.sty}{\from{lwarp.dtx}{nccmath}}
\file{lwarp-needspace.sty}{\from{lwarp.dtx}{needspace}}
+\file{lwarp-newpxmath.sty}{\from{lwarp.dtx}{newpxmath}}
+\file{lwarp-newtxmath.sty}{\from{lwarp.dtx}{newtxmath}}
+\file{lwarp-newtxsf.sty}{\from{lwarp.dtx}{newtxsf}}
\file{lwarp-nextpage.sty}{\from{lwarp.dtx}{nextpage}}
\file{lwarp-nfssext-cfr.sty}{\from{lwarp.dtx}{nfssext-cfr}}
\file{lwarp-nicefrac.sty}{\from{lwarp.dtx}{nicefrac}}
@@ -378,6 +390,7 @@ version 2005/12/01 or later.
\file{lwarp-pstricks.sty}{\from{lwarp.dtx}{pstricks}}
\file{lwarp-pxatbegshi.sty}{\from{lwarp.dtx}{pxatbegshi}}
\file{lwarp-pxeveryshi.sty}{\from{lwarp.dtx}{pxeveryshi}}
+\file{lwarp-pxfonts.sty}{\from{lwarp.dtx}{pxfonts}}
\file{lwarp-pxftnright.sty}{\from{lwarp.dtx}{pxftnright}}
\file{lwarp-pxjahyper.sty}{\from{lwarp.dtx}{pxjahyper}}
\file{lwarp-quotchap.sty}{\from{lwarp.dtx}{quotchap}}
@@ -417,6 +430,7 @@ version 2005/12/01 or later.
\file{lwarp-showidx.sty}{\from{lwarp.dtx}{idx}}
\file{lwarp-showkeys.sty}{\from{lwarp.dtx}{showkeys}}
\file{lwarp-showtags.sty}{\from{lwarp.dtx}{showtags}}
+\file{lwarp-shuffle.sty}{\from{lwarp.dtx}{shuffle}}
\file{lwarp-sidecap.sty}{\from{lwarp.dtx}{sidecap}}
\file{lwarp-sidenotes.sty}{\from{lwarp.dtx}{sidenotes}}
\file{lwarp-SIunits.sty}{\from{lwarp.dtx}{SIunits}}
@@ -463,6 +477,7 @@ version 2005/12/01 or later.
\file{lwarp-thm-listof.sty}{\from{lwarp.dtx}{thm-listof}}
\file{lwarp-thm-restate.sty}{\from{lwarp.dtx}{thm-restate}}
\file{lwarp-thmbox.sty}{\from{lwarp.dtx}{thmbox}}
+\file{lwarp-thmtools.sty}{\from{lwarp.dtx}{thmtools}}
\file{lwarp-threadcol.sty}{\from{lwarp.dtx}{threadcol}}
\file{lwarp-threeparttable.sty}{\from{lwarp.dtx}{threeparttable}}
\file{lwarp-threeparttablex.sty}{\from{lwarp.dtx}{threeparttablex}}
@@ -490,6 +505,7 @@ version 2005/12/01 or later.
\file{lwarp-truncate.sty}{\from{lwarp.dtx}{truncate}}
\file{lwarp-turnthepage.sty}{\from{lwarp.dtx}{turnthepage}}
\file{lwarp-twoup.sty}{\from{lwarp.dtx}{twoup}}
+\file{lwarp-txfonts.sty}{\from{lwarp.dtx}{txfonts}}
\file{lwarp-typearea.sty}{\from{lwarp.dtx}{typearea}}
\file{lwarp-typicons.sty}{\from{lwarp.dtx}{typicons}}
\file{lwarp-ulem.sty}{\from{lwarp.dtx}{ulem}}
@@ -498,8 +514,10 @@ version 2005/12/01 or later.
\file{lwarp-unicode-math.sty}{\from{lwarp.dtx}{unicode-math}}
\file{lwarp-units.sty}{\from{lwarp.dtx}{units}}
\file{lwarp-unitsdef.sty}{\from{lwarp.dtx}{unitsdef}}
+\file{lwarp-upgreek.sty}{\from{lwarp.dtx}{upgreek}}
\file{lwarp-upref.sty}{\from{lwarp.dtx}{upref}}
\file{lwarp-url.sty}{\from{lwarp.dtx}{url}}
+\file{lwarp-ushort.sty}{\from{lwarp.dtx}{ushort}}
\file{lwarp-uspace.sty}{\from{lwarp.dtx}{uspace}}
\file{lwarp-varioref.sty}{\from{lwarp.dtx}{varioref}}
\file{lwarp-verse.sty}{\from{lwarp.dtx}{verse}}
@@ -538,6 +556,9 @@ version 2005/12/01 or later.
\file{lwarp-patch-komascript.sty}{\from{lwarp.dtx}{patch-komascript}}
\file{lwarp-patch-memoir.sty}{\from{lwarp.dtx}{patch-memoir}}
\file{lwarp-common-multimedia.sty}{\from{lwarp.dtx}{common-multimedia}}
+\file{lwarp-common-mathjax-letters.sty}{\from{lwarp.dtx}{common-mathjax-letters}}
+\file{lwarp-common-mathjax-newpxtxmath.sty}{\from{lwarp.dtx}{common-mathjax-newpxtxmath}}
+\file{lwarp-common-mathjax-overlaysymbols.sty}{\from{lwarp.dtx}{common-mathjax-overlaysymbols}}
}
\Msg{*********************************************************}
\Msg{*}
diff --git a/macros/latex/contrib/lwarp/lwarp.pdf b/macros/latex/contrib/lwarp/lwarp.pdf
index b935c1803e..dd84ba9fdc 100644
--- a/macros/latex/contrib/lwarp/lwarp.pdf
+++ b/macros/latex/contrib/lwarp/lwarp.pdf
Binary files differ
diff --git a/macros/latex/contrib/lwarp/lwarpmk.lua b/macros/latex/contrib/lwarp/lwarpmk.lua
index fe4396c13f..18c1b40443 100755
--- a/macros/latex/contrib/lwarp/lwarpmk.lua
+++ b/macros/latex/contrib/lwarp/lwarpmk.lua
@@ -2,7 +2,7 @@
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.88"
+printversion = "v0.89"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -32,7 +32,7 @@ lwarpmk pdftohtml [-p project]:
lwarpmk pdftosvg <list of file names>: Converts each PDF file to SVG.
lwarpmk epstopdf <list of file names>: Converts each EPS file to PDF.
lwarpmk clean [-p project]: Remove *.aux, *.toc, *.lof/t,
- *.idx, *.ind, *.log, *_html_inc.*, .gl*,
+ *.idx, *.ind, *.bbl, *.log, *_html_inc.*, .gl*,
*_html.pdf, *_html.html, *_html.sidetoc
lwarpmk cleanall [-p project]: Remove auxiliary files, project.pdf, *.html
lwarpmk cleanlimages: Removes all images from the "lateximages" directory.
@@ -386,6 +386,7 @@ os.execute ( rmname .. " *.aux " ..
sourcename ..".toc " .. sourcename .. "_html.toc " ..
sourcename ..".lof " .. sourcename .. "_html.lof " ..
sourcename ..".lot " .. sourcename .. "_html.lot " ..
+ sourcename ..".bbl " .. sourcename .. "_html.bbl " ..
" *.idx " ..
" *.ind " ..
sourcename ..".ps " .. sourcename .."_html.ps " ..
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index bddd1a53c0..1b03c3ddec 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 7ea4ab69f8..ede56a3b74 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -123,7 +123,7 @@ classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller).
\bigskip
Cette extension nécessite et charge les extensions \pkg{l3keys2e}, \pkg{xparse}, \pkg{array}, \pkg{amsmath} et
\pkg{pgfcore} ainsi que le module \pkg{shapes} de \textsc{pgf} (l'extension \pkg{tikz}, qui est une surcouche de
-\textsc{pgf} n'est \emph{pas} chargée). L'utilisateur final n'a qu'à charger l'extension \pkg{nicematrix} avec
+\textsc{pgf}, n'est \emph{pas} chargée). L'utilisateur final n'a qu'à charger l'extension \pkg{nicematrix} avec
l'instruction habituelle : |\usepackage{nicematrix}|.
@@ -368,7 +368,7 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
\bigskip
-\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip On peut aussi utiliser la clé
+\colorbox{yellow!30}{\textbf{Nouveau 5.2}}\enskip On peut aussi utiliser la clé
|baseline| pour aligner une matrice sur un filet horizontal (tracé par
|\hline|). On doit pour cela donner la valeur |line-|\textsl{i} où \textsl{i}
est le numéro de la rangée qui suit ce filet horizontal.
@@ -476,6 +476,9 @@ Rang & 1A & 1B & 1C & 2A & 2B & 2C \\
\end{NiceTabular}
\end{center}
+\interitem
+\colorbox{yellow!50}{\textbf{Nouveau 5.3}}\enskip La commande |\Block| accepte
+les options |l|, |c| et |r| pour le placement horizontal.
\interitem
On peut aussi utiliser la commande |\Block| dans des matrices mathématiques.
@@ -561,7 +564,7 @@ Marie & Pauline \\ \hline
\bigskip
-\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip En revanche, les filets
+\colorbox{yellow!30}{\textbf{Nouveau 5.2}}\enskip En revanche, les filets
verticaux ne sont pas tracés à l'intérieur des blocs.
@@ -807,7 +810,7 @@ Comme on le voit, un «coin vide» est constitué de la réunion de tous les
rectangles vides partant de la case située exactement dans le coin.
\bigskip
-\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip On peut passer en argument de
+\colorbox{yellow!30}{\textbf{Nouveau 5.2}}\enskip On peut passer en argument de
|\hvlines-except-corners| une liste de coins à prendre en considération. Les
coins étant désignés par |NW|, |SW|, |NE| et |SE| (\emph{north west},
\emph{south west}, \emph{north east} et \emph{south east}).
@@ -1132,8 +1135,8 @@ Estelle & 15
\end{scope}
\bigskip
-\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip Il existe une option |respect-blocks|
-pour la commande |\rowcolor|. Avec cette option, les ``rangées'' colorées
+\colorbox{yellow!30}{\textbf{Nouveau 5.2}}\enskip Il existe une option |respect-blocks|
+pour la commande |\rowcolors|. Avec cette option, les ``rangées'' colorées
alternativement peuvent s'étendre sur plusieurs rangées réelles du tableau pour
englober les blocs.
@@ -1141,30 +1144,32 @@ englober les blocs.
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-\begin{NiceTabular}{cr}[hvlines,code-before =
+\begin{NiceTabular}{lr}[hvlines,code-before =
~emphase#\rowcolors{1}{blue!10}{}[respect-blocks]@]
-\Block{2-1}{Pierre} & 12 \\
- & 13 \\
+\Block[l]{2-1}{Pierre} & 12 \\
+ & 13 \\
Jacques & 8 \\
-\Block{3-1}{Stéphanie} & 18 \\
- & 17 \\
- & 15 \\
+\hphantom{Stéphanie}
+\Block[l]{3-1}{Stéphanie} & 18 \\
+ & 17 \\
+ & 15 \\
Amélie & 20 \\
Henri & 14 \\
-\Block{2-1}{Estelle} & 15 \\
- & 19
+\Block[l]{2-1}{Estelle} & 15 \\
+ & 19
\end{NiceTabular}
\end{BVerbatim}
-\begin{NiceTabular}{cr}[hvlines,code-before = \rowcolors{1}{blue!10}{}[respect-blocks],baseline=c]
-\Block{2-1}{Pierre} & 12 \\
+\begin{NiceTabular}{lr}[hvlines,code-before = \rowcolors{1}{blue!10}{}[respect-blocks],baseline=c]
+\Block[l]{2-1}{Pierre} & 12 \\
& 13 \\
Jacques & 8 \\
-\Block{3-1}{Stéphanie} & 18 \\
+\hphantom{Stéphanie}
+\Block[l]{3-1}{Stéphanie} & 18 \\
& 17 \\
& 15 \\
Amélie & 20 \\
Henri & 14 \\
-\Block{2-1}{Estelle} & 15 \\
+\Block[l]{2-1}{Estelle} & 15 \\
& 19
\end{NiceTabular}
\end{scope}
@@ -1210,7 +1215,7 @@ On remarquera que ces commandes sont compatibles avec les commandes de
\begin{NiceTabular}{lSSSS}%
[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
~emphase#\toprule@
-\Block{2-1}{Produit} \\
+\Block{2-1}{Produit} &
\Block{1-3}{dimensions (cm)} & & &
\Block{2-1}{\rotate Prix} \\
~emphase#\cmidrule(rl){2-4}@
@@ -1259,14 +1264,15 @@ On a alors accès aux trois commandes suivantes :
\item |\rowcolor| à utiliser dans une case et qui colorie le reste de la rangée
;
\item |\columncolor| à utiliser dans le préambule de la même manière que la
-commande éponyme de \pkg{colortbl}\footnote{Contrairement à la commande
+commande éponyme de \pkg{colortbl} (néanmoins, contrairement à la commande
|\columncolor| de \pkg{colortbl}, celle-ci peut apparaître à l'intérieur d'une
-autre commande, elle-même utilisée dans le préambule.}.
+autre commande, elle-même utilisée dans le préambule).
\end{itemize}
\medskip
\begin{Verbatim}
-\begin{NiceTabular}[colortbl-like]{*{2}{>{~emphase#\columncolor{blue!15}@}c}c}
+\NewDocumentCommand { \Blue } { } { ~emphase#\columncolor{blue!15}@ }
+\begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
\toprule
~emphase#\rowcolor{red!15}@
Nom & Prénom & Année de naissance \\
@@ -1281,7 +1287,8 @@ Dupont & Chantal & 15 janvier 1998 \\
\begin{center}
-\begin{NiceTabular}[colortbl-like]{*{2}{>{\columncolor{blue!15}}c}c}
+\NewDocumentCommand { \Blue } { } { \columncolor{blue!15} }
+\begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
\toprule
\rowcolor{red!15}
Nom & Prénom & Année de naissance \\
@@ -1301,8 +1308,8 @@ Chacune de ces instructions |\cellcolor|, |\rowcolor| ou |\columncolor|
(utilisée hors du |code-before|) produit une instruction |fill| (codée |f|) dans
le \textsc{pdf} final. En cas de juxtaposition de rectangles de même couleur,
une fine ligne blanche peut donc apparaître dans certains lecteurs de
-\textsc{pdf}\footnote{Par exemple SumatraPDF v3.1.2, qui utilise MuPDF de Artifex
- Software, dont le moteur de rendu \textsc{pdf} est appelé Fitz.} (entre les
+\textsc{pdf}\footnote{Par exemple SumatraPDF, qui utilise MuPDF de Artifex
+ Software, ou PDF.js utilisé par Firefox.} (entre les
deux premières colonnes dans l'exemple ci-dessus). Pour éviter cela, il convient
d'utiliser les outils proposés dans le |code-before|. C'est ce que l'on fait
dans le codage qui suit.
@@ -1923,14 +1930,15 @@ C[a_n^{(p)},a_1] & \Cdots & C[a_n^{(p)},a_n] & & C[a_n^{(p)},a_1^{(p)}] & \Cdots
\subsection{Comment créer les lignes en pointillés de manière transparente}
-L'extension \pkg{nicematrix} fournit une option appelée |transparent| qui permet
-d'utiliser du code existant de manière transparente dans les environnements de
-l'\pkg{amsmath} : |{matrix}|, |{pmatrix}|, etc. En fait, cette option est un
-alias pour la conjonction de deux options : |renew-dots| et
+Si on a un document déjà tapé qui contient un grand nombre de matrices avec des
+points de suspension, on peut souhaiter utiliser les lignes pointillées de
+\pkg{nicematrix} sans avoir à modifier chaque matrice. Pour cela,
+\pkg{nicematrix} propose deux options |renew-dots| et
|renew-matrix|.\footnote{Comme toutes les autres options, les options
- |renew-dots|, |renew-matrix| et |transparent| peuvent être fixées avec la
- commande |\NiceMatrixOptions|, mais elles peuvent aussi être passées en option
- du |\usepackage| (ce sont les trois seules).}
+ |renew-dots|, |renew-matrix| peuvent être fixées avec la commande
+ |\NiceMatrixOptions|, mais elles peuvent aussi être passées en option du
+ |\usepackage|. Remarquons que la clé |transparent| est un alias, considéré
+ comme obsolète, pour la conjonction des clés |renew-dots| et |renew-matrix|.}
\smallskip
@@ -1951,14 +1959,14 @@ Avec cette option, l'environnement |{matrix}| est redéfini et se comporte comme
\end{itemize}
\bigskip
-Par conséquent, avec l'option |transparent|, un code classique donne directement
+Par conséquent, avec les options |renew-dots| et |renew-matrix|, un code classique donne directement
le résultat fourni par \pkg{nicematrix}.\par\nobreak
\bigskip
\begin{scope}
-\NiceMatrixOptions{transparent}
+\NiceMatrixOptions{renew-dots,renew-matrix}
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-~emphase#\NiceMatrixOptions{transparent}@
+~emphase#\NiceMatrixOptions{renew-dots,renew-matrix}@
\begin{pmatrix}
1 & \cdots & \cdots & 1 \\
0 & \ddots & & \vdots \\
@@ -2404,7 +2412,7 @@ séparés par des virgules quand on utilise plusieurs commandes |\tabularnote|
successivement. Le marqueur |#1| est censé correspondre à un nom de compteur
LaTeX.
-Valeur initiale : |\emph{\alph{#1}}|
+Valeur initiale : |\textit{\alph{#1}}|
Une autre valeur possible pourrait être tout simplement |\arabic{#1}|
@@ -2490,12 +2498,13 @@ Pour un exemple de personnalisation des notes de tableau, voir p.~\pageref{ex:no
\subsection{Utilisation de \{NiceTabular\} avec threeparttable}
-Si vous souhaitez utiliser l'environnement |{NiceTabular}| dans un environnement
-|{threeparttable}| de l'extension éponyme, vous devez patcher l'environnement
-|{threeparttable}| avec le code suivant.
+Si vous souhaitez utiliser l'environnement |{NiceTabular}| ou |{NiceTAbular*}|
+dans un environnement |{threeparttable}| de l'extension éponyme, vous devez
+patcher |{threeparttable}| avec le code suivant.
\begin{Verbatim}[commandchars=\~\#\!]
\makeatletter
-\AtBeginEnvironment{threeparttable}{\TPT@hookin{NiceTabular}}
+\AtBeginEnvironment{threeparttable}
+ {\TPT@hookin{NiceTabular}\TPT@hookin{NiceTabular*}}
\makeatother
\end{Verbatim}
@@ -3204,7 +3213,7 @@ L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\foot
publique alors que toute variable dont le nom débute par |\g__nicematrix| ou
par |\l__nicematrix| est privée.} :
\begin{itemize}
-\item \colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip |\g_nicematrix_code_before_tl| ;
+\item \colorbox{yellow!30}{\textbf{Nouveau 5.2}}\enskip |\g_nicematrix_code_before_tl| ;
\item |\g_nicematrix_code_after_tl|.
\end{itemize}
@@ -3421,10 +3430,14 @@ a+b & \Ddots & & \Vdots \\
a+b & \Cdots & a+b & 1
\end{pNiceMatrix}$
-
-
\end{scope}
+\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.3}}\enskip On peut choisir l'instruction
+ |\Ddots| qui sera tracée en premier (et qui servira pour tracer les suivantes
+ quand la parallélisation est activée) avec la clé |draw-first| :
+ |\Ddots[draw-first]|.
+
\subsection{Les cases «vides»}
\label{empty-cells}
@@ -4268,12 +4281,24 @@ L_i & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} \\
\draw [color = gray] (A-3-3) to [bend left] (B-3-3) ;
\end{tikzpicture}
+
+\newpage
+
\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.
+\bigskip
+Les versions successives du fichier |nicematrix.sty| fournies par
+TeXLive sont disponibles sur le serveur \textsc{svn} de TeXLive :
+
+{
+\small
+\url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}
+}
+
\end{document}
% Local Variables:
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index 10e84b7b07..03a6705cd3 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{5.2}
-\def\myfiledate{2020/08/19}
+\def\myfileversion{5.3}
+\def\myfiledate{2020/09/03}
%
%
%<*batchfile>
@@ -409,7 +409,7 @@ version 2005/12/01 or later.
% \end{minipage}
%
% \bigskip
-% \colorbox{yellow!50}{\textbf{New 5.2}}\enskip It's also possible to use the
+% \colorbox{yellow!30}{\textbf{New 5.2}}\enskip It's also possible to use the
% key |baseline| to align a matrix on an horizontal rule (drawn by |\hline|). In
% this aim, one should give the value |line-|\textsl{i} where \textsl{i} is the
% number of the row following the horizontal rule.
@@ -518,6 +518,11 @@ version 2005/12/01 or later.
% \end{center}
%
%
+% \interitem
+% \colorbox{yellow!50}{\textbf{New 5.3}}\enskip
+%
+% It's possible to use with the command |\Block| the options |l|, |r| and |c|
+% for the horizontal positionning.
%
%
% \interitem
@@ -603,7 +608,7 @@ version 2005/12/01 or later.
%
%
% \bigskip
-% \colorbox{yellow!50}{\textbf{New 5.2}}\enskip However, the vertical rules are
+% \colorbox{yellow!30}{\textbf{New 5.2}}\enskip However, the vertical rules are
% not drawn in the blocks.
%
% \bigskip
@@ -837,7 +842,7 @@ version 2005/12/01 or later.
% rectangles starting from the cell actually in the corner of the array.
%
% \bigskip
-% \colorbox{yellow!50}{\textbf{New 5.2}}\enskip It's possible to give as value to the
+% \colorbox{yellow!30}{\textbf{New 5.2}}\enskip It's possible to give as value to the
% key |\hvlines-except-corners| a list of the corners to take into
% consideration. The corners are designed by |NW|, |SW|, |NE| and |SE|
% (\emph{north west}, \emph{south west}, \emph{north east} and \emph{south
@@ -1155,38 +1160,38 @@ version 2005/12/01 or later.
% \end{scope}
%
% \bigskip
-% \colorbox{yellow!50}{\textbf{New 5.2}}\enskip There is a key |respect-blocks|
-% for the instruction |\rowcolor|. With that key, the ``rows'' alternately
+% \colorbox{yellow!30}{\textbf{New 5.2}}\enskip There is a key |respect-blocks|
+% for the instruction |\rowcolors|. With that key, the ``rows'' alternately
% colored may extend over several row if they have to incorporate blocks.
%
% \medskip
% \begin{scope}
% \hfuzz=10cm
% \begin{BVerbatim}[baseline=c,boxwidth=9cm]
-% \begin{NiceTabular}{cr}[hvlines,code-before =
+% \begin{NiceTabular}{lr}[hvlines,code-before =
% ~emphase#\rowcolors{1}{blue!10}{}[respect-blocks]@]
-% \Block{2-1}{John} & 12 \\
+% \Block[l]{2-1}{John} & 12 \\
% & 13 \\
% Stephen & 8 \\
-% \Block{3-1}{Sarah} & 18 \\
+% \Block[l]{3-1}{Sarah} & 18 \\
% & 17 \\
% & 15 \\
% Ashley & 20 \\
% Henry & 14 \\
-% \Block{2-1}{Madison} & 15 \\
+% \Block[l]{2-1}{Madison} & 15 \\
% & 19
% \end{NiceTabular}
% \end{BVerbatim}
-% \begin{NiceTabular}{cr}[hvlines,code-before = \rowcolors{1}{blue!10}{}[respect-blocks],baseline=c]
-% \Block{2-1}{John} & 12 \\
+% \begin{NiceTabular}{lr}[hvlines,code-before = \rowcolors{1}{blue!10}{}[respect-blocks],baseline=c]
+% \Block[l]{2-1}{John} & 12 \\
% & 13 \\
% Stephen & 8 \\
-% \Block{3-1}{Sarah} & 18 \\
+% \Block[l]{3-1}{Sarah} & 18 \\
% & 17 \\
% & 15 \\
% Ashley & 20 \\
% Henry & 14 \\
-% \Block{2-1}{Madison} & 15 \\
+% \Block[l]{2-1}{Madison} & 15 \\
% & 19
% \end{NiceTabular}
% \end{scope}
@@ -1230,7 +1235,7 @@ version 2005/12/01 or later.
% \begin{NiceTabular}[c]{lSSSS}%
% [code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
% ~emphase#\toprule@
-% \Block{2-1}{Product} \\
+% \Block{2-1}{Product} &
% \Block{1-3}{dimensions (cm)} & & &
% \Block{2-1}{\rotate Price} \\
% ~emphase#\cmidrule(rl){2-4}@
@@ -1280,14 +1285,15 @@ version 2005/12/01 or later.
% the row;
% \item |\columncolor| which must be used in the preamble of the environment
% with the same syntax as the corresponding command of
-% \pkg{colortbl}\footnote{Unlike the command |\columncolor| of \pkg{colortbl},
+% \pkg{colortbl} (however, unlike the command |\columncolor| of \pkg{colortbl},
% this command |\columncolor| can appear within another command, itself used in the
-% preamble.}.
+% preamble).
% \end{itemize}
%
% \medskip
% \begin{Verbatim}
-% \begin{NiceTabular}[colortbl-like]{*{2}{>{~emphase#\columncolor{blue!15}@}c}c}
+% \NewDocumentCommand { \Blue } { } { ~emphase#\columncolor{blue!15}@ }
+% \begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
% \toprule
% ~emphase#\rowcolor{red!15}@
% Last name & First name & Birth day \\
@@ -1302,7 +1308,8 @@ version 2005/12/01 or later.
%
%
% \begin{center}
-% \begin{NiceTabular}[colortbl-like]{*{2}{>{\columncolor{blue!15}}c}c}
+% \NewDocumentCommand { \Blue } { } { \columncolor{blue!15} }
+% \begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
% \toprule
% \rowcolor{red!15}
% Last name & First name & Birth day \\
@@ -1319,8 +1326,8 @@ version 2005/12/01 or later.
% Each instruction |\cellcolor|, |\rowcolor| or |\columncolor| will generate an
% instruction |fill| (coded~|f|) in the resulting \textsc{pdf}. In cases of
% juxtaposed colored rectangles, one may have a thin white color line in some
-% \textsc{pdf} viewers\footnote{For example SumatraPDF v3.1.2, which uses MuPDF
-% of Artifex Software, whose \textsc{pdf} renderer is called Fitz.} (between the
+% \textsc{pdf} viewers\footnote{For example SumatraPDF, which uses MuPDF
+% of Artifex Software, or PDF.js used by Firefox.} (between the
% two first columns in the above example). In you want to avoid this problem,
% you should use the tools in the |code-before|. That's what we do with the
% following code.
@@ -1931,15 +1938,15 @@ version 2005/12/01 or later.
%
% \subsection{How to generate the continuous dotted lines transparently}
%
-% The package \pkg{nicematrix} provides an option called |transparent| for using
-% existing code transparently in the environments of the \pkg{amsmath} :
-% |{matrix}|, |{pmatrix}|, |{bmatrix}|, etc. In fact, this
-% option is an alias for the conjonction of two options:
+% Imagine you have a document with a great number of mathematical matrices with
+% ellipsis. You may wish to use the dotted lines of \pkg{nicematrix} without
+% having to modify the code of each matrix. It's possible with the keys.
% |renew-dots| and |renew-matrix|.\footnote{The options |renew-dots|,
-% |renew-matrix| and |transparent| can be fixed with the command
+% |renew-matrix| can be fixed with the command
% |\NiceMatrixOptions| like the other options. However, they can also be fixed
-% as options of the command |\usepackage| (it's an exception for these three
-% specific options.)}
+% as options of the command |\usepackage|. There is also a key |transparent|
+% which is an alias for the conjonction of |renew-dots| and |renew-matrix| but it
+% must be considered as obsolete.}
%
% \smallskip
%
@@ -1959,14 +1966,14 @@ version 2005/12/01 or later.
% \end{itemize}
%
% \bigskip
-% Therefore, with the option |transparent|, a classical code gives directly the
-% ouput of \pkg{nicematrix}.\par\nobreak
+% Therefore, with the keys |renew-dots| and |renew-matrix|, a classical code
+% gives directly the ouput of \pkg{nicematrix}.\par\nobreak
%
% \bigskip
% \begin{scope}
-% \NiceMatrixOptions{transparent}
+% \NiceMatrixOptions{renew-dots,renew-matrix}
% \begin{BVerbatim}[baseline=c,boxwidth=10cm]
-% ~emphase#\NiceMatrixOptions{transparent}@
+% ~emphase#\NiceMatrixOptions{renew-dots,renew-matrix}@
% \begin{pmatrix}
% 1 & \cdots & \cdots & 1 \\
% 0 & \ddots & & \vdots \\
@@ -2481,12 +2488,13 @@ version 2005/12/01 or later.
% \subsection{Use of \{NiceTabular\} with threeparttable}
%
%
-% If you wish to use the environment |{NiceTabular}| in an environment
-% |{threeparttable}| of the eponymous package, you have to patch the environment
-% |{threeparttable}| with the following code:
+% If you wish to use the environment |{NiceTabular}| or |{NiceTabular*}| in an
+% environment |{threeparttable}| of the eponymous package, you have to patch the
+% environment |{threeparttable}| with the following code:
% \begin{Verbatim}[commandchars=\~\#\!]
% \makeatletter
-% \AtBeginEnvironment{threeparttable}{\TPT@hookin{NiceTabular}}
+% \AtBeginEnvironment{threeparttable}
+% {\TPT@hookin{NiceTabular}\TPT@hookin{NiceTabular*}}
% \makeatother
% \end{Verbatim}
%
@@ -3188,7 +3196,7 @@ version 2005/12/01 or later.
% public and each variable with name beginning with |\g__nicematrix| or
% |\l__nicematrix| is private.}:
% \begin{itemize}
-% \item \colorbox{yellow!50}{\textbf{New 5.2}}\enskip |\g_nicematrix_code_before_tl| ;
+% \item \colorbox{yellow!30}{\textbf{New 5.2}}\enskip |\g_nicematrix_code_before_tl| ;
% \item |\g_nicematrix_code_after_tl|.
% \end{itemize}
%
@@ -3400,9 +3408,13 @@ version 2005/12/01 or later.
% a+b & \Cdots & a+b & 1
% \end{pNiceMatrix}$
%
-%
% \end{scope}
%
+% \colorbox{yellow!50}{\textbf{New 5.3}}\enskip It's possible to specify the
+% instruction |\Ddots| which will be drawn first (and which will be used to draw
+% the other diagonal dotted line when the parallelization is in force) with the
+% key |draw-first|: |\Ddots[draw-first]|.
+%
% \subsection{The ``empty'' cells}
%
% \label{empty-cells}
@@ -5017,8 +5029,8 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% Some cells will be declared as ``empty'' (for example a cell with the
-% instrution |\Cdot|).
+% Some cells will be declared as ``empty'' (for example a cell with an
+% instrution |\Cdots|).
% \begin{macrocode}
\bool_new:N \g_@@_empty_cell_bool
% \end{macrocode}
@@ -5087,6 +5099,19 @@ version 2005/12/01 or later.
% \begin{macrocode}
\tl_new:N \l_@@_color_tl
% \end{macrocode}
+%
+% \medskip
+% The parameter of position of the label of a block (|c|, |r| or |l|).
+% \begin{macrocode}
+\tl_new:N \l_@@_pos_of_block_tl
+\tl_set:Nn \l_@@_pos_of_block_tl { c }
+% \end{macrocode}
+%
+% \medskip
+% Used when the key |draw-first| is used for |\Ddots| or |\Iddots|.
+% \begin{macrocode}
+\bool_new:N \l_@@_draw_first_bool
+% \end{macrocode}
%
% \bigskip
% \textbf{Variables for the exterior rows and columns}\par\nobreak
@@ -5673,14 +5698,16 @@ version 2005/12/01 or later.
% \begin{macrocode}
down .tl_set:N = \l_@@_xdots_down_tl ,
up .tl_set:N = \l_@@_xdots_up_tl ,
+% \end{macrocode}
+% The key |draw-first|, which is meant to be used only with |\Ddots| and
+% |\Iddots|, which be catched when |\Ddots| or |\Iddots| is used (during the
+% construction of the array and not when we draw the dotted lines).
+% \begin{macrocode}
+ draw-first .code:n = \prg_do_nothing: ,
unknown .code:n = \@@_error:n { Unknown~option~for~xdots }
}
% \end{macrocode}
%
-% \bigskip
-% The following keys are for the tabular notes (specified by the command
-% |\tabularnote| inside |{NiceTabular}| and |{NiceArray}|).
-%
%
% \bigskip
% \begin{macrocode}
@@ -5941,6 +5968,9 @@ version 2005/12/01 or later.
% \begin{macrocode}
renew-matrix .code:n = \@@_renew_matrix: ,
renew-matrix .value_forbidden:n = true ,
+% \end{macrocode}
+% The key |transparent| is now considered as obsolete (because its name is ambiguous).
+% \begin{macrocode}
transparent .meta:n = { renew-dots , renew-matrix } ,
transparent .value_forbidden:n = true,
% \end{macrocode}
@@ -6303,9 +6333,9 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \interitem
-% The first argument of the following command |\@@_instruction_of_type:nn|
+% The second argument of the following command |\@@_instruction_of_type:nnn|
% defined below is the type of the instruction (|Cdots|, |Vdots|, |Ddots|,
-% etc.). The second argument is the list of options. This command writes in the
+% etc.). The third argument is the list of options. This command writes in the
% corresponding |\g_@@_|\textsl{type}|_lines_tl| the instruction which will
% actually draw the line after the construction of the matrix.
%
@@ -6339,21 +6369,23 @@ version 2005/12/01 or later.
%
%
% \bigskip
+% The first argument is a boolean which indicates whether you must put the
+% instruction on the left or on the right on the list of instructions.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_instruction_of_type:nn #1 #2
+\cs_new_protected:Npn \@@_instruction_of_type:nnn #1 #2 #3
{
% \end{macrocode}
% It's important to use a |\tl_gput_right:cx| and not a |\tl_gput_left:cx|
% because we want the |\Ddots| lines to be drawn in the order of appearance
% in the array (for parallelisation).
% \begin{macrocode}
- \tl_gput_right:cx
- { g_@@_ #1 _ lines _ tl }
+ \bool_if:nTF { #1 } \tl_gput_left:cx \tl_gput_right:cx
+ { g_@@_ #2 _ lines _ tl }
{
- \use:c { @@ _ draw _ #1 : nnn }
+ \use:c { @@ _ draw _ #2 : nnn }
{ \int_use:N \c@iRow }
{ \int_use:N \c@jCol }
- { \exp_not:n { #2 } }
+ { \exp_not:n { #3 } }
}
}
% \end{macrocode}
@@ -6371,7 +6403,7 @@ version 2005/12/01 or later.
\cs_set_eq:NN \@acoll \@arrayacol
\cs_set_eq:NN \@acolr \@arrayacol
\cs_set_eq:NN \@acol \@arrayacol
- \cs_set:Npn \@halignto { }
+ \cs_set_nopar:Npn \@halignto { }
\@array@array
}
% \end{macrocode}
@@ -6386,8 +6418,8 @@ version 2005/12/01 or later.
{ \dim_set_eq:NN \col@sep \tabcolsep }
{ \dim_set_eq:NN \col@sep \arraycolsep }
\dim_compare:nNnTF \l_@@_tabular_width_dim = \c_zero_dim
- { \cs_set:Npn \@halignto { } }
- { \cs_set:Npx \@halignto { to \dim_use:N \l_@@_tabular_width_dim } }
+ { \cs_set_nopar:Npn \@halignto { } }
+ { \cs_set_nopar:Npx \@halignto { to \dim_use:N \l_@@_tabular_width_dim } }
% \end{macrocode}
% It \pkg{colortbl} is loaded, |\@tabarray| has been redefined to incorporate
% |\CT@start|.
@@ -6568,7 +6600,7 @@ version 2005/12/01 or later.
{
% \end{macrocode}
% \begin{macrocode}
- \cs_set:Npn \arraystretch { 0.47 }
+ \cs_set_nopar:Npn \arraystretch { 0.47 }
\dim_set:Nn \arraycolsep { 1.45 pt }
}
% \end{macrocode}
@@ -6580,7 +6612,7 @@ version 2005/12/01 or later.
% |\everycr| to |{ }| and we \emph{need} to have to change the value of
% |\everycr|.
% \begin{macrocode}
- \cs_set:Npn \ialign
+ \cs_set_nopar:Npn \ialign
{
\bool_if:NTF \c_@@_colortbl_loaded_bool
{
@@ -6744,6 +6776,8 @@ version 2005/12/01 or later.
\bgroup
\tl_set:Nn \l_@@_left_delim_tl { #1 }
\tl_set:Nn \l_@@_right_delim_tl { #2 }
+ \dim_zero:N \g_@@_width_last_col_dim
+ \dim_zero:N \g_@@_width_first_col_dim
\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 } }
@@ -8221,6 +8255,7 @@ version 2005/12/01 or later.
\skip_horizontal:N \l_@@_left_margin_dim
\skip_horizontal:N \l_@@_extra_left_margin_dim
}
+ \bool_gset_false:N \g_@@_empty_cell_bool
\skip_horizontal:N -2\col@sep
}
}
@@ -8290,6 +8325,7 @@ version 2005/12/01 or later.
\@@_node_for_the_cell:
}
}
+ \bool_gset_false:N \g_@@_empty_cell_bool
}
}
% \end{macrocode}
@@ -8612,16 +8648,16 @@ version 2005/12/01 or later.
% etc.) and no corners. In that case, we switch to a shortcut version of
% |\@@_vline_i:nn| and |\@@_hline:nn|.
% \begin{macrocode}
- % \bool_lazy_all:nT
- % {
- % { \seq_if_empty_p:N \g_@@_pos_of_blocks_seq }
- % { \seq_if_empty_p:N \g_@@_pos_of_xdots_seq }
- % { \seq_if_empty_p:N \l_@@_empty_corner_cells_seq }
- % }
- % {
- % \cs_set_eq:NN \@@_vline_i:nn \@@_vline_i_complete:nn
- % \cs_set_eq:NN \@@_hline_i:nn \@@_hline_i_complete:nn
- % }
+ \bool_lazy_all:nT
+ {
+ { \seq_if_empty_p:N \g_@@_pos_of_blocks_seq }
+ { \seq_if_empty_p:N \g_@@_pos_of_xdots_seq }
+ { \seq_if_empty_p:N \l_@@_empty_corner_cells_seq }
+ }
+ {
+ \cs_set_eq:NN \@@_vline_i:nn \@@_vline_i_complete:nn
+ \cs_set_eq:NN \@@_hline_i:nn \@@_hline_i_complete:nn
+ }
\bool_if:NT \l_@@_hlines_bool \@@_draw_hlines:
\bool_if:NT \l_@@_vlines_bool \@@_draw_vlines:
\g_@@_internal_code_after_tl
@@ -9201,7 +9237,6 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_draw_Vdots:nnn #1 #2 #3
{
- \tl_if_empty:VF \l_@@_xdots_color_tl { \color { \l_@@_xdots_color_tl } }
\cs_if_free:cT { @@ _ dotted _ #1 - #2 }
{
\@@_find_extremities_of_line:nnnn { #1 } { #2 } 1 0
@@ -9218,6 +9253,8 @@ version 2005/12/01 or later.
{ \color { nicematrix-last-col } }
}
\keys_set:nn { NiceMatrix / xdots } { #3 }
+ \tl_if_empty:VF \l_@@_xdots_color_tl
+ { \color { \l_@@_xdots_color_tl } }
\@@_actually_draw_Vdots:
\group_end:
}
@@ -9796,7 +9833,7 @@ version 2005/12/01 or later.
\int_compare:nNnTF \c@jCol = \l_@@_last_col_int
{ \@@_error:nn { in~last~col } \Ldots }
{
- \@@_instruction_of_type:nn { Ldots }
+ \@@_instruction_of_type:nnn \c_false_bool { Ldots }
{ #1 , down = #2 , up = #3 }
}
}
@@ -9815,7 +9852,7 @@ version 2005/12/01 or later.
\int_compare:nNnTF \c@jCol = \l_@@_last_col_int
{ \@@_error:nn { in~last~col } \Cdots }
{
- \@@_instruction_of_type:nn { Cdots }
+ \@@_instruction_of_type:nnn \c_false_bool { Cdots }
{ #1 , down = #2 , up = #3 }
}
}
@@ -9834,7 +9871,7 @@ version 2005/12/01 or later.
\int_compare:nNnTF \c@iRow = \l_@@_last_row_int
{ \@@_error:nn { in~last~row } \Vdots }
{
- \@@_instruction_of_type:nn { Vdots }
+ \@@_instruction_of_type:nnn \c_false_bool { Vdots }
{ #1 , down = #2 , up = #3 }
}
}
@@ -9843,6 +9880,7 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+%
% \bigskip
% \begin{macrocode}
\exp_args:NNV \NewDocumentCommand \@@_Ddots \l_@@_argspec_tl
@@ -9859,7 +9897,8 @@ version 2005/12/01 or later.
\l_@@_last_col_int { \@@_error:nn { in~last~col } \Ddots }
}
{
- \@@_instruction_of_type:nn { Ddots }
+ \keys_set_known:nn { NiceMatrix / Ddots } { #1 }
+ \@@_instruction_of_type:nnn \l_@@_draw_first_bool { Ddots }
{ #1 , down = #2 , up = #3 }
}
@@ -9885,7 +9924,8 @@ version 2005/12/01 or later.
\l_@@_last_col_int { \@@_error:nn { in~last~col } \Iddots }
}
{
- \@@_instruction_of_type:nn { Iddots }
+ \keys_set_known:nn { NiceMatrix / Ddots } { #1 }
+ \@@_instruction_of_type:nnn \l_@@_draw_first_bool { Iddots }
{ #1 , down = #2 , up = #3 }
}
@@ -9898,7 +9938,18 @@ version 2005/12/01 or later.
% End of the |\AtBeginDocument|.
%
%
-%
+% \bigskip
+% Despite its name, the following set of keys will be used for |\Ddots| but also
+% for |\Iddots|.
+% \begin{macrocode}
+\keys_define:nn { NiceMatrix / Ddots }
+ {
+ draw-first .bool_set:N = \l_@@_draw_first_bool ,
+ draw-first .default:n = true ,
+ draw-first .value_forbidden:n = true
+ }
+% \end{macrocode}
+%
% \bigskip
% The command |\@@_Hspace:| will be linked to |\hspace| in |{NiceArray}|.
% \begin{macrocode}
@@ -9918,14 +9969,14 @@ version 2005/12/01 or later.
\cs_new:Npn \@@_multicolumn:nnn #1 #2 #3
{
% \begin{macrocode}
-% We have to act in expandable way since it will begin by a |\multicolumn|.
+% We have to act in an expandable way since it will begin by a |\multicolumn|.
% \end{macrocode
\exp_args:NNe
\@@_old_multicolumn
{ #1 }
% \end{macrocode}
-% We will have to replace |\tl_lower_case:n| in the future
-% since |\tl_lower_case:n| seems to be deprecated.
+% We will have to replace |\tl_lower_case:n| in the future since it seems to be
+% deprecated.
% \begin{macrocode}
{
\exp_args:Ne \str_case:nn { \tl_lower_case:n { #2 } }
@@ -9964,6 +10015,8 @@ version 2005/12/01 or later.
}
}
\int_gadd:Nn \c@jCol { #1 - 1 }
+ \int_compare:nNnT \c@jCol > \g_@@_col_total_int
+ { \int_gset_eq:NN \g_@@_col_total_int \c@jCol }
}
}
% \end{macrocode}
@@ -9979,8 +10032,12 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new:Npn \@@_Hdotsfor:
{
- \multicolumn { 1 } { c } { }
- \@@_Hdotsfor_i
+ \int_compare:nNnTF \c@jCol = 0
+ { \@@_error:n { Hdotsfor~in~col~0 } }
+ {
+ \multicolumn { 1 } { c } { }
+ \@@_Hdotsfor_i
+ }
}
% \end{macrocode}
%
@@ -10010,7 +10067,7 @@ version 2005/12/01 or later.
#1 , #3 ,
down = \exp_not:n { #4 } , up = \exp_not:n { #5 }
}
- }
+ }
\prg_replicate:nn { #2 - 1 } { & \multicolumn { 1 } { c } { } }
}
}
@@ -10799,9 +10856,12 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_vline_i:nn #1 #2
{
% \end{macrocode}
-% |\l_tmpa_tl| is the number of row and |\l_tmpb_tl| the number of column.
+% |\l_tmpa_tl| is the number of row and |\l_tmpb_tl| the number of column. When
+% we have found a row corresponding to a rule to draw, we note its number in
+% |\l_tmpc_tl|.
% \begin{macrocode}
\tl_set:Nx \l_tmpb_tl { #1 }
+ \tl_clear_new:N \l_tmpc_tl
\int_step_variable:nNn \c@iRow \l_tmpa_tl
{
% \end{macrocode}
@@ -10818,8 +10878,34 @@ version 2005/12/01 or later.
{ \@@_test_if_vline_in_block:nnnn ##1 }
\clist_if_empty:NF \l_@@_except_corners_clist
\@@_test_in_corner_v:
- \bool_if:NT \g_tmpa_bool
- { \@@_vline_ii:nnnn { #1 } { #2 } \l_tmpa_tl \l_tmpa_tl }
+ \bool_if:NTF \g_tmpa_bool
+ {
+ \tl_if_empty:NT \l_tmpc_tl
+% \end{macrocode}
+% We keep in memory that we have a rule to draw.
+% \begin{macrocode}
+ { \tl_set_eq:NN \l_tmpc_tl \l_tmpa_tl }
+ }
+ {
+ \tl_if_empty:NF \l_tmpc_tl
+ {
+ \@@_vline_ii:nnnn
+ { #1 }
+ { #2 }
+ \l_tmpc_tl
+ { \int_eval:n { \l_tmpa_tl - 1 } }
+ \tl_clear:N \l_tmpc_tl
+ }
+ }
+ }
+ \tl_if_empty:NF \l_tmpc_tl
+ {
+ \@@_vline_ii:nnnn
+ { #1 }
+ { #2 }
+ \l_tmpc_tl
+ { \int_use:N \c@iRow }
+ \tl_clear:N \l_tmpc_tl
}
}
% \end{macrocode}
@@ -10945,9 +11031,12 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_hline_i:nn #1 #2
{
% \end{macrocode}
-% |\l_tmpa_tl| is the number of row and |\l_tmpb_tl| the number of column.
+% |\l_tmpa_tl| is the number of row and |\l_tmpb_tl| the number of column. Whe,
+% we have found a column corresponding to a rule to draw, we note its numver in
+% |\l_tmpc_tl|.
% \begin{macrocode}
\tl_set:Nn \l_tmpa_tl { #1 }
+ \tl_clear_new:N \l_tmpc_tl
\int_step_variable:nNn \c@jCol \l_tmpb_tl
{
% \end{macrocode}
@@ -10963,8 +11052,34 @@ version 2005/12/01 or later.
\seq_map_inline:Nn \g_@@_pos_of_xdots_seq
{ \@@_test_if_hline_in_block:nnnn ##1 }
\clist_if_empty:NF \l_@@_except_corners_clist \@@_test_in_corner_h:
- \bool_if:NT \g_tmpa_bool
- { \@@_hline_ii:nnnn { #1 } { #2 } \l_tmpb_tl \l_tmpb_tl }
+ \bool_if:NTF \g_tmpa_bool
+ {
+ \tl_if_empty:NT \l_tmpc_tl
+% \end{macrocode}
+% We keep in memory that we have a rule to draw.
+% \begin{macrocode}
+ { \tl_set_eq:NN \l_tmpc_tl \l_tmpb_tl }
+ }
+ {
+ \tl_if_empty:NF \l_tmpc_tl
+ {
+ \@@_hline_ii:nnnn
+ { #1 }
+ { #2 }
+ \l_tmpc_tl
+ { \int_eval:n { \l_tmpb_tl - 1 } }
+ \tl_clear:N \l_tmpc_tl
+ }
+ }
+ }
+ \tl_if_empty:NF \l_tmpc_tl
+ {
+ \@@_hline_ii:nnnn
+ { #1 }
+ { #2 }
+ \l_tmpc_tl
+ { \int_use:N \c@jCol }
+ \tl_clear:N \l_tmpc_tl
}
}
% \end{macrocode}
@@ -11046,7 +11161,7 @@ version 2005/12/01 or later.
% \bigskip
% \begin{macrocode}
\cs_new_protected:Npn \@@_hline_i_complete:nn #1 #2
- { \@@_hline_ii:nnnn #1 #2 1 { \int_use:N \c@jCol } }
+ { \@@_hline_ii:nnnn { #1 } { #2 } 1 { \int_use:N \c@jCol } }
% \end{macrocode}
%
% \bigskip
@@ -11910,8 +12025,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_extract_coords_values: #1 - #2 \q_stop
{
- \cs_set:Npn \@@_i: { #1 }
- \cs_set:Npn \@@_j: { #2 }
+ \cs_set_nopar:Npn \@@_i: { #1 }
+ \cs_set_nopar:Npn \@@_j: { #2 }
}
% \end{macrocode}
%
@@ -11950,7 +12065,7 @@ version 2005/12/01 or later.
% because it has an optional argument between |<| and |>| (for TeX instructions
% put before the math mode of the label)
%
-% It's mandatory to use a expandable command (probably because of the first
+% It's mandatory to use an expandable command (probably because of the first
% optional argument?).
% \begin{macrocode}
\NewExpandableDocumentCommand \@@_Block: { O { } m D < > { } m }
@@ -12026,6 +12141,13 @@ version 2005/12/01 or later.
tikz .value_required:n = true ,
color .tl_set:N = \l_@@_color_tl ,
color .value_required:n = true ,
+ l .code:n = \tl_set:Nn \l_@@_pos_of_block_tl l ,
+ l .value_forbidden:n = true ,
+ r .code:n = \tl_set:Nn \l_@@_pos_of_block_tl r ,
+ r .value_forbidden:n = true ,
+ c .code:n = \tl_set:Nn \l_@@_pos_of_block_tl c ,
+ c .value_forbidden:n = true ,
+ unknown .code:n = \@@_error:n { Unknown~key~for~Block }
}
% \end{macrocode}
%
@@ -12062,15 +12184,15 @@ version 2005/12/01 or later.
%
% \medskip
% \begin{macrocode}
- \cs_set_protected:Npn \diagbox ##1 ##2
- {
- \tl_gput_right:Nx \g_@@_internal_code_after_tl
- {
- \@@_actually_diagbox:nnnnnn
- { #1 } { #2 } { #3 } { #4 }
- { \exp_not:n { ##1 } } { \exp_not:n { ##2 } }
- }
- }
+ \cs_set_protected_nopar:Npn \diagbox ##1 ##2
+ {
+ \tl_gput_right:Nx \g_@@_internal_code_after_tl
+ {
+ \@@_actually_diagbox:nnnnnn
+ { #1 } { #2 } { #3 } { #4 }
+ { \exp_not:n { ##1 } } { \exp_not:n { ##2 } }
+ }
+ }
% \end{macrocode}
%
% \medskip
@@ -12176,8 +12298,11 @@ version 2005/12/01 or later.
\cs_if_exist:cT
{ pgf @ sh @ ns @ \@@_env: - ##1 - #2 }
{
- \pgfpointanchor { \@@_env: - ##1 - #2 } { west }
- \dim_set:Nn \l_tmpb_dim { \dim_min:nn \l_tmpb_dim \pgf@x }
+ \seq_if_in:NnF \g_@@_multicolumn_cells_seq { ##1 - #2 }
+ {
+ \pgfpointanchor { \@@_env: - ##1 - #2 } { west }
+ \dim_set:Nn \l_tmpb_dim { \dim_min:nn \l_tmpb_dim \pgf@x }
+ }
}
}
% \end{macrocode}
@@ -12196,8 +12321,11 @@ version 2005/12/01 or later.
\cs_if_exist:cT
{ pgf @ sh @ ns @ \@@_env: - ##1 - #4 }
{
- \pgfpointanchor { \@@_env: - ##1 - #4 } { east }
- \dim_set:Nn \l_tmpd_dim { \dim_max:nn \l_tmpd_dim \pgf@x }
+ \seq_if_in:NnF \g_@@_multicolumn_cells_seq { ##1 - #2 }
+ {
+ \pgfpointanchor { \@@_env: - ##1 - #4 } { east }
+ \dim_set:Nn \l_tmpd_dim { \dim_max:nn \l_tmpd_dim \pgf@x }
+ }
}
}
\dim_compare:nNnT \l_tmpd_dim = { - \c_max_dim }
@@ -12224,7 +12352,8 @@ version 2005/12/01 or later.
}
% \end{macrocode}
% \medskip
-% Now, we will put the label of the block.
+% Now, we will put the label of the block beginning with the case of a |\Block|
+% of one row.
% \begin{macrocode}
\int_compare:nNnTF { #1 } = { #3 }
{
@@ -12248,24 +12377,65 @@ version 2005/12/01 or later.
% \end{macrocode}
% We retrieve (in |\pgf@x|) the $x$-value of the center of the block.
% \begin{macrocode}
- \@@_qpoint:n { #1 - #2 - block - short }
+ \pgfpointanchor
+ { \@@_env: - #1 - #2 - block - short }
+ {
+ \str_case:Vn \l_@@_pos_of_block_tl
+ {
+ c { center }
+ l { west }
+ r { east }
+ }
+ }
% \end{macrocode}
% We put the label of the block which has been composed in |\l_@@_cell_box|.
% \begin{macrocode}
\pgftransformshift { \pgfpoint \pgf@x \l_tmpa_dim }
- \pgfnode { rectangle } { base }
+ \pgfset { inner~sep = \c_zero_dim }
+ \pgfnode
+ { rectangle }
+ {
+ \str_case:Vn \l_@@_pos_of_block_tl
+ {
+ c { base }
+ l { base~west }
+ r { base~east }
+ }
+ }
{ \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 (short) node (the label of the block has been composed in
-% |\l_@@_cell_box|).
+% using the short node (the label of the block has been composed in
+% |\l_@@_cell_box|).
% \begin{macrocode}
{
- \pgftransformshift { \@@_qpoint:n { #1 - #2 - block - short } }
- \pgfnode { rectangle } { center }
+ \pgftransformshift
+ {
+ \pgfpointanchor
+ { \@@_env: - #1 - #2 - block - short }
+ {
+ \str_case:Vn \l_@@_pos_of_block_tl
+ {
+ c { center }
+ l { west }
+ r { east }
+ }
+ }
+ }
+ \pgfset { inner~sep = \c_zero_dim }
+ \pgfnode
+ { rectangle }
+ {
+ \str_case:Vn \l_@@_pos_of_block_tl
+ {
+ c { center }
+ l { west }
+ r { east }
+ }
+ }
{ \box_use_drop:N \l_@@_cell_box } { } { }
}
\endpgfpicture
@@ -12891,6 +13061,14 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { Hdotsfor~in~col~0 }
+ {
+ You~can't~use~\token_to_str:N \Hdotsfor\ in~an~exterior~column~of~
+ the~array.~If~you~go~on,~the~corresponding~dotted~line~won't~be~drawn.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { bad~corner }
{
#1~is~an~incorrect~specification~for~a~corner~(in~the~keys~
@@ -13009,7 +13187,19 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-%
+% \begin{macrocode}
+\@@_msg_new:nnn { Unknown~key~for~Block }
+ {
+ The~key~'\l_keys_key_tl'~is~unknown~for~the~command~\token_to_str:N
+ \Block.\\ If~you~go~on,~it~will~be~ignored. \\
+ For~a~list~of~the~available~keys,~type~H~<return>.
+ }
+ {
+ The~available~options~are~(in~alphabetic~order):~c,~
+ color,~l,~and~r.
+ }
+% \end{macrocode}
+%
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~notes }
{
@@ -13265,6 +13455,15 @@ version 2005/12/01 or later.
% \vspace{1cm}
% \section{History}
%
+% The successive versions of the file |nicematrix.sty| provided by TeXLive are available on the
+% \textsc{svn} server of TeXLive:
+%
+% {
+% \small
+% \url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}
+% }
+%
+%
% \subsection*{Changes between versions 1.0 and 1.1}
%
% The dotted lines are no longer drawn with Tikz nodes but with Tikz circles
@@ -13615,7 +13814,16 @@ version 2005/12/01 or later.
% The key |baseline| can take in as value of the form \textsl{line-i} to align
% the |\hline| in the row \textsl{i}.
%
-% The key |hvlines-except-corners| may take in as value a list of corner (eg: NW,SE).
+% The key |hvlines-except-corners| may take in as value a list of corners (eg: NW,SE).
+%
+% \subsection*{Changes between versions 5.2 and 5.3}
+%
+% Keys |c|, |r| and |l| for the command |\Block|.
+%
+% It's possible to use the key |draw-first| with |\Ddots| and |\Iddots| to
+% specify which dotted line will be drawn first (the other lines will be drawn
+% parallel to that one if parallelization is activated).
+%
%
% \PrintIndex
%
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index ebefac27a8..9743eb335d 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/README.md b/macros/latex/contrib/oberdiek/README.md
index cbdfd8b6c8..825d268512 100644
--- a/macros/latex/contrib/oberdiek/README.md
+++ b/macros/latex/contrib/oberdiek/README.md
@@ -1,6 +1,6 @@
# Oberdiek bundle
-Version: 2020-08-01
+Version: 2020-09-02
This file describes the directory
CTAN:macros/latex/contrib/oberdiek/
@@ -49,7 +49,6 @@ Other files in the CTAN directory:
* holtxdoc: extra documentation macros;
* hypbmsec: bookmarks in sectioning commands;
* hypcap: anjusting anchors of captions;
-* hypdestopt: optimising hyperref’s pdfTeX driver destinations;
* hypdoc: hyper-references in the LaTeX standard doc package;
* hypgotoe: experimental package for links to embedded files;
* hyphsubst: substitute hyphenation patterns;
diff --git a/macros/latex/contrib/oberdiek/aliascnt.pdf b/macros/latex/contrib/oberdiek/aliascnt.pdf
index 88dd37cf7b..99508dc8bf 100644
--- a/macros/latex/contrib/oberdiek/aliascnt.pdf
+++ b/macros/latex/contrib/oberdiek/aliascnt.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/bmpsize.pdf b/macros/latex/contrib/oberdiek/bmpsize.pdf
index ca2159f163..7c435f524f 100644
--- a/macros/latex/contrib/oberdiek/bmpsize.pdf
+++ b/macros/latex/contrib/oberdiek/bmpsize.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/centernot.pdf b/macros/latex/contrib/oberdiek/centernot.pdf
index f07187e50c..f4ceda8550 100644
--- a/macros/latex/contrib/oberdiek/centernot.pdf
+++ b/macros/latex/contrib/oberdiek/centernot.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/chemarr.pdf b/macros/latex/contrib/oberdiek/chemarr.pdf
index 92c0fd36ea..6ed193a216 100644
--- a/macros/latex/contrib/oberdiek/chemarr.pdf
+++ b/macros/latex/contrib/oberdiek/chemarr.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/classlist.pdf b/macros/latex/contrib/oberdiek/classlist.pdf
index d6be30706d..63a575742e 100644
--- a/macros/latex/contrib/oberdiek/classlist.pdf
+++ b/macros/latex/contrib/oberdiek/classlist.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/colonequals.pdf b/macros/latex/contrib/oberdiek/colonequals.pdf
index e6bd4ecf28..50265fa311 100644
--- a/macros/latex/contrib/oberdiek/colonequals.pdf
+++ b/macros/latex/contrib/oberdiek/colonequals.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/dvipscol.pdf b/macros/latex/contrib/oberdiek/dvipscol.pdf
index 7794d5f6fb..9d98daddba 100644
--- a/macros/latex/contrib/oberdiek/dvipscol.pdf
+++ b/macros/latex/contrib/oberdiek/dvipscol.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/engord.pdf b/macros/latex/contrib/oberdiek/engord.pdf
index 6058293fe1..403ec71aac 100644
--- a/macros/latex/contrib/oberdiek/engord.pdf
+++ b/macros/latex/contrib/oberdiek/engord.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/enparen.pdf b/macros/latex/contrib/oberdiek/enparen.pdf
index 89a517bb42..0c604fc3b1 100644
--- a/macros/latex/contrib/oberdiek/enparen.pdf
+++ b/macros/latex/contrib/oberdiek/enparen.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/eolgrab.pdf b/macros/latex/contrib/oberdiek/eolgrab.pdf
index 0305785a2e..61b21d1985 100644
--- a/macros/latex/contrib/oberdiek/eolgrab.pdf
+++ b/macros/latex/contrib/oberdiek/eolgrab.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/fibnum.pdf b/macros/latex/contrib/oberdiek/fibnum.pdf
index 94743cee5c..1f5e6a2245 100644
--- a/macros/latex/contrib/oberdiek/fibnum.pdf
+++ b/macros/latex/contrib/oberdiek/fibnum.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/flags.pdf b/macros/latex/contrib/oberdiek/flags.pdf
index c39b6a802d..5f561e1b33 100644
--- a/macros/latex/contrib/oberdiek/flags.pdf
+++ b/macros/latex/contrib/oberdiek/flags.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/holtxdoc.pdf b/macros/latex/contrib/oberdiek/holtxdoc.pdf
index 3f438af499..d88cbae03d 100644
--- a/macros/latex/contrib/oberdiek/holtxdoc.pdf
+++ b/macros/latex/contrib/oberdiek/holtxdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypbmsec.pdf b/macros/latex/contrib/oberdiek/hypbmsec.pdf
index 4ad84d6cbf..b6fcb731c5 100644
--- a/macros/latex/contrib/oberdiek/hypbmsec.pdf
+++ b/macros/latex/contrib/oberdiek/hypbmsec.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypcap.pdf b/macros/latex/contrib/oberdiek/hypcap.pdf
index 4c33bde26c..334f67bf9e 100644
--- a/macros/latex/contrib/oberdiek/hypcap.pdf
+++ b/macros/latex/contrib/oberdiek/hypcap.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypdoc.pdf b/macros/latex/contrib/oberdiek/hypdoc.pdf
index 849dc53cc5..82eb5d5195 100644
--- a/macros/latex/contrib/oberdiek/hypdoc.pdf
+++ b/macros/latex/contrib/oberdiek/hypdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypgotoe.pdf b/macros/latex/contrib/oberdiek/hypgotoe.pdf
index dba3357190..87858187c4 100644
--- a/macros/latex/contrib/oberdiek/hypgotoe.pdf
+++ b/macros/latex/contrib/oberdiek/hypgotoe.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hyphsubst.pdf b/macros/latex/contrib/oberdiek/hyphsubst.pdf
index 4d508389c0..a553d7ba51 100644
--- a/macros/latex/contrib/oberdiek/hyphsubst.pdf
+++ b/macros/latex/contrib/oberdiek/hyphsubst.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/ifdraft.pdf b/macros/latex/contrib/oberdiek/ifdraft.pdf
index 06933d8e2b..55042d429c 100644
--- a/macros/latex/contrib/oberdiek/ifdraft.pdf
+++ b/macros/latex/contrib/oberdiek/ifdraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/iflang.pdf b/macros/latex/contrib/oberdiek/iflang.pdf
index aa906e45b4..fd72a8cb91 100644
--- a/macros/latex/contrib/oberdiek/iflang.pdf
+++ b/macros/latex/contrib/oberdiek/iflang.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/oberdiek-bundle.bib b/macros/latex/contrib/oberdiek/oberdiek-bundle.bib
index f3d00291d6..fd2b6229a7 100644
--- a/macros/latex/contrib/oberdiek/oberdiek-bundle.bib
+++ b/macros/latex/contrib/oberdiek/oberdiek-bundle.bib
@@ -103,13 +103,6 @@
version={1.12},
url={https://ctan.org/pkg/hypcap},
}
-@manual{oberdiek:hypdestopt,
- title={The hypdestopt package},
- author={Heiko Oberdiek},
- date={2016-05-21},
- version={2.5},
- url={https://ctan.org/pkg/hypdestopt},
-}
@manual{oberdiek:hypdoc,
title={The hypdoc package},
author={Heiko Oberdiek},
diff --git a/macros/latex/contrib/oberdiek/oberdiek.ins b/macros/latex/contrib/oberdiek/oberdiek.ins
index 2225a1b33c..8914f4a7e5 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.ins
+++ b/macros/latex/contrib/oberdiek/oberdiek.ins
@@ -41,7 +41,6 @@
\batchinput{holtxdoc.dtx}
\batchinput{hypbmsec.dtx}
\batchinput{hypcap.dtx}
-\batchinput{hypdestopt.dtx}
\batchinput{hypdoc.dtx}
\batchinput{hypgotoe.dtx}
\batchinput{hyphsubst.dtx}
diff --git a/macros/latex/contrib/oberdiek/oberdiek.pdf b/macros/latex/contrib/oberdiek/oberdiek.pdf
index 9c39006a6f..482d935da6 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.pdf
+++ b/macros/latex/contrib/oberdiek/oberdiek.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/oberdiek.tex b/macros/latex/contrib/oberdiek/oberdiek.tex
index 6b52d9bca3..9b7cb6857f 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.tex
+++ b/macros/latex/contrib/oberdiek/oberdiek.tex
@@ -10,7 +10,7 @@
\newcommand*{\Author}{Heiko Oberdiek}
\newcommand*{\Email}{ho-tex at tug.org}
-\newcommand*{\Date}{2020/08/01}
+\newcommand*{\Date}{2020/09/02}
% Copyright (C) 2006-2016 by
% Heiko Oberdiek
@@ -204,8 +204,6 @@
[\entrysep]
\entry{hypcap}{Adjusting the anchors of captions}%
[\entrysep]
-\entry{hypdestopt}{Hyperref destination optimizer}%
-[\entrysep]
\entry{hypdoc}{Hyper extensions for doc.sty}%
[\entrysep]
\entry{hypgotoe}{Links to embedded files}%
@@ -416,17 +414,6 @@ the rest in the \cs{caption} command.
\tocinclude{hypcap}
\newpage
-\subsection{\pkgsectformat{hypdestopt}}
-\label{hypdestopt}
-\begin{abstract}
-Package \xpackage{hypdestopt} supports \xpackage{hyperref}'s
-\xoption{pdftex} driver. It removes unnecessary destinations
-and shortens the destination names or uses numbered destinations
-to get smaller PDF files.
-\end{abstract}
-\tocinclude{hypdestopt}
-
-\newpage
\subsection{\pkgsectformat{hypdoc}}
\label{hypdoc}
\begin{abstract}
diff --git a/macros/latex/contrib/oberdiek/pagegrid.pdf b/macros/latex/contrib/oberdiek/pagegrid.pdf
index dfd0294a43..1aefe9f9d6 100644
--- a/macros/latex/contrib/oberdiek/pagegrid.pdf
+++ b/macros/latex/contrib/oberdiek/pagegrid.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcol.pdf b/macros/latex/contrib/oberdiek/pdfcol.pdf
index 389652ec38..b09e4f602d 100644
--- a/macros/latex/contrib/oberdiek/pdfcol.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcol.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcolfoot.pdf b/macros/latex/contrib/oberdiek/pdfcolfoot.pdf
index 64ce4915e4..899ac9d9fc 100644
--- a/macros/latex/contrib/oberdiek/pdfcolfoot.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcolfoot.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
index 0c69e89412..5032716ee8 100644
--- a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
index 920203f40e..29730a96bd 100644
--- a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcrypt.pdf b/macros/latex/contrib/oberdiek/pdfcrypt.pdf
index 468ab9b255..03e5ce1f8f 100644
--- a/macros/latex/contrib/oberdiek/pdfcrypt.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcrypt.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfrender.pdf b/macros/latex/contrib/oberdiek/pdfrender.pdf
index d1335436d5..212dc3664b 100644
--- a/macros/latex/contrib/oberdiek/pdfrender.pdf
+++ b/macros/latex/contrib/oberdiek/pdfrender.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/protecteddef.pdf b/macros/latex/contrib/oberdiek/protecteddef.pdf
index 4c37798f2c..1a640fb01e 100644
--- a/macros/latex/contrib/oberdiek/protecteddef.pdf
+++ b/macros/latex/contrib/oberdiek/protecteddef.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/resizegather.pdf b/macros/latex/contrib/oberdiek/resizegather.pdf
index 2fecaefee9..04356d885a 100644
--- a/macros/latex/contrib/oberdiek/resizegather.pdf
+++ b/macros/latex/contrib/oberdiek/resizegather.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/rotchiffre.pdf b/macros/latex/contrib/oberdiek/rotchiffre.pdf
index 88097719ca..f10a2e887d 100644
--- a/macros/latex/contrib/oberdiek/rotchiffre.pdf
+++ b/macros/latex/contrib/oberdiek/rotchiffre.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/scrindex.pdf b/macros/latex/contrib/oberdiek/scrindex.pdf
index e9f69e95da..725e81f60d 100644
--- a/macros/latex/contrib/oberdiek/scrindex.pdf
+++ b/macros/latex/contrib/oberdiek/scrindex.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/setouterhbox.pdf b/macros/latex/contrib/oberdiek/setouterhbox.pdf
index f3009b2f03..53bf65cac2 100644
--- a/macros/latex/contrib/oberdiek/setouterhbox.pdf
+++ b/macros/latex/contrib/oberdiek/setouterhbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/settobox.pdf b/macros/latex/contrib/oberdiek/settobox.pdf
index c79bd6368d..4e4cabfb46 100644
--- a/macros/latex/contrib/oberdiek/settobox.pdf
+++ b/macros/latex/contrib/oberdiek/settobox.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/stackrel.pdf b/macros/latex/contrib/oberdiek/stackrel.pdf
index 311cdf1963..a10c1ca7e4 100644
--- a/macros/latex/contrib/oberdiek/stackrel.pdf
+++ b/macros/latex/contrib/oberdiek/stackrel.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/stampinclude.pdf b/macros/latex/contrib/oberdiek/stampinclude.pdf
index 09de65a2a4..a465d1468c 100644
--- a/macros/latex/contrib/oberdiek/stampinclude.pdf
+++ b/macros/latex/contrib/oberdiek/stampinclude.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/tabularht.pdf b/macros/latex/contrib/oberdiek/tabularht.pdf
index ae21206d8b..1fa8dbc47e 100644
--- a/macros/latex/contrib/oberdiek/tabularht.pdf
+++ b/macros/latex/contrib/oberdiek/tabularht.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/tabularkv.pdf b/macros/latex/contrib/oberdiek/tabularkv.pdf
index 128e427f7a..7746fdb439 100644
--- a/macros/latex/contrib/oberdiek/tabularkv.pdf
+++ b/macros/latex/contrib/oberdiek/tabularkv.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/telprint.pdf b/macros/latex/contrib/oberdiek/telprint.pdf
index fe655b9c09..58d1577101 100644
--- a/macros/latex/contrib/oberdiek/telprint.pdf
+++ b/macros/latex/contrib/oberdiek/telprint.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/thepdfnumber.pdf b/macros/latex/contrib/oberdiek/thepdfnumber.pdf
index 3f365b77db..3e4e1da4af 100644
--- a/macros/latex/contrib/oberdiek/thepdfnumber.pdf
+++ b/macros/latex/contrib/oberdiek/thepdfnumber.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/twoopt.pdf b/macros/latex/contrib/oberdiek/twoopt.pdf
index d061ba72d8..32de2441fc 100644
--- a/macros/latex/contrib/oberdiek/twoopt.pdf
+++ b/macros/latex/contrib/oberdiek/twoopt.pdf
Binary files differ
diff --git a/macros/latex/contrib/pict2e/p2e-drivers.pdf b/macros/latex/contrib/pict2e/p2e-drivers.pdf
index 12c0741fba..1b8add2b0e 100644
--- a/macros/latex/contrib/pict2e/p2e-drivers.pdf
+++ b/macros/latex/contrib/pict2e/p2e-drivers.pdf
Binary files differ
diff --git a/macros/latex/contrib/pict2e/pict2e.dtx b/macros/latex/contrib/pict2e/pict2e.dtx
index cccd714da7..8bb7a289fc 100644
--- a/macros/latex/contrib/pict2e/pict2e.dtx
+++ b/macros/latex/contrib/pict2e/pict2e.dtx
@@ -23,7 +23,7 @@
%
%<*package>
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{pict2e}[2020/06/20 v0.3e Improved picture commands (HjG,RN,JT)]
+\ProvidesPackage{pict2e}[2020/08/16 v0.4a Improved picture commands (HjG,RN,JT)]
%</package>
%
%<*driver>
@@ -63,9 +63,8 @@
% \fi
%
% \GetFileInfo{pict2e.sty}
-% \def\docdate{2020/06/20}
+% \def\docdate{2020/08/16}
%
-% \CheckSum{2206}
%
% ^^A ========
%
@@ -190,6 +189,7 @@
% \changes{v0.3d}{2020/06/13}{\cmd{\@sline} renamed \cmd{\pIIe@sline} (RN)}
% \changes{v0.3e}{2020/06/20}{Added \cmd{\Vector}, \cmd{\polyvector}
% suggested by FMi (RN)}
+% \changes{v0.4a}{2020/08/16}{Default lengths to match extended \LaTeX\ version}
% \fi
%
% \changes{v0.1a}{2003/07/18}{First version. (RN)}
@@ -1501,6 +1501,27 @@
%
% \subsection{Preliminaries}
%
+% \begin{macro}{\@defaultunitsset}
+% Command to accept a number or length expression.
+% Added to \LaTeX\ 2020-10-01 release but provided here for older releases.
+%
+% Set a length register, |#1|,
+% accepting number or an etex length expression, |#2|,
+% with default unit, |#3|.
+%
+% |#3| can be a literal unit such as |cm| or a length register such
+% as |\unitlength|.
+%
+% This is used in all |picture| commands that take picture coordinates.
+% So |\put(2,2)| as previously but now |\put(\textwidth-5cm,0.4\texteight)|
+% Note that you can only use expressions with lengths, |\put(1+2,0)| is not
+% supported.
+% \begin{macrocode}
+\def\@defaultunitsset#1#2#3{%
+ \@defaultunits#1\dimexpr#2#3\relax\relax\@nnil}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\pIIe@mode}
% \begin{macro}{\pIIe@code}
% \begin{macro}{\Gin@driver}
@@ -2412,7 +2433,7 @@
\begingroup
\pIIe@checkslopeargsline{#1}{#2}%
\@tempdima=#1pt\relax \@tempdimb=#2pt\relax
- \@linelen #3\unitlength
+ \@defaultunitsset\@linelen{#3}\unitlength
\ifdim\@linelen<\z@ \@badlinearg \else
\pIIe@sline
\pIIe@moveto\z@\z@
@@ -2485,10 +2506,10 @@
\begingroup
\pIIe@checkslopeargsvector{#1}{#2}%
\@tempdima=#1pt\relax \@tempdimb=#2pt\relax
- \@linelen#3\unitlength
+ \@defaultunitsset\@linelen{#3}\unitlength
\ifdim\@linelen<\z@ \@badlinearg \else
\pIIe@sline
- \@linelen#3\unitlength
+ \@defaultunitsset\@linelen{#3}\unitlength
\pIIe@pyth{\@tempdima}{\@tempdimb}\dimen@
\ifdim\@tempdima=\z@ \else
\ifdim\@tempdimb=\z@ \else
@@ -2871,7 +2892,7 @@
% argument (RN,HjG)}
% \changes{v0.2n}{2004/04/22}{Allow zero diameter (RN/HjG)}
% \begin{macrocode}
- \@tempdima#1\unitlength
+ \@defaultunitsset\@tempdima{#1}\unitlength
\ifdim\@tempdima<\z@ \pIIe@badcircarg \fi
\divide\@tempdima\tw@
\pIIe@circle\@tempdima
@@ -3038,16 +3059,12 @@
% \cite[p.~223]{LAMPORT} does not specify explicitly whether the
% \oarg{rad} argument should be given in terms of \cmd{\unitlength} or
% as an absolute length.
-% To implement this feature, we borrow from the \textsf{graphics}
-% package:
-% See \cmd{\Gin@defaultbp} and \cmd{\Gin@def@bp} from
-% \texttt{graphics.dtx}.
+% This is now re-implemented in terms of \cmd{@defaultunitsset}.
% \begin{macrocode}
\newcommand*\pIIe@defaultUL[2]{%
- \afterassignment\pIIe@def@UL\dimen@#2\unitlength\relax{#1}{#2}}
+ \@defaultunitsset\dimen@{#2}\unitlength
+ \edef#1{\the\dimen@}}
% \end{macrocode}
-% However, things are simpler in our case, since we always need the
-% value stored in \cmd{\dimen@}.
% Hence, we could\slash should omit the unnecessary argument!?)
% \changes{v0.2h}{2004/01/07}{Check for negative or zero radius
% argument (RN,HjG)}
@@ -3103,8 +3120,8 @@
% \end{macrocode}
% In analogy to circles, we need only half of the size value.
% \begin{macrocode}
- \@ovxx#1\unitlength \divide\@ovxx\tw@
- \@ovyy#2\unitlength \divide\@ovyy\tw@
+ \@defaultunitsset\@ovxx{#1}\unitlength \divide\@ovxx\tw@
+ \@defaultunitsset\@ovyy{#2}\unitlength \divide\@ovyy\tw@
\@tempdimc \ifdim\@ovyy>\@ovxx \@ovxx \else \@ovyy \fi
\ifdim\pIIe@maxovalrad<\@tempdimc \@tempdimc\pIIe@maxovalrad\relax \fi
% \end{macrocode}
@@ -3238,9 +3255,12 @@
% \begin{macrocode}
\@killglue
\begingroup
- \@ovxx#2\unitlength \@ovyy#3\unitlength
- \@ovdx#4\unitlength \@ovdy#5\unitlength
- \@xdim#6\unitlength \@ydim#7\unitlength
+ \@defaultunitsset\@ovxx{#2}\unitlength
+ \@defaultunitsset\@ovyy{#3}\unitlength
+ \@defaultunitsset\@ovdx{#4}\unitlength
+ \@defaultunitsset\@ovdy{#5}\unitlength
+ \@defaultunitsset\@xdim{#6}\unitlength
+ \@defaultunitsset\@ydim{#7}\unitlength
% \end{macrocode}
% \noindent
% \BigIndent $P_1 = P_m + 1/3 (P_0 - P_m)$
@@ -3398,10 +3418,12 @@
\def\pIIe@arc@@(#1,#2)#3{%
\if@tempswa
\pIIe@moveto\z@\z@
- \pIIe@arc{\z@}{\z@}{#3\unitlength}{#1}{#2}%
+ \@defaultunitsset\@tempdimc{#3}\unitlength
+ \pIIe@arc{\z@}{\z@}{\@tempdimc}{#1}{#2}%
\pIIe@closepath\pIIe@fillGraph
\else
- \pIIe@arc[1]{\z@}{\z@}{#3\unitlength}{#1}{#2}%
+ \@defaultunitsset\@tempdimc{#3}\unitlength
+ \pIIe@arc[1]{\z@}{\z@}{\@tempdimc}{#1}{#2}%
\pIIe@strokeGraph
\fi}
\ifx\undefined\arc
@@ -3428,12 +3450,16 @@
\def\Line(#1,#2)(#3,#4){\polyline(#1,#2)(#3,#4)}
\def\polyline(#1,#2){%
\@killglue
- \pIIe@moveto{#1\unitlength}{#2\unitlength}%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \@defaultunitsset\@tempdimb{#2}\unitlength
+ \pIIe@moveto{\@tempdimc}{\@tempdimb}%
\@ifnextchar\lp@r{\@polyline}{\PackageWarning{pict2e}%
{Polygonal lines require at least two vertices!}%
\ignorespaces}}
\def\@polyline(#1,#2){%
- \pIIe@lineto{#1\unitlength}{#2\unitlength}%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \@defaultunitsset\@tempdimb{#2}\unitlength
+ \pIIe@lineto{\@tempdimc}{\@tempdimb}%
\@ifnextchar\lp@r{\@polyline}{\pIIe@strokeGraph\ignorespaces}}
\def\Vector(#1,#2)(#3,#4){\polyvector(#1,#2)(#3,#4)}
\def\polyvector(#1,#2){%
@@ -3445,8 +3471,10 @@
% \end{macrocode}
% See the similar definition for \cmd{\vector} (\ref{sec:implementation:vector})
% \begin{macrocode}
- \@xdim#1\unitlength \@tempdima=#3\unitlength
- \@ydim#2\unitlength \@tempdimb=#4\unitlength
+ \@defaultunitsset\@xdim{#1}\unitlength
+ \@defaultunitsset\@tempdima{#3}\unitlength
+ \@defaultunitsset\@ydim{#2}\unitlength
+ \@defaultunitsset\@tempdimb{#4}\unitlength
\advance\@tempdima-\@xdim \advance\@tempdimb-\@ydim
\ifdim\@tempdima=\z@ \@linelen\@tempdimb \else
\ifdim\@tempdimb=\z@ \@linelen\@tempdima \else
@@ -3467,11 +3495,16 @@
\@ifstar{\begingroup\@tempswatrue\@polygon}%
{\begingroup\@tempswafalse\@polygon}}
\def\@polygon(#1,#2){%
- \pIIe@moveto{#1\unitlength}{#2\unitlength}%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \@defaultunitsset\@tempdimb{#2}\unitlength
+ \pIIe@moveto{\@tempdimc}{\@tempdimb}%
\@ifnextchar\lp@r{\@@polygon}{\PackageWarning{pict2e}%
{Polygons require at least two vertices!}%
\ignorespaces}}
- \def\@@polygon(#1,#2){\pIIe@lineto{#1\unitlength}{#2\unitlength}%
+ \def\@@polygon(#1,#2){%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \@defaultunitsset\@tempdimb{#2}\unitlength
+ \pIIe@lineto{\@tempdimc}{\@tempdimb}%
\@ifnextchar\lp@r{\@@polygon}{\pIIe@closepath
\if@tempswa\pIIe@fillGraph\else\pIIe@strokeGraph\fi
\endgroup
@@ -3497,20 +3530,33 @@
% \begin{macrocode}
\def\moveto(#1,#2){%
\@killglue
- \pIIe@moveto{#1\unitlength}{#2\unitlength}%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \@defaultunitsset\@tempdimb{#2}\unitlength
+ \pIIe@moveto{\@tempdimc}{\@tempdimb}%
\ignorespaces}
\def\lineto(#1,#2){%
\@killglue
- \pIIe@lineto{#1\unitlength}{#2\unitlength}%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \@defaultunitsset\@tempdimb{#2}\unitlength
+ \pIIe@lineto{\@tempdimc}{\@tempdimb}%
\ignorespaces}
\def\curveto(#1,#2)(#3,#4)(#5,#6){%
\@killglue
- \pIIe@curveto{#1\unitlength}{#2\unitlength}{#3\unitlength}{#4\unitlength}%
- {#5\unitlength}{#6\unitlength}%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \@defaultunitsset\@tempdimb{#2}\unitlength
+ \@defaultunitsset\@tempdima{#3}\unitlength
+ \@defaultunitsset\dimen@{#4}\unitlength
+ \@defaultunitsset\@ovxx{#5}\unitlength
+ \@defaultunitsset\@ovyy{#6}\unitlength
+ \pIIe@curveto{\@tempdimc}{\@tempdimb}{\@tempdima}{\dimen@}%
+ {\@ovxx}{\@ovyy}%
\ignorespaces}
\newcommand*\circlearc[6][0]{%
\@killglue
- \pIIe@arc[#1]{#2\unitlength}{#3\unitlength}{#4\unitlength}{#5}{#6}%
+ \@defaultunitsset\@tempdimc{#2}\unitlength
+ \@defaultunitsset\@tempdimb{#3}\unitlength
+ \@defaultunitsset\@tempdima{#4}\unitlength
+ \pIIe@arc[#1]{\@tempdimc}{\@tempdimb}{\@tempdima}{#5}{#6}%
\ignorespaces}
\def\closepath{\pIIe@closepath}
\def\strokepath{\pIIe@strokeGraph}
@@ -3596,9 +3642,17 @@
\def\pIIe@@cbezier#1)#2(#3)#4(#5)#6({\@cbezier#1)(#3)(#5)(}%
\def\@cbezier[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9){%
\@killglue
- \pIIe@moveto{#2\unitlength}{#3\unitlength}%
- \pIIe@curveto{#4\unitlength}{#5\unitlength}%
- {#6\unitlength}{#7\unitlength}{#8\unitlength}{#9\unitlength}%
+ \@defaultunitsset\@tempdimc{#2}\unitlength
+ \@defaultunitsset\@tempdimb{#3}\unitlength
+ \pIIe@moveto{\@tempdimc}{\@tempdimb}%
+ \@defaultunitsset\@tempdimc{#4}\unitlength
+ \@defaultunitsset\@tempdimb{#5}\unitlength
+ \@defaultunitsset\@tempdima{#6}\unitlength
+ \@defaultunitsset\dimen@{#7}\unitlength
+ \@defaultunitsset\@ovxx{#8}\unitlength
+ \@defaultunitsset\@ovyy{#9}\unitlength
+ \pIIe@curveto{\@tempdimc}{\@tempdimb}%
+ {\@tempdima}{\dimen@}{\@ovxx}{\@ovyy}%
\pIIe@strokeGraph
\ignorespaces}%
}
diff --git a/macros/latex/contrib/pict2e/pict2e.pdf b/macros/latex/contrib/pict2e/pict2e.pdf
index bb634560b3..03dcb9f143 100644
--- a/macros/latex/contrib/pict2e/pict2e.pdf
+++ b/macros/latex/contrib/pict2e/pict2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/scratch3/README b/macros/latex/contrib/scratch3/README
index a8ee05f184..cfbd104f88 100644
--- a/macros/latex/contrib/scratch3/README
+++ b/macros/latex/contrib/scratch3/README
@@ -3,9 +3,9 @@ ___________________________________
L'extension
scratch3
- v0.17
+ v0.18
- 27 avril 2020
+ 3 septembre 2020
___________________________________
Author : Christian Tellechea
diff --git a/macros/latex/contrib/scratch3/scratch3-fr.pdf b/macros/latex/contrib/scratch3/scratch3-fr.pdf
index 22d00f2c56..757fca53dd 100644
--- a/macros/latex/contrib/scratch3/scratch3-fr.pdf
+++ b/macros/latex/contrib/scratch3/scratch3-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/scratch3/scratch3-fr.tex b/macros/latex/contrib/scratch3/scratch3-fr.tex
index 03cbfc64e3..30ba693d0f 100644
--- a/macros/latex/contrib/scratch3/scratch3-fr.tex
+++ b/macros/latex/contrib/scratch3/scratch3-fr.tex
@@ -627,4 +627,8 @@ Toute remarque, remonte de bug ---~je n'ose pas dire amlioration du code~---,
\begin{version}{0.17}{27/04/2020}
>Quelques petites modifications pour ne plus appeler aucune macro prive de simplekv et sa version 0.2.
\end{version}
+\begin{version}{0.18}{03/09/2020}
+ >initialisation de \verb|\scr_yoffset| et \verb|\scr_xoffset| dans \verb|\scr_namemoreblocks|.
+ >initialisation de \verb|\scr_linewidth| dans \verb|\greenflag|.
+\end{version}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/scratch3/scratch3.sty b/macros/latex/contrib/scratch3/scratch3.sty
index fe6ca27523..d28a8a3e2e 100644
--- a/macros/latex/contrib/scratch3/scratch3.sty
+++ b/macros/latex/contrib/scratch3/scratch3.sty
@@ -5,9 +5,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
\def\scrname {scratch3} %
-\def\scrver {0.17} %
+\def\scrver {0.18} %
% %
-\def\scrdate {2020/04/27} %
+\def\scrdate {2020/09/03} %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -400,8 +400,9 @@
\gdef\scr_blockstop{0}%
}
\newcommand*\scr_namemoreblocks[1]{%
- \begin{tikzpicture}%
+ \begin{tikzpicture}
\setscratch{num blocks=false}%
+ \scr_xoffset0pt \scr_yoffset\dimexpr\scr_corner+\scr_ysepsup\relax% bugfix 0.18
\definecolor{scrmoreblocks}{HTML}{ff4d6a}% choix couleur fonce pour trac du bloc qui suit
\scr_normalblock{scrmoreblocks}{%
\definecolor{scrmoreblocks}{HTML}{ff6680}% rtablir couleur claire par dfaut
@@ -1141,6 +1142,7 @@
sharp corners,
scale=0.4
]
+ \scr_normalizedim\scr_linewidth line width[0pt,5pt]% bugfix 0.18
\draw[
line width=\scr_linewidth,
draw={%
@@ -1246,4 +1248,9 @@ Versions :
| | | initialise dans \initmoreblocks |
|---------+------------+------------------------------------------------------|
| 0.17 | 27/04/2020 | * 2 ou 3 modifs en rapport avec la v0.2 de simplekv |
+|---------+------------+------------------------------------------------------|
+| 0.18 | xx/xx/xxxx | * initialisation de \scr_yoffset et \scr_xoffset dans|
+| | | \scr_namemoreblocks |
+| | | * \scr_linewidth est dsormais dfinie dans |
+| | | \greenflag |
|---------+------------+------------------------------------------------------| \ No newline at end of file