summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lwarp
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-03-05 03:00:59 +0000
committerNorbert Preining <norbert@preining.info>2020-03-05 03:00:59 +0000
commit898048513951b471a492afa23e46112d14bcb236 (patch)
tree8596afc705f55d2d07b324a756f7283ac0e2d21b /macros/latex/contrib/lwarp
parent19d25b8009801aa98ea2f46b45c37c257f990491 (diff)
CTAN sync 202003050300
Diffstat (limited to 'macros/latex/contrib/lwarp')
-rw-r--r--macros/latex/contrib/lwarp/README.txt2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.dtx2359
-rw-r--r--macros/latex/contrib/lwarp/lwarp.ins15
-rw-r--r--macros/latex/contrib/lwarp/lwarp.pdfbin2633200 -> 2685560 bytes
-rwxr-xr-xmacros/latex/contrib/lwarp/lwarpmk.lua6
5 files changed, 2263 insertions, 119 deletions
diff --git a/macros/latex/contrib/lwarp/README.txt b/macros/latex/contrib/lwarp/README.txt
index 12e0d44443..c18fff0ffe 100644
--- a/macros/latex/contrib/lwarp/README.txt
+++ b/macros/latex/contrib/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.80 README.txt
+LaTeX lwarp package v0.81 README.txt
Files included are:
diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index e80de5d4ad..d0f16200b9 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/02/19 v0.80 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2020/03/04 v0.81 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -272,6 +272,8 @@ Keywords={LaTeX, HTML, conversion}%
\newcommand*{\goesto}{$\Rightarrow$}
+\newcommand*{\orelse}{---\,\textit{or}\,---}
+
\newcommand*{\AV}{\acro{A}\Slash\acro{V}}
\makeatletter
@@ -306,7 +308,9 @@ Keywords={LaTeX, HTML, conversion}%
\newcommand{\epkg}[1]{\textcolor[Hsb]{300,1,.5}{\pkg{#1}}}% package emulated for HTML
\newcommand{\ipkg}[1]{\textcolor[Hsb]{0,0,.5}{\pkg{#1}}}% package ignored
\newcommand{\wpkg}[1]{\textcolor[Hsb]{0,1,.5}{\pkg{#1}}}% package warning special case
-\newcommand{\sjax}{\textsuperscript{\textcolor{orange!70!black}{MJ}}}
+\newcommand{\sjax}{\textsuperscript{\textcolor[Hsb]{120,1,.4}{MJ}}}
+\newcommand{\ejax}{\textsuperscript{\textcolor[Hsb]{300,1,.5}{MJ}}}
+\newcommand{\ijax}{\textsuperscript{\textcolor[Hsb]{0,0,.5}{MJ}}}
% green/cyan/blue/magenta
% \newcommand{\spkg}[1]{\textcolor[Hsb]{120,1,.4}{\pkg{#1}}}% package supported as-is
@@ -1089,7 +1093,7 @@ exactly, in which case a label may be shifted by one space.
\newcommand{\limitslateximagefontsize}{%
For the \env{lateximage} environment,
the size of the math and text used
-\margintag{SVG image font size}
+\margintag{\SVG\ image font size}
in the \SVG\ image may be adjusted
\gindex{font>size>lateximage}%
\gindex{font>size>math, SVG}%
@@ -1122,25 +1126,27 @@ Math may be rendered
as \SVG\ graphics or using the \brand{MathJax} JavaScript display engine.
\gindex{JavaScript=\brand{JavaScript}>MathJax=\brand{MathJax}}
-Rendering math as images creates a new \SVG\ file for each expression, \margintag{SVG files}
+Rendering math as images creates a new \SVG\ file for each expression,
+\margintag{\SVG\ files}
except that an MD5 hash is used to combine identical duplicates of the same
inline math expression into a single file, which must be converted to \SVG\ only once.
Display math is still handled as individual files, since it may contain labels
or references which are likely to change.
-The \SVG\ images are currently stored separately, \margintag{SVG inline}
+The \SVG\ images are currently stored separately,
+\margintag{\SVG\ inline}
but they could be encoded in-line directly into the \HTML\ document.
This may reduce the number of files and potentially speed loading the images,
but slows the display of the rest of the document before the images are loaded.
Others \LaTeX-to-\HTML\ converters have used \PNG\ files,
-\margintag{PNG files}
+\margintag{\PNG\ files}
sometimes pre-scaled for print resolution but displayed
on-screen at a scaled down size. This allows high-quality print output at the expense
of larger files, but \SVG\ files are the preferred approach for scalable graphics.
Conversion to \MathML\ might be a better approach,
-\margintag{MathML}
+\margintag{\MathML}
among other things allowing a more compact representation of math than \SVG\ drawings.
Problems with \MathML\ include limited browser support and some
issues with the fine control of the appearance of the result.
@@ -1149,7 +1155,7 @@ Also see \cref{sec:epub} regarding \EPUB\ output with \brand{MathJax}.
\subsubsection{\SVG\ option}
For \SVG\ math,
-\margintag{SVG math option}
+\margintag{\SVG\ math option}
math is rendered as usual by \LaTeX{} into the initial \PDF\ file using the
\gindex{math>SVG summary}%
\gindex{SVG>math summary}%
@@ -1165,7 +1171,7 @@ math, allowing copy/paste of the \LaTeX{} math expression into other documents.
\limitslateximagefontsize
For \SVG\ math, text copy/paste from the \HTML\ \element{alt} tags lists the
-\margintag{SVG math copy/paste}
+\margintag{\SVG\ math copy/paste}
equation number or tag for single equations, along with the \LaTeX\ code
for the math expression.
For \AmS\ environments with multiple numbers in the same environment,
@@ -1173,8 +1179,17 @@ only the first and last is copy/pasted, as a range.
No tags are listed inside a starred \AmS\ environment, although the \cs{tag}
macro will still appear inside the \LaTeX\ math expression.
-SVG math does not work inside \TeX\ boxes, since a \cs{newpage} is required
-\trouble[SVG math in \TeX\ boxes]{math>in \TeX\ boxes}
+\SVG\ math sizing and baselines are improved if the \pkg{graphics} or \pkg{graphicx}
+\trouble[\SVG\ math size, baseline]{math>size incorrect}
+\trouble{math>baseline incorrect}
+\trouble{image>svg=\SVG\ math size and baseline}
+\trouble{SVG image>math size and baseline}
+package is loaded. An almost-invisible marker is placed at either end of the image
+to assist in cropping and computing the baseline. A warning is issued at the
+end of the compile if \pkg{graphics} or \pkg{graphicx} are not used.
+
+\SVG\ math does not work inside \TeX\ boxes, since a \cs{newpage} is required
+\trouble[\SVG\ math in \TeX\ boxes]{math>in \TeX\ boxes}
before and after each image.
\subsubsection{\brand{MathJax} option}
@@ -2878,7 +2893,7 @@ This boolean may be tested by the user for later use.
%<*package>
% \fi
%
-% \CheckSum{37579}
+% \CheckSum{42916}
%
% \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
@@ -3001,6 +3016,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.78}{2019/11/07}{\ 2019/11/07}
% \changes{v0.79}{2020/02/01}{\ 2020/02/01}
% \changes{v0.80}{2020/02/19}{\ 2020/02/19}
+% \changes{v0.81}{2020/03/04}{\ 2020/03/04}
@@ -3033,7 +3049,8 @@ 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 MathJax. Hundreds of \LaTeX\ packages are supported.
+% by \SVG\ images or \brand{MathJax}. Hundreds of \LaTeX\ packages are supported,
+% including dozens with \brand{MathJax} emulation.
%
% Documents may be produced by \DVI\ or \PDF\ \LaTeX, Lua\LaTeX, \XeLaTeX;
% by several CJK engines, classes, and packages;
@@ -3222,6 +3239,28 @@ This boolean may be tested by the user for later use.
%
% \begin{description}
% \needspace{2\baselineskip}
+% \item[v0.81:] \brand{MathJax} speedup and additional emulations.
+% \begin{itemize}
+% \item Improved warning regarding \SVG\ math sizing \Slash baselines and
+% \margintag{core}
+% \pkg{graphics} \Slash \pkg{graphicx}. See \cref{sec:limitsmath}.
+% \item Improved \brand{MathJax} emulation processing speed.
+% \margintag{\brand{MathJax}}
+% \item Added \brand{MathJax} emulation for \pkg{accsupp}, \pkg{axessibiltiy},
+% \pkg{colonequals},
+% \pkg{decimal}, \pkg{dotlessi}, \pkg{econometrics}, \pkg{engtlc},
+% \pkg{multiobjective}, \pkg{physunits}, \pkg{SIunits}, \pkg{stackrel},
+% \pkg{statmath}.
+% \item \pkg{axessibility}: Updated to 2020/01/08 version.
+% \margintag{packages}
+% \item \pkg{gridset}: Updated to v0.3.
+% \item \pkg{SIunits}: Fixed for math mode.
+% \item Added \pkg{DotArrow}, \pkg{nolbreaks}, \pkg{luamplib}, \pkg{returntogrid},
+% \pkg{statex2}, \pkg{tagpdf}.
+% \item Verified to work as-is with \pkg{icomma}, \pkg{mathpunctspace},
+% \pkg{textualicomma}.
+% \end{itemize}
+% \needspace{2\baselineskip}
% \item[v0.80:] \brand{MathJax}, \pkg{biblatex}.
% \begin{itemize}
% \item Added docs and warning/info messages
@@ -4978,7 +5017,9 @@ This boolean may be tested by the user for later use.
% as print output in \SVG\ math or \env{lateximage} environments.
% \item[\epkg{name}:] Emulated for \HTML\ output.
% \item[\ipkg{name}:] Ignored for \HTML\ output, but provides source-level compatibility.
-% \item[\sjax:] Emulated for \brand{MathJax}, subject to limitations.
+% \item[\sjax:] Supported as-is for \brand{MathJax}, subject to limitations.
+% \item[\ejax:] Emulated for \brand{MathJax} using custom macros, subject to limitations.
+% \item[\ijax:] Ignored by \brand{MathJax}, but may be used in the document source.
% \end{description}
%
% \renewcommand{\arraystretch}{1.5}
@@ -5056,7 +5097,7 @@ This boolean may be tested by the user for later use.
% \ipkg{ltxgrid}, \ipkg{nccfancyhdr}, \ipkg{notespages}, \ipkg{nowidow},
% \ipkg{pagegrid}, \ipkg{pagesel}, \epkg{parallel}, \epkg{parcolumns},
% \ipkg{pdfcolparallel}, \ipkg{pdfcolparcolumns}, \ipkg{pdfcrypt}, \ipkg{pdfprivacy},
-% \ipkg{preview}, \epkg{ragged2e}, \ipkg{rmpage},
+% \ipkg{preview}, \epkg{ragged2e}, \ipkg{returntogrid}, \ipkg{rmpage},
% \epkg{scrlayer-scrpage}, \epkg{scrpage2}, \epkg{setspace},
% \ipkg{textarea}, \ipkg{threadcol},
% \ipkg{thumb}, \ipkg{thumbs}, \ipkg{titleps}, \ipkg{tocenter},
@@ -5127,7 +5168,7 @@ This boolean may be tested by the user for later use.
% Math: & Converted to \SVG\ images with \HTML\ \element{alt} tags containing the
% \LaTeX\ source for the math expression.
% \brand{MathJax} supported as an alternative.
-% \mpkg{amsmath}\sjax: \AmS\ environments are supported.
+% \mpkg{amsmath}\ejax: \AmS\ environments are supported.
% User-defined macros are available during converson,
% due to native \LaTeX\ processing.\\
%
@@ -5135,18 +5176,23 @@ This boolean may be tested by the user for later use.
% \mpkg{amsthm}, \mpkg{ntheorem}, \mpkg{theorem}. \\
%
% Additional math: & Math fonts via \SVG\ images,
-% \spkg{amscd}, \spkg{autobreak}\sjax, \ipkg{autonum},
-% \mpkg{backnaur}, \mpkg{bm}\sjax, \spkg{braket}\sjax,
-% \mpkg{breqn}, \mpkg{cases}, \spkg{centernot}\sjax,
-% \spkg{delarray}, \spkg{extarrows}\sjax, \spkg{fouridx}\sjax,
-% \spkg{guass}, \spkg{jkmath},
-% \spkg{leftidx}\sjax, \spkg{mathcomp}\sjax, \spkg{mathdots}\sjax, \spkg{mathfixs}\sjax,
-% \spkg{mathspec}, \mpkg{mathtools}\sjax, \mpkg{mismath}\sjax,
-% \mpkg{nccmath}\sjax,
-% \spkg{nicematrix}, \spkg{noitcrul}\sjax, \spkg{pb-diagram},
-% \ipkg{resizegather}, \spkg{rmathbr}\sjax, \spkg{subsupscripts}\sjax,
-% \spkg{unicode-math}\sjax, \mpkg{witharrows}\sjax,
-% \mpkg{xfakebold}\sjax, \mpkg{xy}.
+% \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{mathfixs}\ejax, \spkg{mathpunctspace}\ijax,
+% \spkg{mathspec}, \mpkg{mathtools}\ejax, \mpkg{mismath}\ejax,
+% \spkg{multiobjective}\ejax, \mpkg{nccmath}\ejax,
+% \spkg{nicematrix}, \spkg{noitcrul}\ejax, \spkg{pb-diagram},
+% \ipkg{resizegather}, \spkg{rmathbr}\ejax, \spkg{stackrel}\ejax,
+% \mpkg{statex2}\ejax, \spkg{statmath}\ejax,
+% \spkg{subsupscripts}\ejax, \spkg{textualicomma}\ijax,
+% \spkg{unicode-math}\ejax, \mpkg{witharrows}\ejax,
+% \mpkg{xfakebold}\ejax, \mpkg{xy}.
% Many others work as-is. \\
%
% Display math with \cs{displaymathother}: & %
@@ -5155,8 +5201,8 @@ This boolean may be tested by the user for later use.
% \midrule
%
% Units and fractions: &
-% \mpkg{nicefrac}\sjax, \mpkg{SIunits}, \mpkg{siunitx}\sjax,
-% \mpkg{units}\sjax, \mpkg{unitsdef}, \mpkg{xfrac}\sjax. \\
+% \mpkg{nicefrac}\ejax, \mpkg{SIunits}\ejax, \mpkg{siunitx}\ejax,
+% \mpkg{units}\ejax, \mpkg{unitsdef}, \mpkg{xfrac}\ejax. \\
%
% \midrule
%
@@ -5173,11 +5219,11 @@ This boolean may be tested by the user for later use.
% \midrule
%
% Tabular: &
-% \env{tabular} environment, \mpkg{array}\sjax, \epkg{arydshln}\sjax,
-% \mpkg{bigdelim}\sjax, \mpkg{bigstrut}\sjax, \mpkg{booktabs}\sjax,
-% \mpkg{colortbl}, \mpkg{ctable}, \mpkg{diagbox}, \mpkg{hhline}\sjax, \epkg{longtable},
+% \env{tabular} environment, \mpkg{array}\ejax, \epkg{arydshln}\ejax,
+% \mpkg{bigdelim}\ejax, \mpkg{bigstrut}\ejax, \mpkg{booktabs}\ejax,
+% \mpkg{colortbl}, \mpkg{ctable}, \mpkg{diagbox}, \mpkg{hhline}\ejax, \epkg{longtable},
% \epkg{ltablex}, \epkg{ltxtable},
-% \mpkg{multirow}\sjax, \epkg{supertabular}, \epkg{tabularx}, \epkg{tabulary},
+% \mpkg{multirow}\ejax, \epkg{supertabular}, \epkg{tabularx}, \epkg{tabulary},
% \epkg{threeparttable}, \mpkg{threeparttablex},
% \epkg{widetable}, \epkg{xltabular}, \epkg{xtab}. \\
%
@@ -5195,7 +5241,8 @@ This boolean may be tested by the user for later use.
% \mpkg{asymptote}, \spkg{curves}, \spkg{datatool},
% \spkg{eepic}, \epkg{epsfig}, \spkg{epstopdf},
% \epkg{figsize}, \ipkg{fitbox},
-% \spkg{grffile}, \epkg{media9}, \epkg{movie15}, \epkg{multimedia}, \mpkg{overpic},
+% \spkg{grffile}, \mpkg{luamplib}, \epkg{media9},
+% \epkg{movie15}, \epkg{multimedia}, \mpkg{overpic},
% \mpkg{psfrag}, \mpkg{psfragx}, \mpkg{pst-eps}, \mpkg{pstool}, \mpkg{pstricks},
% \spkg{rviewport}, \mpkg{svg}, \spkg{svg-extract}, \spkg{tikz-3dplot}. \\
%
@@ -5245,9 +5292,10 @@ This boolean may be tested by the user for later use.
% \cs{bfseries}, etc.\ are only supported in some cases.
% \mpkg{cancel}, \epkg{ellipsis}, \mpkg{embrac}, \spkg{enparen},
% \ipkg{hyphenat}, \epkg{lettrine}, \epkg{lips},
-% \ipkg{lua-check-hyphen}, \ipkg{luacolor}, \epkg{magaz}, \ipkg{normalcolor},
+% \ipkg{lua-check-hyphen}, \ipkg{luacolor}, \epkg{magaz}, \epkg{nolbreaks},
+% \ipkg{normalcolor},
% \ipkg{pdfcol}, \ipkg{pdfcolmk},
-% \ipkg{pdfrender}, \epkg{realscripts}, \mpkg{relsize}\sjax,
+% \ipkg{pdfrender}, \epkg{realscripts}, \mpkg{relsize}\ejax,
% \ipkg{scalefnt}, \epkg{soul}, \epkg{soulpos}, \epkg{soulutf8}, \mpkg{stackengine},
% \epkg{textfit}, \epkg{thinsp}, \ipkg{trimclip}, \ipkg{truncate},
% \mpkg{ulem}, \mpkg{umoline}, \ipkg{underscore}, \ipkg{uspace},
@@ -5282,8 +5330,8 @@ This boolean may be tested by the user for later use.
%
% Symbols: & Native \LaTeX\ diacriticals, \mpkg{academicons}, \mpkg{bbding},
% \mpkg{chemgreek}, \mpkg{dingbat}, \spkg{euro}, \mpkg{eurosym},
-% \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\sjax, \mpkg{marvosym},
-% \spkg{mathcomp}\sjax, \mpkg{metalogo}, \mpkg{metalogox},
+% \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\ejax, \mpkg{marvosym},
+% \spkg{mathcomp}\ejax, \mpkg{metalogo}, \mpkg{metalogox},
% \mpkg{pifont}, \spkg{textalpha},
% \mpkg{textcomp}, \spkg{textgreek}, \mpkg{typicons}, \mpkg{xunicode}.
% \\
@@ -5298,18 +5346,18 @@ This boolean may be tested by the user for later use.
% \midrule
%
% Science and engineering: &
-% \mpkg{algorithm2e}, \mpkg{algorithmicx}, \mpkg{ar}\sjax, \spkg{askmaps},
+% \mpkg{algorithm2e}, \mpkg{algorithmicx}, \mpkg{ar}\ejax, \spkg{askmaps},
% \mpkg{axodraw2}, \mpkg{bitpattern}, \spkg{blochsphere}, \spkg{bodegraph},
% \spkg{bohr}, \mpkg{bytefield},
% \mpkg{chemfig}, \mpkg{chemformula}, \mpkg{chemgreek},
% \mpkg{chemmacros}, \mpkg{chemnum},
-% \spkg{circuitikz}, \spkg{elements}, \spkg{engtlc}, \spkg{fast-diagram},
-% \mpkg{ghsystem},
+% \spkg{circuitikz}, \spkg{econometrics}\ejax, \spkg{elements},
+% \mpkg{engtlc}\ejax, \spkg{fast-diagram}, \mpkg{ghsystem},
% \spkg{hepnicenames}, \spkg{heppennames}, \spkg{karnaughmap}, \mpkg{karnaugh-map},
% \mpkg{listings}, \spkg{linop}, \mpkg{mhchem}\sjax, \spkg{pgfgantt},
-% \mpkg{phfqit}, \spkg{physics}\sjax, \spkg{qcircuit},
+% \mpkg{phfqit}, \spkg{physics}\ejax, \spkg{physunits}\ejax, \spkg{qcircuit},
% \mpkg{register}, \spkg{simpler-wick},
-% \spkg{slashed}\sjax, \mpkg{steinmetz}\sjax, \spkg{structmech}, \mpkg{struktex}.
+% \spkg{slashed}\ejax, \mpkg{steinmetz}\ejax, \spkg{structmech}, \mpkg{struktex}.
% \spkg{tikz-karnaugh}, \spkg{tikzcodeblocks} \\
%
% \midrule
@@ -5327,14 +5375,15 @@ This boolean may be tested by the user for later use.
% Editorial: & \ipkg{changebar}, \spkg{changelog}, \mpkg{changes},
% \mpkg{easy-todo}, \spkg{easyReview}, \mpkg{ed}, \mpkg{errata}, \mpkg{fixme},
% \mpkg{fixmetodonotes},
-% \ipkg{pdfcomment}\sjax, \ipkg{pdfmarginpar},
+% \ipkg{pdfcomment}\ejax, \ipkg{pdfmarginpar},
% \mpkg{todo}, \mpkg{todonotes}, \epkg{tram}, \ipkg{xechangebar}.
% \\
%
% \midrule
%
-% Accessibility: & \epkg{accessibility}\sjax, \ipkg{accsupp}, \ipkg{axessibility},
-% \ipkg{pdfcomment}\sjax. \\
+% Accessibility: & \epkg{accessibility}\ijax, \ipkg{accsupp}\ijax,
+% \ipkg{axessibility}\ijax,
+% \ipkg{pdfcomment}\ijax, \ipkg{tagpdf}. \\
%
% \midrule
%
@@ -6382,7 +6431,7 @@ This boolean may be tested by the user for later use.
%
% \item Use \prog{xelatex} or \prog{lualatex} to compile the printed version
% a single time.
-% \userentry{xelatex tutorial.tex} \quad -or-
+% \userentry{xelatex tutorial.tex} \quad \orelse
% \userentry{lualatex tutorial.tex}
%
% When the compile occurs,
@@ -6873,9 +6922,9 @@ This boolean may be tested by the user for later use.
% See the next section regarding index encoding.
%
% \XeLaTeX{} and \LuaLaTeX{} users must use the \pkg{fontspec} package.
-% \trouble[\prog{xelatex} and \prog{lualatex}]{xelatex=xe\LaTeX}
+% \trouble[\prog{xelatex}, \prog{lualatex}, \pkg{fontspec}]{xelatex=xe\LaTeX}
% \trouble{lualatex=lua\LaTeX}
-% \trouble{fontspec=\pkg{fontspec}}
+% \trouble{fontspec=\pkg{fontspec}>xelatex=with \XeLaTeX, \LuaLaTeX.}
% Do NOT use \pkg{fontenc}!
%
% Place \pkg{fontspec} or \pkg{fontenc}, \pkg{xunicode}, and other font and UTF-8 related commands
@@ -6927,10 +6976,16 @@ This boolean may be tested by the user for later use.
% \item |\input glyphtounicode-cmr.tex% from the pdfx package|
% \item |\pdfgentounicode=1|
% \end{enumerate}
-% \item Another option to assist with the \PDF-\HTML\ conversion:
+% \item Another option to assist with the \PDF-\HTML\ conversion, such
+% as the dotless j (\cs{j}):
+% \trouble[dotless j]{dotless j}
+% \trouble{j=\cs{j}}
% \begin{itemize}
-% \item |\usepackage{cmap}|
+% \item |\usepackage{cmap}| \qquad \orelse
% \DescribePackage{cmap}
+% \item |\usepackage{mmap}| \qquad \orelse
+% \DescribePackage{mmap}
+% \item |\usepackage[noTeX]{mmap}|
% \end{itemize}
% \item |\usepackage{textcomp}|
% \DescribePackage{textcomp}
@@ -6943,14 +6998,15 @@ 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}) goes after any of the above, followed by:
+% \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}.
% \item |\setmonofont{TeX Gyre Cursor}| or similar may be required if using
-% \trouble[\pkg{fontspec} with traditional font packages]{font>monospace}
+% \trouble[\pkg{fontspec} with monospaced fonts]{font>monospace}
% \trouble{font>ligatures}
% \trouble{ligatures}
+% \trouble{fontspec=\pkg{fontspec}>mono=with monospaced fonts}
% \XeLaTeX\ or \LuaLaTeX\ and \pkg{fontspec} along with
% traditional font packages such as \pkg{txfonts}, \pkg{newtxtext}, etc.
% This is required to turn off the monospaced font's ligatures
@@ -10578,7 +10634,7 @@ This boolean may be tested by the user for later use.
% Each |lwarp-*| package should first call either of:
% \begin{sourcedisplay}
% \cs{LWR@ProvidesPackage\textblue{Drop}} \\
-% \fquad \textrm{-or-} \\
+% \fquad \textrm{\orelse} \\
% \cs{LWR@ProvidesPackage\textblue{Pass}}
% \end{sourcedisplay}
% If ``|Drop|''ped, the original print-version
@@ -10804,7 +10860,7 @@ This boolean may be tested by the user for later use.
% \item[(width,height) missing a comma:] \cs{makebox} and \cs{framebox} can accept
% a parenthesis-delimited width and height, which must be separated by a comma.
% \item[``Load graphicx or graphics for improved SVG math baselines.'':] \SVG\ math
-% baselines are improved if either of these packages are used.
+% sizing and baselines are improved if either of these packages are used.
% \item[``Load graphicx or graphics for improved XeTeX logo.'':] If these packages
% are loaded, the \XeLaTeX\ logo can use the reversed ``E''.
% \item[``It is recommended to use \texttt{[width=xx\cs{linewidth}]}
@@ -10839,6 +10895,9 @@ This boolean may be tested by the user for later use.
% the characters |&|, |<|, and |>|.
% \end{itemize}
%
+% \item [Dotless j (\cs{j}):] See \cref{sec:fonts} regarding \pkg{cmap}, \pkg{mmap}.
+% \trouble[\pkg{dotlessj}]{dotlessj=\pkg{dotlessj}}
+%
% \item [Undefined \HTML\ settings:] \
% \trouble{HTML>settings>undefined}
% \begin{itemize}
@@ -10955,11 +11014,11 @@ This boolean may be tested by the user for later use.
% may not compile in \pkg{lwarp}'s normal math emulation.
% Insert
% \begin{sourcedisplay}
-% \cs{displaymathother} \textrm{-or-} \cs{inlinemathother}
+% \cs{displaymathother} \textrm{\orelse} \cs{inlinemathother}
% \end{sourcedisplay}
% before the math, and then
% \begin{sourcedisplay}
-% \cs{displaymathnormal} \textrm{-or-} \cs{inlinemathnormal}
+% \cs{displaymathnormal} \textrm{\orelse} \cs{inlinemathnormal}
% \end{sourcedisplay}
% when displaying ``normal'' math.
% See \cref{sec:displaymathother}.
@@ -11663,6 +11722,7 @@ This boolean may be tested by the user for later use.
% \pkg{picinpar}, \pkg{picins}, \pkg{sistyle}, \pkg{ucs}.}
% \changes{v0.68}{2019/02/26}{Prevented \pkg{alg}, \pkg{algorithmic}, \pkg{fncylab}, \pkg{pdfcprot}.}
% \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.}
+% \changes{v0.81}{2020/02/15}{Prevented \pkg{statex}.}
%
% \begin{macrocode}
\LWR@earlyclassloadnever{jarticle}{ujarticle}
@@ -11697,6 +11757,7 @@ This boolean may be tested by the user for later use.
\LWR@earlyloadnever{si}{siunitx}
\LWR@earlyloadnever{sistyle}{siunitx}
\LWR@earlyloadnever{slashbox}{diagbox}
+\LWR@earlyloadnever{statex}{statex2}
\LWR@earlyloadnever{t1enc}{fontenc, inputenc, inputenx}
\LWR@earlyloadnever{ucs}{inputenc, inputencx}
\LWR@earlyloadnever{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
@@ -11794,7 +11855,9 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{caption}
\LWR@loadafter{caption2}
\LWR@loadafter{cases}
+% catoptions is supported by the lwarp core
% \LWR@loadafter{ccaption}% may be preloaded by memoir
+\LWR@loadafter{centernot}
\LWR@loadafter{changebar}
\LWR@loadafter{changelayout}
\LWR@notmemoirloadafter{changepage}
@@ -11810,6 +11873,7 @@ This boolean may be tested by the user for later use.
\LWR@notmemoirloadafter{chngpage}
\LWR@loadafter{cite}
\LWR@loadafter{cmdtrack}
+\LWR@loadafter{colonequals}
\LWR@loadafter{color}
\LWR@loadafter{colortbl}
\LWR@loadafter{continue}
@@ -11822,14 +11886,18 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{dblfloatfix}
\LWR@loadafter{dblfnote}
\LWR@notmemoirloadafter{dcolumn}
+\LWR@loadafter{decimal}
\LWR@loadafter{diagbox}
\LWR@loadafter{dingbat}
+\LWR@loadafter{DotArrow}
+\LWR@loadafter{dotlessi}
\LWR@loadafter{dprogress}
\LWR@loadafter{draftcopy}
\LWR@loadafter{draftfigure}
\LWR@loadafter{draftwatermark}
\LWR@loadafter{easy-todo}
\LWR@loadafter{ebook}
+\LWR@loadafter{econometrics}
\LWR@loadafter{ed}
\LWR@loadafter{ellipsis}
\LWR@loadafter{embrac}
@@ -11837,6 +11905,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{endfloat}
\LWR@loadafter{endheads}
\LWR@loadafter{endnotes}
+\LWR@loadafter{engtlc}
\LWR@notmemoirloadafter{enumerate}
\LWR@loadafter{enumitem}
\LWR@notmemoirloadafter{epigraph}
@@ -11951,6 +12020,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{lua-check-hyphen}
\LWR@loadafter{lua-visual-debug}
\LWR@loadafter{luacolor}
+\LWR@loadafter{luamplib}
\LWR@loadafter{luatodonotes}
\LWR@loadafter{lyluatex}
\LWR@loadafter{magaz}
@@ -11961,6 +12031,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{marginnote}
\LWR@loadafter{marvosym}
\LWR@loadafter{mathcomp}
+\LWR@loadafter{mathdots}
\LWR@loadafter{mathfixs}
\LWR@loadafter{mathtools}
\LWR@loadafter{mcaption}
@@ -11985,6 +12056,7 @@ This boolean may be tested by the user for later use.
%\LWR@loadafter{multicol}% loaded by ltxdoc
\LWR@loadafter{multicolrule}
\LWR@loadafter{multimedia}
+\LWR@loadafter{multiobjective}
\LWR@loadafter{multirow}
\LWR@loadafter{multitoc}
\LWR@loadafter{musicography}
@@ -12001,6 +12073,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{nicefrac}
\LWR@loadafter{niceframe}
\LWR@loadafter{noitcrul}
+\LWR@loadafter{nolbreaks}
\LWR@loadafter{nomencl}
\LWR@loadafter{nonfloat}
\LWR@loadafter{nonumonpart}
@@ -12039,6 +12112,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{pfnote}
\LWR@loadafter{phfqit}
\LWR@loadafter{physics}
+\LWR@loadafter{physunits}
\LWR@loadafter{pifont}
\LWR@loadafter{placeins}
\LWR@loadafter{plarray}
@@ -12068,6 +12142,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{relsize}
\LWR@loadafter{repeatindex}
\LWR@loadafter{resizegather}
+\LWR@loadafter{returntogrid}
\LWR@loadafter{rmathbr}
\LWR@loadafter{rmpage}
\LWR@loadafter{romanbar}
@@ -12108,6 +12183,9 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{srctex}
\LWR@loadafter{stabular}
\LWR@loadafter{stackengine}
+\LWR@loadafter{stackrel}
+\LWR@loadafter{statex2}
+\LWR@loadafter{statmath}
\LWR@loadafter{steinmetz}
\LWR@notltjloadafter{stfloats}
\LWR@loadafter{struktex}
@@ -12124,6 +12202,7 @@ This boolean may be tested by the user for later use.
\LWR@notmemoirloadafter{tabularx}
\LWR@loadafter{tabulary}
\LWR@loadafter{tascmac}
+\LWR@loadafter{tagpdf}
\LWR@loadafter{textarea}
% \LWR@loadafter{textcomp}% maybe before lwarp with font packages
\LWR@loadafter{textfit}
@@ -14079,6 +14158,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.68}{2019/02/26}{Prevented \pkg{alg}, \pkg{algorithmic}, \pkg{fncylab}, \pkg{pdfcprot}.}
% \changes{v0.79}{2020/01/09}{Prevented \pkg{bxcjkjatype}, \pkg{hangul}.}
% \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.}
+% \changes{v0.81}{2020/02/28}{Prevented \pkg{statex}.}
%
% The following should never be loaded:
% \begin{macrocode}
@@ -14109,6 +14189,7 @@ This boolean may be tested by the user for later use.
\LWR@checkloadnever{#1}{si}{siunitx}
\LWR@checkloadnever{#1}{sistyle}{siunitx}
\LWR@checkloadnever{#1}{slashbox}{diagbox}
+\LWR@checkloadnever{#1}{statex}{statex2}
\LWR@checkloadnever{#1}{t1enc}{fontenc, inputenc, inputenx}
\LWR@checkloadnever{#1}{ucs}{inputenc, inputencx}
\LWR@checkloadnever{#1}{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
@@ -15872,6 +15953,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.75}{2019/09/22}{\filenm{lwarp.css}: Improved marginblock.}
% \changes{v0.76}{2019/10/02}{\filenm{lwarp.css}: Fix for small caps.}
% \changes{v0.79}{2020/01/17}{\filenm{lwarp.css}: Fix: Nested \env{tabular}s.}
+% \changes{v0.81}{2020/02/22}{\filenm{lwarp.css}: Added \pkg{nolbreaks}.}
%
% ^^A *lwarp.css
%
@@ -17351,6 +17433,10 @@ div.notesicon {
div.notescontents { font-style: italic }
+/* nolbreaks package: */
+span.nolbreaks { white-space: nowrap ; }
+
+
/*
For CSS LaTeX and related logos:
Based on spacing demonstrated by the metafont package.
@@ -18425,6 +18511,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-
% 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.}%
%
% The following is only generated if the \optn{lwarpmk} option
% was given to \pkg{lwarp}.
@@ -18440,7 +18527,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.80"
+printversion = "v0.81"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -18672,7 +18759,9 @@ if sourcename=="lwarp" then
print ("lwarpmk: ===")
print ("lwarpmk: lwarp.sty has recently been recompiled in this directory,")
print ("lwarpmk: and \"lwarpmk.conf\" is no longer set for your own project.")
- print ("lwarpmk: Recompile your own project using pdf/lua/xelatex <projectname>.")
+ print ("lwarpmk: (Perhaps you are not in your project's directory?)")
+ print ("lwarpmk: In your project directory, recompile your project")
+ print ("lwarpmk: using pdf/lua/xelatex <projectname>.")
print ("lwarpmk: After a recompile, \"lwarpmk.conf\" will be set for your project,")
print ("lwarpmk: and you may again use lwarpmk.")
print ("lwarpmk: ===")
@@ -22530,6 +22619,37 @@ end -- not --version
% inside an \HTML\ \element{alt} tag, so must convert them to \HTML\ entities.
%
%
+% \begin{macro}{\LWR@replacestrings} \marg{search} \marg{replace}
+%
+% Replaces strings inside \cs{tmpb}.
+%
+% Modified from the original by \textsc{Petr Olsak}, from the \pkg{opmac} package.
+%
+% \changes{v0.81}{2020/02/24}{Added.}
+% \begin{macrocode}
+\bgroup
+\catcode`!=3 \catcode`?=3
+
+\long\gdef\LWR@replacestrings@addto#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+
+\gdef\LWR@replacestrings#1#2{%
+ \long\def\LWR@replacestringsA##1#1{\def\tmpb{##1}\LWR@replacestringsB}%
+ \long\def\LWR@replacestringsB##1#1{%
+ \ifx!##1\relax \else\LWR@replacestrings@addto\tmpb{#2##1}%
+ \expandafter\LWR@replacestringsB\fi%
+ }% improved version <May 2016> inspired
+ \expandafter\LWR@replacestringsA\tmpb?#1!#1% from pysyntax.tex by Petr Krajnik
+ \long\def\LWR@replacestringsA##1?{%
+ \def\tmpb{##1}%
+ }\expandafter\LWR@replacestringsA\tmpb%
+}
+\egroup
+% \end{macrocode}
+% \end{macro}
+
+
% \begin{macro}{\LWR@subHTMLsanitize}
%
% \cs{LWR@strresult} must first be set by \cs{LWR@HTMLsanitize},
@@ -22538,26 +22658,23 @@ end -- not --version
% \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{\&}. Factored.}
+% \changes{v0.81}{2020/02/24}{Faster.}
% \begin{macrocode}
+\catcode`\#=12
+\catcode`\&=12
\newcommand{\LWR@subHTMLsanitize}{%
% \end{macrocode}
% The |&|, |<|, and |>| may be interpreted by the browser:
+%
% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{&}}{\detokenize{&amp;}}[\LWR@strresult]%
-% \end{macrocode}
-% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{<}}{\detokenize{&lt;}}[\LWR@strresult]%
-% \end{macrocode}
-% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{>}}{\detokenize{&gt;}}[\LWR@strresult]%
+ \edef\tmpb{\detokenize\expandafter{\LWR@strresult}}%
+ \LWR@replacestrings{&}{&amp;}%
+ \LWR@replacestrings{<}{&lt;}%
+ \LWR@replacestrings{>}{&gt;}%
% \end{macrocode}
% The double quote occasionally causes problems.
% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{"}}{\detokenize{&quot;}}[\LWR@strresult]%
+ \LWR@replacestrings{"}{&quot;}%
% \end{macrocode}
% MathJax allows expressions to be defined with \cs{newcommand}.
% These expressions would appear with |##| for each argument,
@@ -22565,11 +22682,11 @@ end -- not --version
% This must be done after all the above changes.
% Attempting another conversion after this causes an error upon further expansion.
% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{##}}{\LWR@origpound}[\LWR@strresult]%
-% \end{macrocode}
-% \begin{macrocode}
+ \LWR@replacestrings{##}{#}%
+ \edef\LWR@strresult{\detokenize\expandafter{\tmpb}}%
}
+\catcode`\#=6
+\catcode`\&=4
% \end{macrocode}
% \end{macro}
@@ -22703,8 +22820,10 @@ end -- not --version
% \changes{v0.80}{2020/02/06}{Add: Info message.}
% \begin{macrocode}
\newcommand*{\LWR@infoprocessingmathjax}[1]{%
+\typeout{---}
\typeout{Package lwarp: Processing MathJax customizations for #1.}
\typeout{\space\space This may take a moment.}
+\typeout{---}
}
% \end{macrocode}
% \end{macro}
@@ -25595,7 +25714,7 @@ end -- not --version
% \changes{v0.25}{2017/03/17}{Basic \LaTeX\ theorems: improved \CSS.}
%
%
-% \DescribeMacro{\newtheorem} \marg{text} \oarg{counter} -or- \oarg{oldname} \marg{text}
+% \DescribeMacro{\newtheorem} \marg{text} \oarg{counter} \orelse\ \oarg{oldname} \marg{text}
%
% A few minor changes are made to supply \HTML\ tags.
%
@@ -27754,7 +27873,7 @@ end -- not --version
% \subsection{Printing @ or ! tags}
-% \begin{macro}{\LWR@printatbang} \marg{at -or- bang} \marg{index}
+% \begin{macro}{\LWR@printatbang} \marg{at \orelse\ bang} \marg{index}
%
% \changes{v0.41}{2017/09/28}{Add: \cs{cmidrule} trims.}
% \changes{v0.41}{2017/10/02}{Add: Mute at and bang columns for \cs{bottomrule}.}
@@ -32735,6 +32854,7 @@ end -- not --version
% or if graphicx/s not loaded.}
% \changes{v0.59}{2018/09/02}{Uses \filenm{.eps} if \DVI\ \prog{latex}.}
% \changes{v0.73}{2019/06/30}{Improved warning messages.}
+% \changes{v0.81}{2020/02/29}{Improved warning messages.}
% \begin{macrocode}
\AtBeginDocument{
@@ -32760,19 +32880,31 @@ end -- not --version
\LWR@origincludegraphics{\LWR@baselinename}%
}
}{
- \PackageWarningNoLine{lwarp}{Load graphicx or graphics
- for improved\MessageBreak
- SVG math baselines%
+ \newcommand*{\LWR@addbaselinemarker}{%
+ \global\booltrue{LWR@warnbaselinemarker}%
+ }
+ \AtEndDocument{
+ \ifbool{LWR@warnbaselinemarker}{
+ \PackageWarningNoLine{lwarp}{%
+ Load graphicx or graphics for improved\MessageBreak
+ SVG math sizing and baselines%
+ }
+ }{}
}
- \newcommand*{\LWR@addbaselinemarker}{}
}
}
}{% lwarp_baseline_marker.png or .eps is not present
- \PackageWarningNoLine{lwarp}{%
- File \LWR@baselinename\space is not installed\MessageBreak
- alongside the lwarp-*.sty files,\MessageBreak
- so SVG math baselines may not be accurate}
- \newcommand*{\LWR@addbaselinemarker}{}
+ \newcommand*{\LWR@addbaselinemarker}{%
+ \global\booltrue{LWR@warnbaselinemarker}%
+ }
+ \AtEndDocument{
+ \ifbool{LWR@warnbaselinemarker}{
+ \PackageWarningNoLine{lwarp}{%
+ File \LWR@baselinename\space is not installed\MessageBreak
+ alongside the lwarp-*.sty files, so\MessageBreak
+ SVG math sizing and baselines may not be accurate}
+ }{}
+ }
}
}% AtBeginDocument
@@ -32780,6 +32912,16 @@ end -- not --version
% \end{macro}
+% \DescribeBoolean{LWR@warnbaselinemarker}
+% True if the math baseline marker was ever called for, but
+% \pkg{graphics} or \pkg{graphicx} were not loaded.
+% \begin{macrocode}
+\newbool{LWR@warnbaselinemarker}
+\boolfalse{LWR@warnbaselinemarker}
+% \end{macrocode}
+
+
+
% \DescribeBoolean{LWR@unknownmathsize}
% If \tikz\ or other objects are used inside math mode, the resulting
% image may exceed the \TeX\ box, resulting in an incorrect measurement of
@@ -33343,9 +33485,12 @@ end -- not --version
\renewcommand{\@ensuredmath}[1]{%
\ifbool{mathjax}{%
- \LWR@subsingledollar*{\AltTextOpen\MathImageAltText\AltTextClose}{%
+ \LWR@subsingledollar*{\AltTextOpen\MathImageAltText\AltTextClose}%
+ {%
\protect\LWR@HTMLsanitize{\detokenize\expandafter{#1}}%
- }{\relax%
+ }%
+ {%
+ \relax%
\LWR@origensuredmath{#1}%
}%
}{% SVG math
@@ -38933,6 +39078,15 @@ color:\LWR@origpound\LWR@tempcolor%
\newcommand*{\EndAccSupp}[1]{}
% \end{macrocode}
%
+% For \brand{MathJax}:
+% \changes{v0.80}{2020/02/20}{\pkg{accsupp}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\BeginAccSupp}[1]{}}
+\CustomizeMathJax{\newcommand{\EndAccSupp}[1]{}}
+\end{warpMathJax}
+% \end{macrocode}
+%
% \iffalse
%</accsupp>
% \fi
@@ -41255,15 +41409,49 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
% \pkg{axessibility} is ignored.
%
% \changes{v0.59}{2018/07/25}{\pkg{axessibility}: Added.}
+% \changes{v0.81}{2020/02/20}{\pkg{axessibility}: Updated to 2020/01/08 version.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{axessibility}
+\PackageInfo{lwarp}{Using the lwarp version of package `axessibility'.}%
+\ProvidesPackage{lwarp-axessibility}% no date is declared by the original
+
+\newif\iftagpdfopt
+
+\DeclareOption{accsupp}{
+ \tagpdfoptfalse
+}
+
+\DeclareOption{tagpdf}{
+ \tagpdfopttrue
+}
+
+\ProcessOptions\relax
+
+\iftagpdfopt
+ \RequirePackage{tagpdf}
+\else
+ \RequirePackage{accsupp}
+\fi
% \end{macrocode}
%
% \begin{macrocode}
-\newcommand{\wrap}[1]{}
+\long\def\wrap#1{}
+\long\def\wrapml#1{}
+\long\def\wrapmlstar#1{}
+\long\def\wrapmlalt#1{}
+% \end{macrocode}
+%
+% For \brand{MathJax}. These usually will not be needed.
+% \changes{v0.81}{2020/02/20}{\pkg{axessibility}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\wrap}[1]{}}
+\CustomizeMathJax{\newcommand{\wrapml}[1]{}}
+\CustomizeMathJax{\newcommand{\wrapmlstar}[1]{}}
+\CustomizeMathJax{\newcommand{\wrapmlalt}[1]{}}
+\end{warpMathJax}
% \end{macrocode}
%
% \iffalse
@@ -41271,6 +41459,8 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
% \fi
%
%
+%
+%
% \iffalse
%<*axodraw2>
% \fi
@@ -45424,6 +45614,66 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+% \iffalse
+%<*colonequals>
+% \fi
+%
+% \part{lwarp-colonequals.sty}
+%
+% \section{colonequals}
+%
+% \credits{Heiko Oberdiek}
+%
+% \DescribePackage{colonequals}
+% \pkg{colonequals} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% Since \brand{Unicode} symbols are not available for each of the following,
+% only two are used for the single and double colons, and the other symbols
+% are derived in a consistent manner. Occasional negative space is added as well.
+% This may need to be undone for some fonts.
+%
+% \changes{v0.81}{2020/03/03}{\pkg{colonequals}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{colonequals}[2016/05/16]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{colonequals}
+
+\CustomizeMathJax{\newcommand{\ratio}{\unicode{x2236}}}
+\CustomizeMathJax{\newcommand{\coloncolon}{\unicode{x2237}}}
+\CustomizeMathJax{\newcommand{\colonequals}{\coloncolon=}}
+\CustomizeMathJax{\newcommand{\coloncolonequals}{\coloncolon=}}
+\CustomizeMathJax{\newcommand{\equalscolon}{=\!\ratio}}
+\CustomizeMathJax{\newcommand{\equalscoloncolon}{=\!\coloncolon}}
+\CustomizeMathJax{\newcommand{\colonminus}{\ratio-}}
+\CustomizeMathJax{\newcommand{\coloncolonminus}{\coloncolon-}}
+\CustomizeMathJax{\newcommand{\minuscolon}{-\ratio}}
+\CustomizeMathJax{\newcommand{\minuscoloncolon}{-\coloncolon}}
+\CustomizeMathJax{\newcommand{\colonapprox}{\ratio\approx}}
+\CustomizeMathJax{\newcommand{\coloncolonapprox}{\coloncolon\approx}}
+\CustomizeMathJax{\newcommand{\approxcolon}{\approx\!\ratio}}
+\CustomizeMathJax{\newcommand{\approxcoloncolon}{\approx\!\coloncolon}}
+\CustomizeMathJax{\newcommand{\colonsim}{\ratio\sim}}
+\CustomizeMathJax{\newcommand{\coloncolonsim}{\coloncolon\sim}}
+\CustomizeMathJax{\newcommand{\simcolon}{\sim\!\ratio}}
+\CustomizeMathJax{\newcommand{\simcoloncolon}{\sim\!\coloncolon}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</colonequals>
+% \fi
+%
+%
+%
+%
+%
%
% \iffalse
%<*color>
@@ -46061,6 +46311,42 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+%
+% \iffalse
+%<*decimal>
+% \fi
+%
+% \part{lwarp-decimal.sty}
+%
+% \section{decimal}
+%
+% \credits{A.\,Syropoulos and R.\,W.\,D.\,Nickalls}
+%
+% \DescribePackage{decimal}
+% \pkg{decimal} works as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/02/22}{\pkg{decimal}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{decimal}[2011/06/03]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\def\.{\mbox{.}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</decimal>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*diagbox>
% \fi
@@ -46249,6 +46535,90 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+%
+% \iffalse
+%<*DotArrow>
+% \fi
+%
+% \part{lwarp-DotArrow.sty}
+%
+% \section{DotArrow}
+%
+% \credits{Sven Schneider}
+%
+% \DescribePackage{DotArrow}
+% \pkg{DotArrow} is patched for use by \pkg{lwarp},
+% and emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/03/03}{\pkg{DotArrow}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{DotArrow}[2007/02/12]
+% \end{macrocode}
+%
+% The width must be recomputed each time, depending on print or \HTML\ output.
+% \begin{macrocode}
+\xpretocmd{\dotarrow}{\settowidth{\oneWidth}{\onePartX}}{}{}
+
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\dotarrow}[1]{\stackrel{#1}{\unicode{x21E2}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</DotArrow>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
+%<*dotlessi>
+% \fi
+%
+% \part{lwarp-dotlessi.sty}
+%
+% \section{dotlessi}
+%
+% \credits{Javier Bezos}
+%
+% \DescribePackage{dotlessi}
+% \pkg{dotlessi} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% Use |\usepackage{cmap}| if \cs{dotlessj} does not appear in \HTML\ in text mode.
+% \watchout[\HTML\ \cs{dotlessj}]
+% See \cref{sec:fonts}.
+%
+% For \brand{MathJax}, use \cs{boldsymbol} instead of \cs{mathbf}.
+% \watchout[not bold]
+%
+% \changes{v0.81}{2020/02/21}{\pkg{dotlessi}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{dotlessi}[1999/10/12]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\let\dotlessi\imath}
+\CustomizeMathJax{\let\dotlessj\jmath}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</dotlessi>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*dprogress>
% \fi
@@ -46503,6 +46873,246 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+% \iffalse
+%<*econometrics>
+% \fi
+%
+% \part{lwarp-econometrics.sty}
+%
+% \section{econometrics}
+%
+% \credits{Erik Kole}
+%
+% \DescribePackage{econometrics}
+% \pkg{econometrics} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/03/01}{\pkg{econometrics}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{econometrics}% no date specified in the original
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{econometrics}
+
+\CustomizeMathJax{\newcommand{\SC}{\mathbb{C}}}
+\CustomizeMathJax{\newcommand{\SN}{\mathbb{N}}}
+\CustomizeMathJax{\newcommand{\SQ}{\mathbb{Q}}}
+\CustomizeMathJax{\newcommand{\SR}{\mathbb{R}}}
+\CustomizeMathJax{\newcommand{\SZ}{\mathbb{Z}}}
+
+\CustomizeMathJax{\newcommand{\calA}{\mathcal{A}}}
+\CustomizeMathJax{\newcommand{\calB}{\mathcal{B}}}
+\CustomizeMathJax{\newcommand{\calC}{\mathcal{C}}}
+\CustomizeMathJax{\newcommand{\calD}{\mathcal{D}}}
+\CustomizeMathJax{\newcommand{\calE}{\mathcal{E}}}
+\CustomizeMathJax{\newcommand{\calF}{\mathcal{F}}}
+\CustomizeMathJax{\newcommand{\calG}{\mathcal{G}}}
+\CustomizeMathJax{\newcommand{\calH}{\mathcal{H}}}
+\CustomizeMathJax{\newcommand{\calI}{\mathcal{I}}}
+\CustomizeMathJax{\newcommand{\calJ}{\mathcal{J}}}
+\CustomizeMathJax{\newcommand{\calK}{\mathcal{K}}}
+\CustomizeMathJax{\newcommand{\calL}{\mathcal{L}}}
+\CustomizeMathJax{\newcommand{\calM}{\mathcal{M}}}
+\CustomizeMathJax{\newcommand{\calN}{\mathcal{N}}}
+\CustomizeMathJax{\newcommand{\calO}{\mathcal{O}}}
+\CustomizeMathJax{\newcommand{\calP}{\mathcal{P}}}
+\CustomizeMathJax{\newcommand{\calQ}{\mathcal{Q}}}
+\CustomizeMathJax{\newcommand{\calR}{\mathcal{R}}}
+\CustomizeMathJax{\newcommand{\calS}{\mathcal{S}}}
+\CustomizeMathJax{\newcommand{\calT}{\mathcal{T}}}
+\CustomizeMathJax{\newcommand{\calU}{\mathcal{U}}}
+\CustomizeMathJax{\newcommand{\calV}{\mathcal{V}}}
+\CustomizeMathJax{\newcommand{\calW}{\mathcal{W}}}
+\CustomizeMathJax{\newcommand{\calX}{\mathcal{X}}}
+\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}}
+
+\CustomizeMathJax{\newcommand{\rb}{\mathrm{b}}}
+\CustomizeMathJax{\newcommand{\rB}{\mathrm{B}}}
+\CustomizeMathJax{\newcommand{\rC}{\mathrm{C}}}
+\CustomizeMathJax{\newcommand{\rD}{\mathrm{D}}}
+\CustomizeMathJax{\newcommand{\rf}{\mathrm{f}}}
+\CustomizeMathJax{\newcommand{\rF}{\mathrm{F}}}
+\CustomizeMathJax{\newcommand{\rH}{\mathrm{H}}}
+\CustomizeMathJax{\newcommand{\rL}{\mathrm{L}}}
+\CustomizeMathJax{\newcommand{\rN}{\mathrm{N}}}
+\CustomizeMathJax{\newcommand{\rt}{\mathrm{t}}}
+\CustomizeMathJax{\newcommand{\rU}{\mathrm{U}}}
+\CustomizeMathJax{\newcommand{\rGam}{\mathrm{Gam}}}
+\CustomizeMathJax{\newcommand{\rBeta}{\mathrm{Beta}}}
+
+\CustomizeMathJax{\newcommand{\Bin}{\mathrm{Bin}}}
+\CustomizeMathJax{\newcommand{\eu}{\mathrm{e}}}
+\CustomizeMathJax{\newcommand{\iu}{\mathrm{i}}}
+\CustomizeMathJax{\newcommand{\LN}{\mathrm{LN}}}
+\CustomizeMathJax{\newcommand{\IN}{\mathrm{IN}}}
+
+\CustomizeMathJax{\newcommand{\Poi}{\mathrm{Poi}}}
+
+\CustomizeMathJax{\newcommand{\ped}[1]{_\mathrm{#1}}}
+\CustomizeMathJax{\newcommand{\ap}[1]{^\mathrm{#1}}}
+\CustomizeMathJax{\renewcommand{\Re}{\mathrm{Re}}{\nolimits}}
+\CustomizeMathJax{\renewcommand{\Im}{\mathrm{Im}}{\nolimits}}
+
+\CustomizeMathJax{\newcommand{\deriv}[3][]{%
+ \frac{\mathrm{d}^{#1}#2}{\mathrm{d}\,#3^{#1}}%
+}}
+\CustomizeMathJax{\newcommand{\pderiv}[3][]{%
+ \frac{\partial^{#1}#2}{\partial #3^{#1}}%
+}}
+
+\CustomizeMathJax{\newcommand{\bias}{\operatorname{bias}}}
+\CustomizeMathJax{\newcommand{\col}{\operatorname{col}}}
+\CustomizeMathJax{\newcommand{\corr}{\operatorname{corr}}}
+\CustomizeMathJax{\newcommand{\cov}{\operatorname{cov}}}
+\CustomizeMathJax{\newcommand{\dg}{\operatorname{dg}}}
+\CustomizeMathJax{\newcommand{\diag}{\operatorname{diag}}}
+\CustomizeMathJax{\newcommand{\E}{\operatorname{E}}}
+\CustomizeMathJax{\newcommand{\etr}{\operatorname{etr}}}
+\CustomizeMathJax{\newcommand{\ip}{\mathrm{int}}{\nolimits}}
+\CustomizeMathJax{\newcommand{\kur}{\operatorname{kur}}}
+\CustomizeMathJax{\newcommand{\MSE}{\operatorname{MSE}}}
+\CustomizeMathJax{\newcommand{\MSFE}{\operatorname{MSFE}}}
+\CustomizeMathJax{\newcommand{\OLS}{\operatorname{OLS}}}
+\CustomizeMathJax{\newcommand{\plim}{\operatorname{plim}}}
+\CustomizeMathJax{\newcommand{\resid}{\operatorname{resid}}}
+\CustomizeMathJax{\newcommand{\rk}{\operatorname{rk}}}
+\CustomizeMathJax{\newcommand{\SE}{\operatorname{SE}}}
+\CustomizeMathJax{\newcommand{\sgn}{\operatorname{sgn}}}
+\CustomizeMathJax{\newcommand{\tr}{\operatorname{tr}}}
+\CustomizeMathJax{\newcommand{\var}{\operatorname{var}}}
+\CustomizeMathJax{\renewcommand{\vec}{\operatorname{vec}}}
+\CustomizeMathJax{\newcommand{\vech}{\operatorname{vech}}}
+
+\CustomizeMathJax{\newcommand{\distr}{\sim}}
+\CustomizeMathJax{\newcommand{\adistr}{\stackrel{a}{\distr}}}
+\CustomizeMathJax{\newcommand{\diff}{\Delta}}
+\CustomizeMathJax{\newcommand{\fdiff}{\diff_{\rf}}}
+\CustomizeMathJax{\newcommand{\bdiff}{\diff_{\rb}}}
+
+\CustomizeMathJax{\newcommand{\eps}{\epsilon}}
+\CustomizeMathJax{\newcommand{\epsi}{\varepsilon}}
+
+\CustomizeMathJax{\newcommand{\longto}{\longrightarrow}}
+\CustomizeMathJax{\newcommand{\pto}{\stackrel{p}{\longrightarrow}}}
+\CustomizeMathJax{\newcommand{\dto}{\stackrel{d}{\longrightarrow}}}
+\CustomizeMathJax{\newcommand{\wto}{\stackrel{w}{\longrightarrow}}}
+
+\CustomizeMathJax{\newcommand{\Infmat}{\bm\calI}}
+\CustomizeMathJax{\newcommand{\Hesmat}{\bm\calH}}
+\CustomizeMathJax{\newcommand{\bcdot}{\bullet}}
+
+\CustomizeMathJax{\newcommand{\vones}{\bm\imath}}
+\CustomizeMathJax{\newcommand{\vzeros}{\boldsymbol{0}}}
+\CustomizeMathJax{\newcommand{\mZeros}{\mathbf{O}}}
+
+\CustomizeMathJax{\newcommand{\e}{\eu}}
+\CustomizeMathJax{\newcommand{\mply}{\cdot}}
+\CustomizeMathJax{\newcommand{\rW}{\ensuremath{\mathrm{W}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</econometrics>
+% \fi
+%
+%
+%
%
% \iffalse
%<*ed>
@@ -46832,6 +47442,267 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+% \iffalse
+%<*engtlc>
+% \fi
+%
+% \part{lwarp-engtlc.sty}
+%
+% \section{engtlc}
+%
+% \credits{Claudio Fiandrino}
+%
+% \DescribePackage{engtlc}
+% \pkg{engtlc} is patched for use by \pkg{lwarp}.
+% \brand{MathJax} is emulated.
+%
+% For \brand{MathJax}, \cs{signt}, \cs{signf}, \cs{signn}, and \cs{signz}
+% \watchout
+% do not force letter case as they do in \SVG\ math.
+%
+% \changes{v0.81}{2020/02/25}{\pkg{engtlc}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{engtlc}[2012/12/18]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\LWR@HTML@finees}{%
+ \begin{BlockClass}[text-align:right]{exerend}%
+ \HTMLunicode{220E}%
+ \end{BlockClass}%
+}
+\LWR@formatted{finees}
+
+\newcommand{\LWR@HTML@exerend}{\finees}
+\LWR@formatted{exerend}
+
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{engtlc}
+
+\CustomizeMathJax{\newcommand{\unit}[1]{\,\mathrm{#1}}}
+\CustomizeMathJax{\newcommand{\micro}{\mathrm{\unicode{x00B5}}}}
+%
+\CustomizeMathJax{\newcommand{\ho}{\unit{h}}}
+\CustomizeMathJax{\newcommand{\s}{\unit{s}}}
+\CustomizeMathJax{\newcommand{\ms}{\unit{ms}}}
+\CustomizeMathJax{\newcommand{\us}{\unit{\micro s}}}
+\CustomizeMathJax{\newcommand{\ns}{\unit{ns}}}
+\CustomizeMathJax{\newcommand{\ps}{\unit{ps}}}
+%
+\CustomizeMathJax{\newcommand{\um}{\unit{\micro m}}}
+\CustomizeMathJax{\newcommand{\mm}{\unit{mm}}}
+\CustomizeMathJax{\newcommand{\cm}{\unit{cm}}}
+\CustomizeMathJax{\newcommand{\dm}{\unit{dm}}}
+\CustomizeMathJax{\newcommand{\m}{\unit{m}}}
+\CustomizeMathJax{\newcommand{\km}{\unit{km}}}
+%
+\CustomizeMathJax{\newcommand{\MA}{\unit{MA}}}
+\CustomizeMathJax{\newcommand{\kA}{\unit{kA}}}
+\CustomizeMathJax{\newcommand{\A}{\unit{A}}}
+\CustomizeMathJax{\newcommand{\mA}{\unit{mA}}}
+\CustomizeMathJax{\newcommand{\uA}{\unit{\micro A}}}
+\CustomizeMathJax{\newcommand{\nA}{\unit{nA}}}
+%
+\CustomizeMathJax{\newcommand{\MV}{\unit{MV}}}
+\CustomizeMathJax{\newcommand{\kV}{\unit{kV }}}
+\CustomizeMathJax{\newcommand{\V}{\unit{V}}}
+\CustomizeMathJax{\newcommand{\mV}{\unit{mV}}}
+\CustomizeMathJax{\newcommand{\uV}{\unit{\micro V}}}
+%
+\CustomizeMathJax{\newcommand{\mohm}{\unit{m\Omega}}}
+\CustomizeMathJax{\newcommand{\ohm}{\unit{\Omega}}}
+\CustomizeMathJax{\newcommand{\kohm}{\unit{k\Omega}}}
+\CustomizeMathJax{\newcommand{\Mohm}{\unit{M\Omega}}}
+%
+\CustomizeMathJax{\newcommand{\pSi}{\unit{pS}}}
+\CustomizeMathJax{\newcommand{\nSi}{\unit{nS}}}
+\CustomizeMathJax{\newcommand{\uSi}{\unit{\micro S}}}
+\CustomizeMathJax{\newcommand{\mSi}{\unit{mS}}}
+\CustomizeMathJax{\newcommand{\Si}{\unit{S}}}
+\CustomizeMathJax{\newcommand{\kSi}{\unit{kS}}}
+\CustomizeMathJax{\newcommand{\MSi}{\unit{MS}}}
+%
+\CustomizeMathJax{\newcommand{\fFa}{\unit{fF}}}
+\CustomizeMathJax{\newcommand{\pFa}{\unit{pF}}}
+\CustomizeMathJax{\newcommand{\nFa}{\unit{nF}}}
+\CustomizeMathJax{\newcommand{\uFa}{\unit{\micro F}}}
+\CustomizeMathJax{\newcommand{\mFa}{\unit{mF}}}
+\CustomizeMathJax{\newcommand{\Fa}{\unit{F}}}
+%
+\CustomizeMathJax{\newcommand{\fHe}{\unit{fH}}}
+\CustomizeMathJax{\newcommand{\pHe}{\unit{pH}}}
+\CustomizeMathJax{\newcommand{\nHe}{\unit{nH}}}
+\CustomizeMathJax{\newcommand{\uHe}{\unit{\micro H}}}
+\CustomizeMathJax{\newcommand{\mHe}{\unit{mH}}}
+\CustomizeMathJax{\newcommand{\He}{\unit{H}}}
+%
+\CustomizeMathJax{\newcommand{\dB}{\unit{dB}}}
+\CustomizeMathJax{\newcommand{\dBm}{\unit{dBm}}}
+%
+\CustomizeMathJax{\newcommand{\uW}{\unit{\micro W}}}
+\CustomizeMathJax{\newcommand{\mW}{\unit{mW}}}
+\CustomizeMathJax{\newcommand{\W}{\unit{W}}}
+\CustomizeMathJax{\newcommand{\kW}{\unit{kW}}}
+\CustomizeMathJax{\newcommand{\MW}{\unit{MW}}}
+%
+\CustomizeMathJax{\newcommand{\Hz}{\unit{Hz}}}
+\CustomizeMathJax{\newcommand{\kHz}{\unit{kHz}}}
+\CustomizeMathJax{\newcommand{\MHz}{\unit{MHz}}}
+\CustomizeMathJax{\newcommand{\GHz}{\unit{GHz}}}
+\CustomizeMathJax{\newcommand{\THz}{\unit{THz}}}
+%
+\CustomizeMathJax{\newcommand{\bit}{\unit{bit}}}
+\CustomizeMathJax{\newcommand{\kbit}{\unit{Kib}}}
+\CustomizeMathJax{\newcommand{\Mbit}{\unit{Mib}}}
+\CustomizeMathJax{\newcommand{\Byte}{\unit{B}}}
+\CustomizeMathJax{\newcommand{\kByte}{\unit{KiB}}}
+\CustomizeMathJax{\newcommand{\MByte}{\unit{Mib}}}
+\CustomizeMathJax{\newcommand{\GByte}{\unit{GiB}}}
+\CustomizeMathJax{\newcommand{\TByte}{\unit{TiB}}}
+\CustomizeMathJax{\newcommand{\bits}{\unit{bit/s}}}
+\CustomizeMathJax{\newcommand{\kbits}{\unit{Kib/s}}}
+\CustomizeMathJax{\newcommand{\Mbits}{\unit{Mib/s}}}
+\CustomizeMathJax{\newcommand{\Bytes}{\unit{B/s}}}
+\CustomizeMathJax{\newcommand{\kBytes}{\unit{KiB/s}}}
+\CustomizeMathJax{\newcommand{\MBytes}{\unit{MiB/s}}}
+\CustomizeMathJax{\newcommand{\GBytes}{\unit{GiB/s}}}
+\CustomizeMathJax{\newcommand{\TBytes}{\unit{TiB/s}}}
+\CustomizeMathJax{\newcommand{\chips}{\unit{chip/s}}}
+\CustomizeMathJax{\newcommand{\kchips}{\unit{Ki\mkern2mu chip/s}}}
+\CustomizeMathJax{\newcommand{\Mchips}{\unit{Mi\mkern2mu chip/s}}}
+\CustomizeMathJax{\newcommand{\chipsubit}{\unit{chip/bit}}}
+%
+\CustomizeMathJax{\newcommand{\frecciadex}[1][0.5]{%
+ \hspace{.25cm}\Longrightarrow \hspace{.25cm}}%
+}
+\CustomizeMathJax{\newcommand{\varianzarumore}{\frac{N_0}{2}}}
+%
+\CustomizeMathJax{\newcommand{\etsymbolbracearg}[2]{%
+ #1\mathopen{}\left\lbrace#2\right\rbrace\mathclose{}}%
+}
+\CustomizeMathJax{\newcommand{\fourier}[1]{\etsymbolbracearg{\mathcal{F}}{#1}}}
+\CustomizeMathJax{\newcommand{\invfourier}[1]{\etsymbolbracearg{\mathcal{F}^{-1}}{#1}}}
+\CustomizeMathJax{\newcommand{\partereale}[1]{\etsymbolbracearg{\textbf{Re}}{#1}}}
+\CustomizeMathJax{\newcommand{\parteimm}[1]{\etsymbolbracearg{\textbf{Im}}{#1}}}
+\CustomizeMathJax{\newcommand{\Info}[1]{I\left(#1\right)}}
+\CustomizeMathJax{\newcommand{\versore}[1]{\hat{#1}}}
+\CustomizeMathJax{\newcommand{\vettore}[1]{\overrightarrow{#1}}}
+\CustomizeMathJax{\newcommand{\coseno}[1]{\cos\left(2\pi#1t\right)}}
+\CustomizeMathJax{\newcommand{\seno}[1]{\sin\left(2\pi#1t\right)}}
+\CustomizeMathJax{\newcommand{\energia}[1]{\mathcal{E}_{#1}}}
+\CustomizeMathJax{\newcommand{\moduloexp}[2]{\left\vert#1\right\vert^{#2}}}
+\CustomizeMathJax{\newcommand{\modulo}[1]{\left\vert#1\right\vert}}
+\CustomizeMathJax{\newcommand{\indB}[1]{%
+ \mathopen{}\left.#1\right\vert_{\mathrm{dB}}\mathclose{}}}%
+\CustomizeMathJax{\newcommand{\for}[2]{\left. #1 \right\vert_{#2}}}
+\CustomizeMathJax{\newcommand{\massimo}[1]{\etsymbolbracearg{\max}{#1}}}
+\CustomizeMathJax{\newcommand{\minimo}[1]{\etsymbolbracearg{\min}{#1}}}
+\CustomizeMathJax{\newcommand{\valc}{3\cdot 10^8}}
+\CustomizeMathJax{\newcommand{\loga}[2]{\log_{#1}#2}}
+\CustomizeMathJax{\newcommand{\analitic}[1]{\mathring{#1}}}
+\CustomizeMathJax{\newcommand{\diff}{\mathop{}\mathopen{\mathrm{d}}}}
+\CustomizeMathJax{\newcommand{\intinf}[1]{\int_{-\infty}^{+\infty}{#1}}}
+\CustomizeMathJax{\newcommand{\deltain}[1]{\delta\left(#1\right)}}
+\CustomizeMathJax{\newcommand{\iu}{\mathrm{j}}}
+\CustomizeMathJax{\newcommand{\ex}[1]{\mathrm{e}^{#1}}}
+%
+\CustomizeMathJax{\newcommand{\gammatens}{{}^{\mathrm{V}}\Gamma}}
+\CustomizeMathJax{\newcommand{\gammacorr}{{}^{\mathrm{I}}\Gamma}}
+\CustomizeMathJax{\newcommand{\gammatensin}[1]{{}^{\mathrm{V}}\Gamma_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\gammacorrin}[1]{{}^{\mathrm{I}}\Gamma_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\gammain}[1]{\Gamma_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\gammak}{{}^{\mathrm{k}}\Gamma}}
+%
+\CustomizeMathJax{\newcommand{\lbvt}{\lambda_0}}
+\CustomizeMathJax{\newcommand{\lbg}{\lambda_g}}
+\CustomizeMathJax{\newcommand{\lbgvt}{\lambda_{g_0}}}
+%
+\CustomizeMathJax{\newcommand{\potin}[1]{P_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\potdisp}[1][]{P_{\mathrm{disp}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potDC}[1][]{P_{\mathrm{DC}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potCC}[1][]{P_{\mathrm{CC}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potirr}[1][]{P_{\mathrm{irr}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potdiss}[1][]{P_{\mathrm{diss}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potinc}[1][]{P_{\mathrm{inc}}^{#1}}}
+%
+\CustomizeMathJax{\newcommand{\z}[1]{Z_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\znorm}[1]{z_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\y}[1]{Y_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\ynorm}[1]{y_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\zinf}[1][]{Z_{\infty#1}}}
+\CustomizeMathJax{\newcommand{\zinfn}[1]{\zinf[#1]}}
+\CustomizeMathJax{\newcommand{\yinf}[1][]{Y_{\infty#1}}}
+\CustomizeMathJax{\newcommand{\yinfn}[1]{\yinf[#1]}}
+\CustomizeMathJax{\newcommand{\zvt}{Z_0}}
+\CustomizeMathJax{\newcommand{\yvt}{Y_0}}
+%
+\CustomizeMathJax{\newcommand{\campoe}{\underline{\mathcal{E}}(\underline{r},t)}}
+\CustomizeMathJax{\newcommand{\campoefas}{\underline{E}(\underline{r})}}
+\CustomizeMathJax{\newcommand{\campoh}{\underline{\mathcal{H}}(\underline{r},t)}}
+\CustomizeMathJax{\newcommand{\campohfas}{\underline{H}(\underline{r})}}
+%
+\CustomizeMathJax{\newcommand{\signt}[1]{{#1}(t)}}
+\CustomizeMathJax{\newcommand{\signf}[1]{{#1}(f)}}
+\CustomizeMathJax{\newcommand{\signn}[1]{{#1}(n)}}
+\CustomizeMathJax{\newcommand{\signz}[1]{{#1}(z)}}
+%
+\CustomizeMathJax{\newcommand{\prob}[1]{\mathcal{P}\left(#1\right)}}
+\CustomizeMathJax{\newcommand{\valatt}[1]{\mathbb{E}\left[#1\right]}}
+\CustomizeMathJax{\newcommand{\var}[1]{\mathrm{Var}\left[#1\right]}}
+\CustomizeMathJax{\newcommand{\comma}{\, , \,}}
+\CustomizeMathJax{\newcommand{\dato}{\,|\,}}
+%
+\CustomizeMathJax{\let\bfRe\partereale}
+\CustomizeMathJax{\let\bfIm\parteimm}
+\CustomizeMathJax{\let\noisevar\varianzarumore}
+% \CustomizeMathJax{\let\exerend\finees}
+\CustomizeMathJax{\let\Spimplies\frecciadex}
+\CustomizeMathJax{\let\Downimplies\frecciadown}
+\CustomizeMathJax{\let\unitvec\versore}
+\CustomizeMathJax{\let\vector\vettore}
+\CustomizeMathJax{\let\cosine\coseno}
+\CustomizeMathJax{\let\sine\seno}
+\CustomizeMathJax{\let\energy\energia}
+\CustomizeMathJax{\let\Abs\modulo}
+\CustomizeMathJax{\let\AbsPow\moduloexp}
+\CustomizeMathJax{\let\Max\massimo}
+\CustomizeMathJax{\let\Min\minimo}
+\CustomizeMathJax{\let\clight\valc}
+\CustomizeMathJax{\let\Log\loga}
+\CustomizeMathJax{\let\analytic\analitic}
+\CustomizeMathJax{\let\infint\intinf}
+\CustomizeMathJax{\let\deltaimp\deltain}
+\CustomizeMathJax{\let\Vgamma\gammatens}
+\CustomizeMathJax{\let\Cgamma\gammacorr}
+\CustomizeMathJax{\let\Vgammain\gammatensin}
+\CustomizeMathJax{\let\Cgammain\gammacorrin}
+\CustomizeMathJax{\let\Kgamma\gammak}
+\CustomizeMathJax{\let\powerin\potin}
+\CustomizeMathJax{\let\availpow\potdisp}
+\CustomizeMathJax{\let\irrpow\potirr}
+\CustomizeMathJax{\let\disspow\potdiss}
+\CustomizeMathJax{\let\incpow\potinc}
+\CustomizeMathJax{\let\potalim\potCC}
+\CustomizeMathJax{\let\potDC\potCC}
+\CustomizeMathJax{\let\Efield\campoe}
+\CustomizeMathJax{\let\Hfield\campoh}
+\CustomizeMathJax{\let\phasorEfield\campoefas}
+\CustomizeMathJax{\let\phasorHfiled\campohfas}
+\CustomizeMathJax{\let\given\dato}
+\CustomizeMathJax{\let\expval\valatt}
+\CustomizeMathJax{\let\rmexp\ex}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</engtlc>
+% \fi
+%
+%
+%
%
%
% \iffalse
@@ -52021,22 +52892,26 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \pkg{gridset} is ignored.
%
% \changes{v0.54}{2018/04/11}{\pkg{gridset}: Added.}
+% \changes{v0.81}{2020/02/21}{\pkg{gridset}: Updated to v0.3.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{gridset}
+\LWR@ProvidesPackageDrop{gridset}[2020-02-12]
% \end{macrocode}
%
% \begin{macrocode}
\newcommand*{\gridbase}{}
\newcommand*{\gridinterval}{}
-\newcommand*{\savepos}[1]{}
-\newcounter{gridcnt}
+\newcommand*{\SavePos}[1]{}
+\ifLuaTeX
+\else
+\let\savepos\SavePos
+\fi
\newcommand*{\vskipnextgrid}{}
-\newcommand*{\thegridinfo}[1]{}
-\newcommand*{\theposinfo}[1]{}
-\newcommand*{\theypos}[1]{}
+\newcommand*{\thegridinfo}[1]{(thegridinfo)}
+\newcommand*{\theposinfo}[1]{(theposinfo)}
+\newcommand*{\theypos}[1]{(theypos)}
% \end{macrocode}
%
% \iffalse
@@ -52666,6 +53541,15 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \end{noindmacro}
+% \begin{noindmacro}{\pdfstringdefDisableCommands} \marg{commands}
+%
+% \changes{v0.81}{2020/03/04}{\pkg{hyperref}: Added \cs{pdfstringdefDisableCommands}.}
+% \begin{macrocode}
+\newcommand{\pdfstringdefDisableCommands}[1]{}
+% \end{macrocode}
+% \end{noindmacro}
+
+
% \begin{noindmacro}{\hypercalcbp} \marg{dimen} \quad
% From \pkg{hyperref}.
%
@@ -55415,6 +56299,41 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
%
+%
+% \iffalse
+%<*luamplib>
+% \fi
+%
+% \part{lwarp-luamplib.sty}
+%
+% \section{luamplib}
+%
+% \credits{Hans Hagen, Taco Hoekwater, Elie Roux, Philipp Gesang, Kim Dohyun}
+%
+% \DescribePackage{luamplib}
+% \pkg{luamplib} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.81}{2020/02/27}{\pkg{luamplib}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{luamplib}[2020/02/24]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\BeforeBeginEnvironment{mplibcode}{%
+ \begin{lateximage}[-mplibcode-~\PackageDiagramAltText]%
+}
+\AfterEndEnvironment{mplibcode}{\end{lateximage}}
+% \end{macrocode}
+%
+% \iffalse
+%</luamplib>
+% \fi
+%
+%
+%
% \iffalse
%<*luatodonotes>
% \fi
@@ -56854,7 +57773,7 @@ background:
%
%
% \begin{noindmacro}{\LWR@mdfsubtitlecommon}
-% \marg{sub -or- subsub} \oarg{options} \marg{title}
+% \marg{sub \orelse\ subsub} \oarg{options} \marg{title}
%
% Common code for \cs{LWR@mdfsubtitle} and \cs{LWR@mdfsubsubtitle}.
%
@@ -58420,6 +59339,67 @@ background:
%
%
%
+% \iffalse
+%<*multiobjective>
+% \fi
+%
+% \part{lwarp-multiobjective.sty}
+%
+% \section{multiobjective}
+%
+% \credits{Luis Mart\'{i}}
+%
+% \DescribePackage{multiobjective}
+% \pkg{multiobjective} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/03/03}{\pkg{multiobjective}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{multiobjective}[2008/08/19]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\dom}{\prec}}
+\CustomizeMathJax{\newcommand{\negdom}{\not\prec}}
+\CustomizeMathJax{\newcommand{\weakdom}{\preccurlyeq}}
+\CustomizeMathJax{\newcommand{\negweakdom}{\not\preccurlyeq}}
+\CustomizeMathJax{\newcommand{\strictdom}{\prec\!\!\!\prec}}
+\CustomizeMathJax{\newcommand{\negstrictdom}{\not\prec\!\!\!\prec}}
+\CustomizeMathJax{\newcommand{\multepsilondom}{\preccurlyeq_{\epsilon\cdot}}}
+\CustomizeMathJax{\newcommand{\addiepsilondom}{\preccurlyeq_{\epsilon +}}}
+\CustomizeMathJax{\newcommand{\better}{\triangleleft}}
+\CustomizeMathJax{\def\vec#1{%
+ \mathchoice%
+ {{\displaystyle\boldsymbol{#1}}}%
+ {{\textstyle\boldsymbol{#1}}}%
+ {{\scriptstyle\boldsymbol{#1}}}%
+ {{\scriptscriptstyle\boldsymbol{#1}}}%
+}}
+
+\CustomizeMathJax{\newcommand{\set}[1]{%
+ \mathchoice%
+ {{\displaystyle\mathcal{#1}}}%
+ {{\textstyle\mathcal{#1}}}%
+ {{\scriptstyle\mathcal{#1}}}%
+ {{\scriptscriptstyle\mathcal{#1}}}%
+}}
+\CustomizeMathJax{\def\argmax{\mathop{{\mathrm{arg}}\,\max}}}
+\CustomizeMathJax{\def\argmin{\mathop{{\mathrm{arg}}\,\min}
+}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</multiobjective>
+% \fi
+%
+%
+%
+%
%
% \iffalse
%<*multirow>
@@ -59886,6 +60866,40 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
%
%
+%
+%
+% \iffalse
+%<*nolbreaks>
+% \fi
+%
+% \part{lwarp-nolbreaks.sty}
+%
+% \section{nolbreaks}
+%
+% \credits{Donald Arseneau}
+%
+% \DescribePackage{nolbreaks}
+% \pkg{nolbreaks} is emulated.
+%
+% \changes{v0.81}{2020/02/22}{\pkg{nolbreaks}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{nolbreaks}[2012/05/31]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewDocumentCommand{\nolbreaks}{s m}{\InlineClass{nolbreaks}{#2}}
+% \end{macrocode}
+%
+% \iffalse
+%</nolbreaks>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*nomencl>
% \fi
@@ -62653,6 +63667,122 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*physunits>
+% \fi
+%
+% \part{lwarp-physunits.sty}
+%
+% \section{physunits}
+%
+% \credits{Brian W. Mulligan}
+%
+% \DescribePackage{physunits}
+% \pkg{physunits} is supported as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/02/29}{\pkg{physunits}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{physunits}[2020/01/26]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{physunits}
+
+\CustomizeMathJax{\newcommand{\micro}{\mu}}
+\CustomizeMathJax{\newcommand{\V}[1][ ]{\,\mathrm{#1V}}}
+\CustomizeMathJax{\newcommand{\Volt}[1][ ]{\,\mathrm{#1V}}}
+\CustomizeMathJax{\newcommand{\Coulomb}[1][ ]{\,\mathrm{#1C}}}
+\CustomizeMathJax{\newcommand{\esu}{\,\mathrm{esu}}}
+\CustomizeMathJax{\newcommand{\Ohm}[1][ ]{\,\mathrm{#1\Omega}}}
+\CustomizeMathJax{\newcommand{\Amp}[1][ ]{\,\mathrm{#1A}}}
+\CustomizeMathJax{\newcommand{\Farad}[1][ ]{\,\mathrm{#1F}}}
+\CustomizeMathJax{\newcommand{\Tesla}[1][ ]{\,\mathrm{#1T}}}
+\CustomizeMathJax{\newcommand{\Gauss}[1][ ]{\,\mathrm{#1G}}}
+\CustomizeMathJax{\newcommand{\Henry}[1][ ]{\,\mathrm{#1H}}}
+\CustomizeMathJax{\newcommand{\eV}[1][ ]{\,\mathrm{#1eV}}}
+\CustomizeMathJax{\newcommand{\keV}{\,\mathrm{keV}}}
+\CustomizeMathJax{\newcommand{\MeV}{\,\mathrm{MeV}}}
+\CustomizeMathJax{\newcommand{\J}[1][ ]{\,\mathrm{#1J}}}
+\CustomizeMathJax{\newcommand{\Joule}[1][ ]{\,\mathrm{#1J}}}
+\CustomizeMathJax{\newcommand{\erg}{\,\mathrm{erg}}}
+\CustomizeMathJax{\newcommand{\kcal}[1]{\,\mathrm{kcal}}}% bug
+\CustomizeMathJax{\newcommand{\Cal}{\,\mathrm{Cal}}}
+\CustomizeMathJax{\newcommand{\calorie}[1][ ]{\,\mathrm{#1cal}}}
+\CustomizeMathJax{\newcommand{\BTU}{\,\mathrm{BTU}}}
+\CustomizeMathJax{\newcommand{\tnt}{\,\mathrm{ton\, of\, TNT}}}
+\CustomizeMathJax{\newcommand{\Watt}[1][ ]{\,\mathrm{#1W}}}
+\CustomizeMathJax{\newcommand{\hpi}{\,\mathrm{hp(I)}}}
+\CustomizeMathJax{\newcommand{\hpm}{\,\mathrm{hp(M)}}}
+\CustomizeMathJax{\newcommand{\hp}{\,\mathrm{hp}}}
+\CustomizeMathJax{\newcommand{\meter}[1][ ]{\,\mathrm{#1m}}}
+\CustomizeMathJax{\newcommand{\m}[1][ ]{\,\mathrm{#1m}}}
+\CustomizeMathJax{\newcommand{\km}{\,\mathrm{km}}}
+\CustomizeMathJax{\newcommand{\au}{\,\mathrm{au}}}
+\CustomizeMathJax{\newcommand{\pc}[1][ ]{\,\mathrm{#1pc}}}
+\CustomizeMathJax{\newcommand{\ly}[1][ ]{\,\mathrm{#1ly}}}
+\CustomizeMathJax{\newcommand{\cm}{\,\mathrm{cm}}}
+\CustomizeMathJax{\newcommand{\nm}{\,\mathrm{nm}}}
+\CustomizeMathJax{\newcommand{\ft}{\,\mathrm{ft}}}
+\CustomizeMathJax{\newcommand{\inch}{\,\mathrm{in}}}
+\CustomizeMathJax{\newcommand{\mi}{\,\mathrm{mi}}}
+\CustomizeMathJax{\newcommand{\s}[1][ ]{\,\mathrm{#1s}}}
+\CustomizeMathJax{\newcommand{\Sec}[1][ ]{\,\mathrm{#1s}}}
+\CustomizeMathJax{\newcommand{\Min}{\,\mathrm{min}}}
+\CustomizeMathJax{\newcommand{\h}{\,\mathrm{h}}}
+\CustomizeMathJax{\newcommand{\y}[1][ ]{\,\mathrm{#1y}}}
+\CustomizeMathJax{\newcommand{\Day}{\,\mathrm{d}}}
+
+\CustomizeMathJax{\newcommand{\gm}[1][ ]{\,\mathrm{#1g}}}
+\CustomizeMathJax{\newcommand{\kg}{\,\mathrm{kg}}}
+\CustomizeMathJax{\newcommand{\lb}{\,\mathrm{lb}}}
+\CustomizeMathJax{\newcommand{\amu}{\,\mathrm{amu}}}
+\CustomizeMathJax{\newcommand{\N}[1][ ]{\,\mathrm{#1N}}}
+\CustomizeMathJax{\newcommand{\Newton}[1][ ]{\,\mathrm{#1N}}}
+\CustomizeMathJax{\newcommand{\dyne}[1][ ]{\,\mathrm{#1dyn}}}
+\CustomizeMathJax{\newcommand{\lbf}{\,\mathrm{lbf}}}
+\CustomizeMathJax{\newcommand{\kmps}{\,\mathrm{km}\,\mathrm{s}^{-1}}}
+\CustomizeMathJax{\newcommand{\kmph}{\,\mathrm{km}\,\mathrm{h}^{-1}}}
+\CustomizeMathJax{\newcommand{\mps}[1][ ]{\,\mathrm{#1m}\,\mathrm{s}^{-1}}}
+\CustomizeMathJax{\newcommand{\miph}{\,\mathrm{mi}\,\mathrm{h}^{-1}}}
+\CustomizeMathJax{\newcommand{\kts}{\,\mathrm{kts}}}
+
+\CustomizeMathJax{\newcommand{\mpss}[1][ ]{\,\mathrm{#1m}\,\mathrm{s}^{-2}}}
+\CustomizeMathJax{\newcommand{\gacc}{\,\mathrm{g}}}
+\CustomizeMathJax{\newcommand{\ftpss}{\,\mathrm{ft}\,\mathrm{s}^{-2}}}
+\CustomizeMathJax{\newcommand{\K}[1][ ]{\,\mathrm{#1K}}}
+\CustomizeMathJax{\newcommand{\Kelvin}[1][ ]{\,\mathrm{#1K}}}
+\CustomizeMathJax{\newcommand{\Celcius}{^\circ{\,\mathrm{C}}}}% move space
+\CustomizeMathJax{\newcommand{\Rankine}{^\circ{\,\mathrm{R}}}}% move space
+\CustomizeMathJax{\newcommand{\Fahrenheit}{^\circ{\,\mathrm{F}}}}% move space
+
+\CustomizeMathJax{\newcommand{\rpm}{\,\mathrm{rev}\,\Min^{-1}}}
+
+\CustomizeMathJax{\newcommand{\Hz}[1][ ]{\,\mathrm{#1Hz}}}
+\CustomizeMathJax{\newcommand{\barP}[1][ ]{\,\mathrm{#1bar}}}
+\CustomizeMathJax{\newcommand{\atm}{\,\mathrm{atm}}}
+\CustomizeMathJax{\newcommand{\Pa}[1][ ]{\,\mathrm{#1Pa}}}
+\CustomizeMathJax{\newcommand{\mmHg}{\,\mathrm{mmHg}}}
+\CustomizeMathJax{\newcommand{\inHg}{\,\mathrm{inHg}}}
+\CustomizeMathJax{\newcommand{\lbsi}{\,\mathrm{psi}}}
+\CustomizeMathJax{\newcommand{\lbsf}{\,\mathrm{psf}}}
+\CustomizeMathJax{\newcommand{\Ba}[1][ ]{\,\mathrm{#1Ba}}}
+\CustomizeMathJax{\newcommand{\Torr}[1][ ]{\,\mathrm{#1Torr}}}
+\CustomizeMathJax{\newcommand{\mol}{\,\mathrm{mol}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</physunits>
+% \fi
+%
+%
+%
+%
+% \iffalse
%<*pifont>
% \fi
%
@@ -63867,6 +64997,40 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*returntogrid>
+% \fi
+%
+% \part{lwarp-returntogrid.sty}
+%
+% \section{returntogrid}
+%
+% \DescribePackage{returntogrid}
+% \pkg{returntogrid} is ignored.
+%
+% \changes{v0.81}{2020/02/21}{\pkg{returntogrid}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{returntogrid}[2018/08/21]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewDocumentCommand\returntogrid{ O {} }{}
+\NewDocumentCommand\returntogridsetup { m } {}
+\NewDocumentCommand\showdebugpagegrid {} {}
+% \end{macrocode}
+%
+% \iffalse
+%</returntogrid>
+% \fi
+%
+%
+%
+%
+%
+%
+% \iffalse
%<*rmathbr>
% \fi
%
@@ -65408,7 +66572,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \DescribePackage{SIunits}
% \pkg{SIunits} is patched for use by \pkg{lwarp}.
%
-% It is recommended to use \cs{unit} where possible, which
+% For \SVG\ math, it is recommended to use \cs{unit} where possible, which
% combines the entire expression into a single \env{lateximage},
% and adds the \attribute{alt} tag containing the \LaTeX\ code, allowing for
% copy/paste. When units are used outside of the \cs{unit} macro,
@@ -65416,7 +66580,16 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% and each will have the \attribute{alt} tag set according to \cs{MathImageAltText},
% which defaults to \optn{(math image)}.
%
+% For \brand{MathJax}, individual units used in text will appear as \SVG\ images,
+% since \cs{ensuremath} is used in the original defintions,
+% and \cs{ensuremath} often has expressions which do not work well in \brand{MathJax},
+% so it is always forced to an \SVG\ image.
+% If, however, \cs{unit} is used, the result is expressed with \brand{MathJax}
+% instead of an \SVG\ image.
+%
% \changes{v0.59}{2018/07/11}{\pkg{SIunits}: Added.}
+% \changes{v0.81}{2020/02/23}{\pkg{SIunits}: Improved \cs{unit}. Fixed in math mode.
+% Added \brand{MathJax} emulation.}
%
% \codehtml
%
@@ -65426,21 +66599,393 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% Patched for copy/paste with the \HTML\ \attribute{alt} tag:
% \begin{macrocode}
-\DeclareRobustCommand{\unit}[2]{%
-\@inunitcommandtrue% original
-\LWR@subsingledollar*% lwarp
-{% alt tag
- \textbackslash{}unit\{\LWR@HTMLsanitize{#1}\}%
- \{ \LWR@HTMLsanitize{#2}\}% extra space
-}%
-{SIunits}% add'l hashing
-{%
- \LWR@origensuredmath{% lwarp modification
- \SI@fstyle{#1\@qsk\period@active{#2}}% original
- }%
-}% contents
-\@inunitcommandfalse% original
-}
+\ifbool{mathjax}{
+ \DeclareRobustCommand{\LWR@HTML@unit}[2]{%
+ \LWR@subsingledollar*% lwarp
+ {% alt tag
+ \textbackslash{}unit\{\LWR@HTMLsanitize{#1}\}%
+ \{ \LWR@HTMLsanitize{#2}\}% extra space
+ }%
+ {SIunits}% add'l hashing
+ {%
+ #1\,{#2}%
+ }% contents
+ }
+}{% not MathJax
+ \DeclareRobustCommand{\LWR@HTML@unit}[2]{%
+ \@inunitcommandtrue% original
+ \LWR@subsingledollar*% lwarp
+ {% alt tag
+ \textbackslash{}unit\{\LWR@HTMLsanitize{#1}\}%
+ \{ \LWR@HTMLsanitize{#2}\}% extra space
+ }%
+ {SIunits}% add'l hashing
+ {%
+ \LWR@origensuredmath{% lwarp modification
+ \SI@fstyle{%
+ {#1}\@qsk\period@active{#2}%
+ }% original
+ }%
+ }% contents
+ \@inunitcommandfalse% original
+ }
+}% not MathJax
+\LWR@formatted{unit}
+% \end{macrocode}
+%
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{SIunits}
+
+\CustomizeMathJax{\newcommand{\one}{}}
+\CustomizeMathJax{\newcommand{\meter}{\metre}}
+\CustomizeMathJax{\newcommand{\deka}{\deca}}
+\CustomizeMathJax{\newcommand{\dekad}{\decad}}
+\CustomizeMathJax{\newcommand{\per}{/}}
+\CustomizeMathJax{\newcommand{\usk}{\;}}
+\CustomizeMathJax{\newcommand{\unit}[2]{#1\,{#2}}}
+\CustomizeMathJax{\newcommand{\power}[2]{#1^{#2}}}
+
+\AtBeginDocument{%
+ \if@redefsquare
+ \CustomizeMathJax{\renewcommand{\square}[1]{\power{#1}{2}}}
+ \else
+ \if@defsquaren
+ \CustomizeMathJax{\newcommand{\squaren}[1]{\power{#1}{2}}}
+ \else
+ \CustomizeMathJax{\renewcommand{\square}[1]{\power{#1}{2}}}
+ \fi %\if@defsquaren
+ \fi %\if@redefsquare
+} %\AtBeginDocument
+
+\CustomizeMathJax{\newcommand{\squared}{^{2}}}
+\CustomizeMathJax{\newcommand{\cubic}[1]{\power{#1}{3}}}
+\CustomizeMathJax{\newcommand{\cubed}{^{3}}}
+\CustomizeMathJax{\newcommand{\fourth}[1]{\power{#1}{4}}}
+\CustomizeMathJax{\newcommand{\reciprocal}[1]{\power{#1}{-1}}}
+\CustomizeMathJax{\newcommand{\rp}{\reciprocal}}
+\CustomizeMathJax{\newcommand{\rpsquare}[1]{\power{#1}{-2}}}
+\CustomizeMathJax{\newcommand{\rpsquared}{^{-2}}}
+\CustomizeMathJax{\newcommand{\rpcubic}[1]{\power{#1}{-3}}}
+\CustomizeMathJax{\newcommand{\rpcubed}{^{-3}}}
+\CustomizeMathJax{\newcommand{\rpfourth}[1]{\power{#1}{-4}}}
+\CustomizeMathJax{\newcommand{\yocto}{\mathrm{y}}}
+\CustomizeMathJax{\newcommand{\zepto}{\mathrm{z}}}
+\CustomizeMathJax{\newcommand{\atto}{\mathrm{a}}}
+\CustomizeMathJax{\newcommand{\femto}{\mathrm{f}}}
+\CustomizeMathJax{\newcommand{\pico}{\mathrm{p}}}
+\CustomizeMathJax{\newcommand{\nano}{\mathrm{n}}}
+\CustomizeMathJax{\newcommand{\micro}{\mathrm{\unicode{x00B5}}}}
+\CustomizeMathJax{\newcommand{\milli}{\mathrm{m}}}
+\CustomizeMathJax{\newcommand{\centi}{\mathrm{c}}}
+\CustomizeMathJax{\newcommand{\deci}{\mathrm{d}}}
+\CustomizeMathJax{\newcommand{\deca}{\mathrm{da}}}
+\CustomizeMathJax{\newcommand{\hecto}{\mathrm{h}}}
+\CustomizeMathJax{\newcommand{\kilo}{\mathrm{k}}}
+\CustomizeMathJax{\newcommand{\mega}{\mathrm{M}}}
+\CustomizeMathJax{\newcommand{\giga}{\mathrm{G}}}
+\CustomizeMathJax{\newcommand{\tera}{\mathrm{T}}}
+\CustomizeMathJax{\newcommand{\peta}{\mathrm{P}}}
+\CustomizeMathJax{\newcommand{\exa}{\mathrm{E}}}
+\CustomizeMathJax{\newcommand{\zetta}{\mathrm{Z}}}
+\CustomizeMathJax{\newcommand{\yotta}{\mathrm{Y}}}
+\CustomizeMathJax{\newcommand{\yoctod}{\power{10}{-24}}}
+\CustomizeMathJax{\newcommand{\zeptod}{\power{10}{-21}}}
+\CustomizeMathJax{\newcommand{\attod}{\power{10}{-18}}}
+\CustomizeMathJax{\newcommand{\femtod}{\power{10}{-15}}}
+\CustomizeMathJax{\newcommand{\picod}{\power{10}{-12}}}
+\CustomizeMathJax{\newcommand{\nanod}{\power{10}{-9}}}
+\CustomizeMathJax{\newcommand{\microd}{\power{10}{-6}}}
+\CustomizeMathJax{\newcommand{\millid}{\power{10}{-3}}}
+\CustomizeMathJax{\newcommand{\centid}{\power{10}{-2}}}
+\CustomizeMathJax{\newcommand{\decid}{\power{10}{-1}}}
+\CustomizeMathJax{\newcommand{\decad}{\power{10}{1}}}
+\CustomizeMathJax{\newcommand{\hectod}{\power{10}{2}}}
+\CustomizeMathJax{\newcommand{\kilod}{\power{10}{3}}}
+\CustomizeMathJax{\newcommand{\megad}{\power{10}{6}}}
+\CustomizeMathJax{\newcommand{\gigad}{\power{10}{9}}}
+\CustomizeMathJax{\newcommand{\terad}{\power{10}{12}}}
+\CustomizeMathJax{\newcommand{\petad}{\power{10}{15}}}
+\CustomizeMathJax{\newcommand{\exad}{\power{10}{18}}}
+\CustomizeMathJax{\newcommand{\zettad}{\power{10}{21}}}
+\CustomizeMathJax{\newcommand{\yottad}{\power{10}{24}}}
+\CustomizeMathJax{\newcommand{\gram}{\mathrm{g}}}
+\CustomizeMathJax{\newcommand{\metre}{\mathrm{m}}}
+\CustomizeMathJax{\newcommand{\kilogram}{\kilo\gram}}
+\CustomizeMathJax{\newcommand{\second}{\mathrm{s}}}
+\CustomizeMathJax{\newcommand{\ampere}{\mathrm{A}}}
+\CustomizeMathJax{\newcommand{\kelvin}{\mathrm{K}}}
+\CustomizeMathJax{\newcommand{\mole}{\mathrm{mol}}}
+\CustomizeMathJax{\newcommand{\candela}{\mathrm{cd}}}
+\CustomizeMathJax{\newcommand{\radian}{\mathrm{rad}}}
+\CustomizeMathJax{\newcommand{\steradian}{\mathrm{sr}}}
+\CustomizeMathJax{\newcommand{\hertz}{\mathrm{Hz}}}
+\CustomizeMathJax{\newcommand{\newton}{\mathrm{N}}}
+\CustomizeMathJax{\newcommand{\pascal}{\mathrm{Pa}}}
+\CustomizeMathJax{\newcommand{\joule}{\mathrm{J}}}
+\CustomizeMathJax{\newcommand{\watt}{\mathrm{W}}}
+\CustomizeMathJax{\newcommand{\coulomb}{\mathrm{C}}}
+\CustomizeMathJax{\newcommand{\volt}{\mathrm{V}}}
+\CustomizeMathJax{\newcommand{\farad}{\mathrm{F}}}
+\CustomizeMathJax{\newcommand{\ohm}{\mathrm{\Omega}}}
+\CustomizeMathJax{\newcommand{\siemens}{\mathrm{S}}}
+\CustomizeMathJax{\newcommand{\weber}{\mathrm{Wb}}}
+\CustomizeMathJax{\newcommand{\tesla}{\mathrm{T}}}
+\CustomizeMathJax{\newcommand{\henry}{\mathrm{H}}}
+\CustomizeMathJax{\newcommand{\degreecelsius}{\mathrm{\unicode{x2103}}}}
+\CustomizeMathJax{\newcommand{\celsius}{\degreecelsius}}
+\CustomizeMathJax{\newcommand{\lumen}{\mathrm{lm}}}
+\CustomizeMathJax{\newcommand{\lux}{\mathrm{lx}}}
+\CustomizeMathJax{\newcommand{\becquerel}{\mathrm{Bq}}}
+\CustomizeMathJax{\newcommand{\sievert}{\mathrm{Sv}}}
+\CustomizeMathJax{\newcommand{\katal}{\mathrm{kat}}}
+
+\ifdef{\radianbase}{
+\CustomizeMathJax{\newcommand{\radianbase}%
+ {\metre\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\steradianbase}%
+ {\squaremetre\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\hertzbase}%
+ {\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\newtonbase}%
+ {\metre\usk\kilogram\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\pascalbase}%
+ {\reciprocal\metre\usk\kilogram\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\joulebase}%
+ {\squaremetre\usk\kilogram\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\wattbase}%
+ {\squaremetre\usk\kilogram\usk\rpcubic\second}}
+\CustomizeMathJax{\newcommand{\coulombbase}%
+ {\ampere\usk\second}}
+\CustomizeMathJax{\newcommand{\voltbase}%
+ {\squaremetre\usk\kilogram\usk\rpcubic\second\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\faradbase}%
+ {\rpsquare\metre\usk\reciprocal\kilogram\usk\fourth\second\usk\ampere\squared}}
+\CustomizeMathJax{\newcommand{\ohmbase}%
+ {\squaremetre\usk\kilogram\usk\rpcubic\second\usk\rpsquare\ampere}}
+\CustomizeMathJax{\newcommand{\siemensbase}%
+ {\rpsquare\metre\usk\reciprocal\kilogram\usk\cubic\second\usk\ampere\squared}}
+\CustomizeMathJax{\newcommand{\weberbase}%
+ {\squaremetre\usk\kilogram\usk\second\rpsquared\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\teslabase}%
+ {\kilogram\usk\second\rpsquared\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\henrybase}%
+ {\squaremetre\usk\kilogram\usk\second\rpsquared\usk\rpsquare\ampere}}
+\CustomizeMathJax{\newcommand{\celsiusbase}%
+ {\kelvin}}
+\CustomizeMathJax{\newcommand{\lumenbase}%
+ {\candela\usk\squaremetre\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\luxbase}%
+ {\candela\usk\squaremetre\usk\rpfourth\metre}}
+\CustomizeMathJax{\newcommand{\becquerelbase}%
+ {\hertzbase}}
+\CustomizeMathJax{\newcommand{\graybase}%
+ {\squaremetre\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\sievertbase}%
+ {\graybase}}
+\CustomizeMathJax{\newcommand{\katalbase}%
+ {\rp\second\usk\mole }}
+}{}
+
+\ifdef{\derradian}{
+\CustomizeMathJax{\newcommand{\derradian}%
+ {\metre\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\dersteradian}%
+ {\squaremetre\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\derhertz}%
+ {\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\dernewton}%
+ {\metre\usk\kilogram\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\derpascal}%
+ {\newton\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\derjoule}%
+ {\newton\usk\metre}}
+\CustomizeMathJax{\newcommand{\derwatt}%
+ {\joule\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\dercoulomb}%
+ {\ampere\usk\second}}
+\CustomizeMathJax{\newcommand{\dervolt}%
+ {\watt\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\derfarad}%
+ {\coulomb\usk\reciprocal\volt}}
+\CustomizeMathJax{\newcommand{\derohm}%
+ {\volt\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\dersiemens}%
+ {\ampere\usk\reciprocal\volt}}
+\CustomizeMathJax{\newcommand{\derweber}%
+ {\squaremetre\usk\kilogram\usk\second\rpsquared\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\dertesla}%
+ {\weber\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\derhenry}%
+ {\weber\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\dercelsius}%
+ {\kelvin}}
+\CustomizeMathJax{\newcommand{\derlumen}%
+ {\candela\usk\steradian}}
+\CustomizeMathJax{\newcommand{\derlux}%
+ {\lumen\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\derbecquerel}%
+ {\derhertz}}
+\CustomizeMathJax{\newcommand{\dergray}%
+ {\joule\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\dersievert}%
+ {\dergray}}
+\CustomizeMathJax{\newcommand{\derkatal}%
+ {\katalbase}}
+}{}
+
+\CustomizeMathJax{\newcommand{\minute}{\mathrm{min}}}
+\CustomizeMathJax{\newcommand{\hour}{\mathrm{h}}}
+\CustomizeMathJax{\newcommand{\dday}{\mathrm{d}}}
+\CustomizeMathJax{\newcommand{\degree}{\mathrm{^\circ}}}
+\CustomizeMathJax{\newcommand{\paminute}{^\prime}}
+\CustomizeMathJax{\newcommand{\arcminute}{^\prime}}
+\CustomizeMathJax{\newcommand{\pasecond}{^{\prime\prime}}}
+\CustomizeMathJax{\newcommand{\arcsecond}{^{\prime\prime}}}
+\CustomizeMathJax{\newcommand{\ton}{\mathrm{t}}}
+\CustomizeMathJax{\newcommand{\tonne}{\mathrm{t}}}
+\CustomizeMathJax{\newcommand{\liter}{\mathrm{L}}}
+\CustomizeMathJax{\newcommand{\litre}{\mathrm{l}}}
+\CustomizeMathJax{\newcommand{\neper}{\mathrm{Np}}}
+\CustomizeMathJax{\newcommand{\bel}{\mathrm{B}}}
+\CustomizeMathJax{\newcommand{\curie}{\mathrm{Ci}}}
+\CustomizeMathJax{\newcommand{\rad}{\mathrm{rad}}}
+\CustomizeMathJax{\newcommand{\arad}{\mathrm{rd}}}
+\CustomizeMathJax{\newcommand{\rem}{\mathrm{rem}}}
+\CustomizeMathJax{\newcommand{\roentgen}{\mathrm{R}}}
+\CustomizeMathJax{\newcommand{\electronvolt}{\mathrm{\mathrm{eV}}}}
+\CustomizeMathJax{\newcommand{\atomicmass}{\mathrm{u}}}
+\CustomizeMathJax{\newcommand{\atomicmassunit}{\mathrm{u}}}
+\CustomizeMathJax{\newcommand{\dalton}{\mathrm{Da}}}
+\CustomizeMathJax{\newcommand{\are}{\mathrm{a}}}
+\CustomizeMathJax{\newcommand{\hectare}{\mathrm{\hecto\are}}}
+\CustomizeMathJax{\newcommand{\barn}{\mathrm{b}}}
+\CustomizeMathJax{\newcommand{\bbar}{\mathrm{bar}}}
+\CustomizeMathJax{\newcommand{\gal}{\mathrm{Gal}}}
+\CustomizeMathJax{\newcommand{\angstrom}{\mathrm{\unicode{x00C5}}}}
+\CustomizeMathJax{\newcommand{\rperminute}{\mathrm{r}\per\minute}}
+\CustomizeMathJax{\newcommand{\rpersecond}{\mathrm{r}\per\second}}
+\CustomizeMathJax{\newcommand{\squaremetre}{\power{\metre}{2}}}
+\CustomizeMathJax{\newcommand{\cubicmetre}{\cubic\metre}}
+\CustomizeMathJax{\newcommand{\graypersecond}{\gray\per\second}}
+\CustomizeMathJax{\newcommand{\graypersecondnp}{\gray\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\metrepersquaresecond}{\metre\per\second\squared}}
+\CustomizeMathJax{\newcommand{\metrepersquaresecondnp}{\metre\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\joulepermole}{\joule\per\mole}}
+\CustomizeMathJax{\newcommand{\joulepermolenp}{\joule\usk\reciprocal\mole}}
+\CustomizeMathJax{\newcommand{\molepercubicmetre}{\mole\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\molepercubicmetrenp}{\mole\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\radianpersquaresecond}{\radian\per\second\squared}}
+\CustomizeMathJax{\newcommand{\radianpersquaresecondnp}{\radian\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\kilogramsquaremetrepersecond}{\kilogram\usk\squaremetre\per\second}}
+\CustomizeMathJax{\newcommand{\kilogramsquaremetrepersecondnp}{\kilogram\usk\squaremetre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\radianpersecond}{\radian\per\second}}
+\CustomizeMathJax{\newcommand{\radianpersecondnp}{\radian\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepercubicmetre}{\squaremetre\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\squaremetrepercubicmetrenp}{\squaremetre\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\katalpercubicmetre}{\katal\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\katalpercubicmetrenp}{\katal\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\coulombpermol}{\coulomb\per\mole}}
+\CustomizeMathJax{\newcommand{\coulombpermolnp}{\coulomb\usk\reciprocal\mole}}
+\CustomizeMathJax{\newcommand{\amperepersquaremetre}{\ampere\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\amperepersquaremetrenp}{\ampere\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampercubicmetre}{\kilogram\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampercubicmetrenp}{\kilogram\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\squaremetrepernewtonsecond}{\squaremetre\per\newton\usk\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepernewtonsecondnp}{\squaremetre\usk\reciprocal\newton\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\pascalsecond}{\pascal\usk\second}}
+\CustomizeMathJax{\newcommand{\coulombpercubicmetre}{\coulomb\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\coulombpercubicmetrenp}{\coulomb\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\amperemetresecond}{\ampere\usk\metre\usk\second}}
+\CustomizeMathJax{\newcommand{\voltpermetre}{\volt\per\metre}}
+\CustomizeMathJax{\newcommand{\voltpermetrenp}{\volt\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\coulombpersquaremetre}{\coulomb\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\coulombpersquaremetrenp}{\coulomb\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\faradpermetre}{\farad\per\metre}}
+\CustomizeMathJax{\newcommand{\faradpermetrenp}{\farad\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\ohmmetre}{\ohm\usk\metre}}
+\CustomizeMathJax{\newcommand{\kilowatthour}{\kilo\watt\hour}}
+\CustomizeMathJax{\newcommand{\wattpersquaremetre}{\watt\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\wattpersquaremetrenp}{\watt\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\joulepersquaremetre}{\joule\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\joulepersquaremetrenp}{\joule\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\newtonpercubicmetre}{\newton\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\newtonpercubicmetrenp}{\newton\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\newtonperkilogram}{\newton\per\kilogram}}
+\CustomizeMathJax{\newcommand{\newtonperkilogramnp}{\newton\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\jouleperkelvin}{\joule\per\kelvin}}
+\CustomizeMathJax{\newcommand{\jouleperkelvinnp}{\joule\usk\reciprocal\kelvin}}
+\CustomizeMathJax{\newcommand{\jouleperkilogram}{\joule\per\kilogram}}
+\CustomizeMathJax{\newcommand{\jouleperkilogramnp}{\joule\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\coulombperkilogram}{\coulomb\per\kilogram}}
+\CustomizeMathJax{\newcommand{\coulombperkilogramnp}{\coulomb\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\squaremetrepersecond}{\squaremetre\per\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepersecondnp}{\squaremetre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepersquaresecond}{\squaremetre\per\second\squared}}
+\CustomizeMathJax{\newcommand{\squaremetrepersquaresecondnp}{\squaremetre\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\kilogrammetrepersecond}{\kilogram\usk\metre\per\second}}
+\CustomizeMathJax{\newcommand{\kilogrammetrepersecondnp}{\kilogram\usk\metre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\candelapersquaremetre}{\candela\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\candelapersquaremetrenp}{\candela\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\amperepermetre}{\ampere\per\metre}}
+\CustomizeMathJax{\newcommand{\amperepermetrenp}{\ampere\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\joulepertesla}{\joule\per\tesla}}
+\CustomizeMathJax{\newcommand{\jouleperteslanp}{\joule\usk\reciprocal\tesla}}
+\CustomizeMathJax{\newcommand{\henrypermetre}{\henry\per\metre}}
+\CustomizeMathJax{\newcommand{\henrypermetrenp}{\henry\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampersecond}{\kilogram\per\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersecondnp}{\kilogram\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersquaremetresecond}{\kilogram\per\squaremetre\usk\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersquaremetresecondnp}{\kilogram\usk\rpsquare\metre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersquaremetre}{\kilogram\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\kilogrampersquaremetrenp}{\kilogram\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampermetre}{\kilogram\per\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampermetrenp}{\kilogram\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\joulepermolekelvin}{\joule\per\mole\usk\kelvin}}
+\CustomizeMathJax{\newcommand{\joulepermolekelvinnp}{\joule\usk\reciprocal\mole\usk\reciprocal\kelvin}}
+\CustomizeMathJax{\newcommand{\kilogramperkilomole}{\kilogram\per\kilo\mole}}
+\CustomizeMathJax{\newcommand{\kilogramperkilomolenp}{\kilogram\usk\kilo\reciprocal\mole}}
+\CustomizeMathJax{\newcommand{\kilogramsquaremetre}{\kilogram\usk\squaremetre}}
+\CustomizeMathJax{\newcommand{\kilogramsquaremetrenp}{\kilogramsquaremetre}}
+\CustomizeMathJax{\newcommand{\kilogrammetrepersquaresecond}{\kilogram\usk\metre\per\second\squared}}
+\CustomizeMathJax{\newcommand{\kilogrammetrepersquaresecondnp}{\kilogram\usk\metre\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\newtonpersquaremetre}{\newton\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\newtonpersquaremetrenp}{\newton\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\persquaremetresecond}{1\per\squaremetre\usk\second}}
+\CustomizeMathJax{\newcommand{\persquaremetresecondnp}{\rpsquare\metre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\wattperkilogram}{\watt\per\kilogram}}
+\CustomizeMathJax{\newcommand{\wattperkilogramnp}{\watt\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\wattpercubicmetre}{\watt\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\wattpercubicmetrenp}{\watt\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\wattpersquaremetresteradian}{\watt\per\squaremetre\usk\steradian}}
+\CustomizeMathJax{\newcommand{\wattpersquaremetresteradiannp}{\watt\usk\rpsquare\metre\usk\rp\steradian}}
+\CustomizeMathJax{\newcommand{\jouleperkilogramkelvin}{\joule\per\kilogram\usk\kelvin}}
+\CustomizeMathJax{\newcommand{\jouleperkilogramkelvinnp}{\joule\usk\reciprocal\kilogram\usk\reciprocal\kelvin}}
+\CustomizeMathJax{\newcommand{\squaremetreperkilogram}{\squaremetre\per\kilogram}}
+\CustomizeMathJax{\newcommand{\rpsquaremetreperkilogram}{\squaremetre\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\cubicmetreperkilogram}{\cubic\metre\per\kilogram}}
+\CustomizeMathJax{\newcommand{\rpcubicmetreperkilogram}{\cubic\metre\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\newtonpermetre}{\newton\per\metre}}
+\CustomizeMathJax{\newcommand{\newtonpermetrenp}{\newton\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\Celsius}{\unicode{x2103}}}
+\CustomizeMathJax{\newcommand{\wattpermetrekelvin}{\watt\per\metre\usk\kelvin}}
+\CustomizeMathJax{\newcommand{\wattpermetrekelvinnp}{\watt\usk\reciprocal\metre\usk\reciprocal\kelvin}}
+\CustomizeMathJax{\newcommand{\newtonmetre}{\newton\usk\metre} \CustomizeMathJax{\newcommand{\newtonmetrenp}{\newtonmetre}}}
+\CustomizeMathJax{\newcommand{\squaremetrepercubicsecond}{\squaremetre\per\cubic\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepercubicsecondnp}{\squaremetre\usk\rpcubic\second}}
+\CustomizeMathJax{\newcommand{\metrepersecond}{\metre\per\second}}
+\CustomizeMathJax{\newcommand{\metrepersecondnp}{\metre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\joulepercubicmetre}{\joule\per\cubicmetre}}
+\CustomizeMathJax{\newcommand{\joulepercubicmetrenp}{\joule\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampercubicmetrecoulomb}{\kilogram\per\cubic\metre\usk\coulomb}}
+\CustomizeMathJax{\newcommand{\kilogrampercubicmetrecoulombnp}{\kilogram\usk\rpcubic\metre\usk\reciprocal\coulomb}}
+\CustomizeMathJax{\newcommand{\cubicmetrepersecond}{\cubicmetre\per\second}}
+\CustomizeMathJax{\newcommand{\rpcubicmetrepersecond}{\cubicmetre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersecondcubicmetre}{\kilogram\per\second\usk\cubicmetre}}
+\CustomizeMathJax{\newcommand{\kilogrampersecondcubicmetrenp}{\kilogram\usk\reciprocal\second\usk\rpcubic\metre}}
+\end{warpMathJax}
% \end{macrocode}
%
% \iffalse
@@ -66661,6 +68206,444 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*stackrel>
+% \fi
+%
+% \part{lwarp-stackrel.sty}
+%
+% \section{stackrel}
+%
+% \credits{Heiko Oberdiek}
+%
+% \DescribePackage{stackrel}
+% \pkg{stackrel} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/03/03}{\pkg{stackrel}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{stackrel}[2016/05/16]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\renewcommand{\stackrel}[3][]{%
+ \mathrel{\mathop{#3}\limits_{#1}^{#2}}%
+}}
+
+\CustomizeMathJax{\newcommand{\stackbin}[3][]{%
+ \mathbin{\mathop{#3}\limits_{#1}^{#2}}%
+}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</stackrel>
+% \fi
+%
+%
+%
+% \iffalse
+%<*statex2>
+% \fi
+%
+% \part{lwarp-statex2.sty}
+%
+% \section{statex2}
+%
+% \credits{Rodney A Sparapani}
+%
+% \DescribePackage{statex2}
+% \pkg{statex2} is patched for use by \pkg{lwarp},
+% and emulated for \brand{MathJax}.
+%
+% As of this version, option \optn{autobold} does not appear to work for \PDF\ output.
+% \watchout
+%
+% For \brand{MathJax}, the tilde character |~| does not create \cs{sim}.
+% \watchout
+% Use \cs{sim} directly.
+%
+% Because \brand{MathJax} has limited conditional processing:
+% \watchout
+% \begin{itemize}
+% \item \cs{wrap} only creates square braces, no matter what its optional arguments.
+% \item \cs{P}, \cs{pCau}, \cs{pN}, and \cs{pU} do not handle special cases.
+% \end{itemize}
+%
+% To have \cs{and} work if using \cs{maketitle},
+% \watchout[\cs{and}]
+% place the following after the start of the document:
+% \begin{sourceverb}
+% \newcommand*{\and}{%
+% \relax\ifmmode%
+% \expandafter\;\mb{\mathrm{and}}\;%
+% \else%
+% \expandafter\STATEXand%
+% \fi%
+% }
+% \end{sourceverb}
+%
+% \changes{v0.81}{2020/02/28}{\pkg{statex2}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{statex2}[2011/09/14]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\LWR@HTML@Alpha}[1][]{%
+ \fcolorbox{black}{ForestGreen}{\textcolor{white}{\textsf{ALPHA}}}%
+ \textbf{\textcolor{ForestGreen}{\textsf{#1}}}%
+}
+\LWR@formatted{Alpha}
+
+\newcommand*{\LWR@HTML@List}[1]{%
+ \textbf{\textcolor{Dandelion}{\textsf{L}\textsubscript{\textit{#1}}}}%
+}
+\LWR@formatted{List}
+
+\newcommand*{\LWR@HTML@Snd}[1][]{%
+ \fcolorbox{black}{Dandelion}{\textcolor{white}{\textsf{2nd}}}%
+ \textbf{\textcolor{Dandelion}{\textsf{#1}}}%
+}
+\LWR@formatted{Snd}
+
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{statex2}
+
+\CustomizeMathJax{\newcommand{\cpi}{\boldsymbol{\pi}}}
+\CustomizeMathJax{\newcommand{\c}[1]{\boldsymbol{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\sfsl}[1]{\mathsf#1}}% not slanted
+
+\if@manualbold
+\CustomizeMathJax{\newcommand{\mb}[1]{#1}}
+\else
+\CustomizeMathJax{\newcommand{\mb}[1]{\boldsymbol{#1}}}
+\fi
+
+\CustomizeMathJax{\newcommand{\diag}{\mb{\mathrm{diag}}}}
+\CustomizeMathJax{\newcommand{\blockdiag}{\mb{\mathrm{blockdiag}}}}
+\CustomizeMathJax{\newcommand{\erf}{\mb{\mathrm{erf}}}}
+\CustomizeMathJax{\newcommand{\logit}{\mb{\mathrm{logit}}}}
+\CustomizeMathJax{\newcommand{\trace}{\mb{\mathrm{trace}}}}
+
+\CustomizeMathJax{\newcommand{\chisq}{{\mb{\chi^2}}}}
+\CustomizeMathJax{\newcommand{\deriv}[2]{\mb{\frac{\d{}}{\d{#1}}}\wrap{\mb{#2}}}}
+\CustomizeMathJax{\newcommand{\derivf}[2]{\mb{\frac{\d{}}{\d{#2}}}\wrap{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\e}[1]{\mb{\mathrm{e}^{#1}}}}
+\CustomizeMathJax{\newcommand{\E}[2][]{\mb{\mathrm{E}}_{\mb{#1}} \wrap{\mb{#2}}}}
+\CustomizeMathJax{\newcommand{\ha}{{\mb{\frac{\alpha}{2}}}}}
+\CustomizeMathJax{\newcommand{\I}[2][]{%
+ \mb{\mathrm{I}}_{\mb{#1}} \LWRwrapparen{\mb{#2}}%
+}}
+\CustomizeMathJax{\newcommand{\IBeta}[2]{%
+ \mb{\frac{\Gamma[#1+#2]}{\Gamma[#1]\Gamma[#2]}}%
+}}
+\CustomizeMathJax{\newcommand{\If}{\;\mb{\mathrm{if}}\;}}
+\CustomizeMathJax{\newcommand{\im}{\mb{\mathrm{i}}}}
+\CustomizeMathJax{\newcommand{\ol}{\overline}}
+\CustomizeMathJax{\newcommand{\ow}{\;\mb{\mathrm{otherwise}}\;}}
+\CustomizeMathJax{\newcommand{\pderiv}[2]{%
+ \mb{\frac{\partial}{\partial #1}}\wrap{\mb{#2}}%
+}}
+\CustomizeMathJax{\newcommand{\pderivf}[2]{%
+ \mb{\frac{\partial}{\partial #2}}\wrap{\mb{#1}}%
+}}
+\CustomizeMathJax{\newcommand{\sd}{\mb{\sigma}}}
+\CustomizeMathJax{\newcommand{\ul}{\underline}}
+\CustomizeMathJax{\newcommand{\V}[2][]{\mb{\mathrm{V}}_{\mb{#1}} \wrap{\mb{#2}}}}
+\CustomizeMathJax{\newcommand{\vs}{\;\mb{\mathrm{vs.}}\;}}
+\CustomizeMathJax{\newcommand{\where}{\;\mb{\mathrm{where}}\;}}
+\CustomizeMathJax{\newcommand{\wrap}[2][]{\left[ #2 \right]}}% only []
+\CustomizeMathJax{\newcommand{\LWRwrapparen}[1]{\left( #1 \right)}}% lwarp
+
+% \CustomizeMathJax{\renewcommand{~}{\mb{\sim}}}% doesn't work,
+% replace <space>~<space> with <space>\sim<space>
+
+\CustomizeMathJax{\newcommand{\iid}{\;\stackrel{\mb{\mathrm{iid}}}{\sim}\;}}
+\CustomizeMathJax{\newcommand{\ind}{\;\stackrel{\mb{\mathrm{ind}}}{\sim}\;}}
+\CustomizeMathJax{\newcommand{\indpr}{%
+ \;\stackrel{\mb{\mathrm{ind}}}{\stackrel{\mb{\mathrm{prior}}}{\sim}}\;%
+}}
+\CustomizeMathJax{\newcommand{\post}{\;\stackrel{\mb{\mathrm{post}}}{\sim}\;}}
+\CustomizeMathJax{\newcommand{\prior}{\;\stackrel{\mb{\mathrm{prior}}}{\sim}\;}}
+
+\CustomizeMathJax{\let\STATEXGamma=\Gamma}
+\CustomizeMathJax{\renewcommand{\Gamma}[1][]{\mb{\STATEXGamma}\LWRwrapparen{\mb{#1}}}}
+%
+\CustomizeMathJax{\renewcommand{\and}{\;\mb{\mathrm{and}}\;}}
+%
+\CustomizeMathJax{\newcommand{\H}{\mb{\mathrm{H}}}}
+%
+\CustomizeMathJax{\newcommand{\P}[2][]{\mb{\mathrm{P}}_{\mb{#1}}\wrap{\mb{#2}}}}
+%
+\CustomizeMathJax{\newcommand{\|}{\mb{\mid}}}
+
+\CustomizeMathJax{\newcommand{\B}[1]{\mb{\mathrm{B}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\BB}[1]{\mb{\mathrm{BetaBin}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\Bin}[2]{\mb{\mathrm{Bin}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\Dir}[1]{\mb{\mathrm{Dirichlet}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\HG}[3]{%
+ \mb{\mathrm{Hypergeometric}}\LWRwrapparen{\mb{#1,\ #2,\ #3}}%
+}}
+\CustomizeMathJax{\newcommand{\M}[2]{%
+ \mb{\mathrm{Multinomial}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\NB}[2]{\mb{\mathrm{NegBin}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\Poi}[1]{\mb{\mathrm{Poisson}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\let\Poisson=\Poi}
+
+\CustomizeMathJax{\newcommand{\pBB}[4][x]{%
+ \mb{\frac{\Gamma[#2+1]\Gamma[#3+#1]\Gamma[#2+#4-#1]\Gamma[#3+#4]}%
+ {\Gamma[#1+1]\Gamma[#2-#1+1]\Gamma[#2+#3+#4]\Gamma[#3]\Gamma[#4]}%
+ \I[#1]{\{0, 1,\., #2\}}, \where #3>0,\; #4>0 \and n=1, 2,\.}%
+}}
+\CustomizeMathJax{\newcommand{\pBin}[3][x]{%
+ \mb{\binom{#2}{#1}#3^#1} \LWRwrapparen{\mb{{1-#3}^{#2-#1}}}%
+ \mb{\I[#1]{\{0,1,\.,#2\}}, \where p \in (0, 1) \and n=1, 2,\.}%
+}}
+\CustomizeMathJax{\newcommand{\pPoi}[2][x]{%
+ \mb{\frac{1}{#1!}#2^{#1}\e{-#2}\I[#1]{\{0, 1,\.\}}, \where #2>0}%
+}}
+
+\CustomizeMathJax{\newcommand{\Cau}[2]{\mb{\mathrm{Cauchy}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\let\Cauchy=\Cau}
+\CustomizeMathJax{\newcommand{\Chi}[2][]{%
+ \chisq_{\mb{#1}}\LWRwrapparen{\mb{#2}}%
+}}
+\CustomizeMathJax{\let\Chisq=\Chi}
+\CustomizeMathJax{\newcommand{\Bet}[2]{\mb{\mathrm{Beta}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\let\Beta=\Bet}
+\CustomizeMathJax{\newcommand{\Exp}[1]{\mb{\mathrm{Exp}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\F}[2]{\mb{\mathrm{F}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\Gam}[2]{\mb{\mathrm{Gamma}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\IC}[1]{\mb{\mathrm{\chi^{-2}}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\IG}[2]{%
+ \mb{\mathrm{Gamma^{-1}}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\IW}[2]{%
+ \mb{\mathrm{Wishart^{-1}}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\Log}[2]{%
+\mb{\mathrm{Logistic}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\LogN}[2]{%
+ \mb{\mathrm{Log\!-\!N}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\N}[3][]{%
+ \mb{\mathrm{N}}_{\mb{#1}}\LWRwrapparen{\mb{#2,\ #3}}%
+}}
+\CustomizeMathJax{\newcommand{\Par}[2]{\mb{\mathrm{Pareto}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\let\Pareto=\Par}
+\CustomizeMathJax{\newcommand{\Tsq}[2]{\mb{\mathrm{T^2}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\U}[1]{\mb{\mathrm{U}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\W}[2]{\mb{\mathrm{Wishart}}\LWRwrapparen{\mb{#1,\ #2}}}}
+
+\CustomizeMathJax{\renewcommand{\t}[1]{\mb{\mathrm{t}}\LWRwrapparen{\mb{#1}}}}
+
+\CustomizeMathJax{\newcommand{\pBet}[3][x]{%
+ \IBeta{#2}{#3}%
+ #1^{#2-1}\LWRwrapparen{1-#1}^{#3-1}\I[#1]{0,\ 1}, \where #2>0 \and #3>0%
+}}
+\CustomizeMathJax{\newcommand{\pCau}[3][x]{%
+% \ifthenelse{\equal{#2, #3}{0, 1}}{\frac{1}{\cpi\LWRwrapparen{1+#1}^2}}%
+ {\frac{1}{#3\cpi\left\{1+\wrap{\LWRwrapparen{x-#2}/#3}^2\right\}}, \where #3>0}%
+}}% no special case for 0,1
+\CustomizeMathJax{\newcommand{\pChi}[2][x]{%
+ \frac{2^{-#2/2}}{\Gamma[#2/2]}#1^{#2/2-1}\e{-#1/2}%
+ \I[#1]{0,\infty}, \where #2>0%
+}}
+\CustomizeMathJax{\newcommand{\pExp}[2][x]{%
+ \frac{1}{#2}\e{-#1/#2}\I[#1]{0,\infty},%
+ \where #2>0%
+}}
+\CustomizeMathJax{\newcommand{\pGam}[3][x]{%
+ \frac{#3^{#2}}{\Gamma[#2]}#1^{#2-1}\e{-#3#1}%
+ \I[#1]{0,\infty}, \where #2>0 \and #3>0%
+}}
+\CustomizeMathJax{\newcommand{\pN}[3][x]{%
+% \ifthenelse{\equal{#2, #3}{0, 1}}%
+% {\frac{1}{\sqrt{2\cpi}}\e{-#1^2/2}}%
+ {\frac{1}{\sqrt{2\cpi \cdot #3}}\e{-\LWRwrapparen{#1-#2}^2/2 \cdot #3}}%
+}}% no test for 0,1, must add \cdot
+\CustomizeMathJax{\newcommand{\pPar}[3][x]{%
+ \frac{#3}{#2\LWRwrapparen{1+#1/#2}^{#3+1}}\I[#1]{0,\infty},%
+ \where #2>0 \and #3>0%
+}}
+\CustomizeMathJax{\newcommand{\pU}[3][x]{%
+% \ifthenelse{\equal{#2, #3}{0, 1}}{\I[#1]{0,\ 1}}%
+ {\frac{1}{#3-#2}\I[#1]{#2,\ #3}, \where #2<#3}%
+}}% no special case for 0,1
+
+\CustomizeMathJax{\newcommand{\=}[1]{\bar{#1}}}
+\CustomizeMathJax{\let\^\widehat}
+\CustomizeMathJax{\let\~\widetilde}
+\CustomizeMathJax{\newcommand{\'}[1]{\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\b}[1]{\bar{#1}}}
+\CustomizeMathJax{\newcommand{\c}[1]{\mb{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\d}[1]{\,\mb{\mathrm{d}{#1}}}}
+\CustomizeMathJax{\newcommand{\.}{\mb{\ldots}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</statex2>
+% \fi
+%
+%
+%
+%
+% \iffalse
+%<*statmath>
+% \fi
+%
+% \part{lwarp-statmath.sty}
+%
+% \section{statmath}
+%
+% \credits{Sebastian Ankargren}
+%
+% \DescribePackage{statmath}
+% \pkg{statmath} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/02/28}{\pkg{statmath}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{statmath}[2018/03/08]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{statmath}
+
+\CustomizeMathJax{\let\abcbf\mathbf}
+\CustomizeMathJax{\newcommand{\greekbf}[1]{\boldsymbol{#1}}}
+\CustomizeMathJax{\newcommand{\bfA}{\abcbf A}}
+\CustomizeMathJax{\newcommand{\bfB}{\abcbf B}}
+\CustomizeMathJax{\newcommand{\bfC}{\abcbf C}}
+\CustomizeMathJax{\newcommand{\bfD}{\abcbf D}}
+\CustomizeMathJax{\newcommand{\bfE}{\abcbf E}}
+\CustomizeMathJax{\newcommand{\bfF}{\abcbf F}}
+\CustomizeMathJax{\newcommand{\bfG}{\abcbf G}}
+\CustomizeMathJax{\newcommand{\bfH}{\abcbf H}}
+\CustomizeMathJax{\newcommand{\bfI}{\abcbf I}}
+\CustomizeMathJax{\newcommand{\bfJ}{\abcbf J}}
+\CustomizeMathJax{\newcommand{\bfK}{\abcbf K}}
+\CustomizeMathJax{\newcommand{\bfL}{\abcbf L}}
+\CustomizeMathJax{\newcommand{\bfM}{\abcbf M}}
+\CustomizeMathJax{\newcommand{\bfN}{\abcbf N}}
+\CustomizeMathJax{\newcommand{\bfO}{\abcbf O}}
+\CustomizeMathJax{\newcommand{\bfP}{\abcbf P}}
+\CustomizeMathJax{\newcommand{\bfQ}{\abcbf Q}}
+\CustomizeMathJax{\newcommand{\bfR}{\abcbf R}}
+\CustomizeMathJax{\newcommand{\bfS}{\abcbf S}}
+\CustomizeMathJax{\newcommand{\bfT}{\abcbf T}}
+\CustomizeMathJax{\newcommand{\bfU}{\abcbf U}}
+\CustomizeMathJax{\newcommand{\bfV}{\abcbf V}}
+\CustomizeMathJax{\newcommand{\bfW}{\abcbf W}}
+\CustomizeMathJax{\newcommand{\bfX}{\abcbf X}}
+\CustomizeMathJax{\newcommand{\bfY}{\abcbf Y}}
+\CustomizeMathJax{\newcommand{\bfZ}{\abcbf Z}}
+\CustomizeMathJax{\newcommand{\bfa}{\abcbf a}}
+\CustomizeMathJax{\newcommand{\bfb}{\abcbf b}}
+\CustomizeMathJax{\newcommand{\bfc}{\abcbf c}}
+\CustomizeMathJax{\newcommand{\bfd}{\abcbf d}}
+\CustomizeMathJax{\newcommand{\bfe}{\abcbf e}}
+\CustomizeMathJax{\newcommand{\bff}{\abcbf f}}
+\CustomizeMathJax{\newcommand{\bfg}{\abcbf g}}
+\CustomizeMathJax{\newcommand{\bfh}{\abcbf h}}
+\CustomizeMathJax{\newcommand{\bfi}{\abcbf i}}
+\CustomizeMathJax{\newcommand{\bfj}{\abcbf j}}
+\CustomizeMathJax{\newcommand{\bfk}{\abcbf k}}
+\CustomizeMathJax{\newcommand{\bfl}{\abcbf l}}
+\CustomizeMathJax{\newcommand{\bfm}{\abcbf m}}
+\CustomizeMathJax{\newcommand{\bfn}{\abcbf n}}
+\CustomizeMathJax{\newcommand{\bfo}{\abcbf o}}
+\CustomizeMathJax{\newcommand{\bfp}{\abcbf p}}
+\CustomizeMathJax{\newcommand{\bfq}{\abcbf q}}
+\CustomizeMathJax{\newcommand{\bfr}{\abcbf r}}
+\CustomizeMathJax{\newcommand{\bfs}{\abcbf s}}
+\CustomizeMathJax{\newcommand{\bft}{\abcbf t}}
+\CustomizeMathJax{\newcommand{\bfu}{\abcbf u}}
+\CustomizeMathJax{\newcommand{\bfv}{\abcbf v}}
+\CustomizeMathJax{\newcommand{\bfw}{\abcbf w}}
+\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}}
+\CustomizeMathJax{\newcommand{\bfzero}{\greekbf 0}}
+\CustomizeMathJax{\DeclareMathOperator{\cov}{Cov}}
+\CustomizeMathJax{\DeclareMathOperator{\E}{E}}
+\CustomizeMathJax{\DeclareMathOperator{\V}{V}}
+\CustomizeMathJax{\newcommand{\inas}{\overset{a.s.}{\to}}}
+\CustomizeMathJax{\newcommand{\indist}{\overset{d}{\to}}}
+\CustomizeMathJax{\newcommand{\inprob}{\overset{p}{\to}}}
+\CustomizeMathJax{\DeclareMathOperator{\plim}{plim}}
+\CustomizeMathJax{\DeclareMathOperator{\tr}{tr}}
+\CustomizeMathJax{\DeclareMathOperator{\vc}{vec}}
+\CustomizeMathJax{\DeclareMathOperator{\vcs}{vecs}}
+\CustomizeMathJax{\DeclareMathOperator{\vch}{vech}}
+\CustomizeMathJax{\DeclareMathOperator{\diag}{diag}}
+\CustomizeMathJax{\DeclareMathOperator{\argmin}{arg\,min}}
+\CustomizeMathJax{\DeclareMathOperator{\argmax}{arg\,max}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</statmath>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
%<*steinmetz>
% \fi
%
@@ -67659,6 +69642,147 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
%
+% \iffalse
+%<*tagpdf>
+% \fi
+%
+% \part{lwarp-tagpdf.sty}
+%
+% \section{tagpdf}
+%
+% \DescribePackage{tagpdf}
+% \pkg{tagpdf} is mostly ignored, but emulates alt text, for images only.
+% (\HTML\ only has alternate text for images.)
+%
+% (If left enabled for \HTML\ output, \pkg{tagpdf} errors when producing \HTML,
+% somehow due to the \HTML\ page numbers.)
+%
+% \changes{v0.80}{2020/02/20}{\pkg{tagpdf}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{tagpdf}[2019/07/02]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+
+\tl_new:N \l__uftag_mc_key_label_tl
+
+\keys_define:nn { uftag / mc }
+ {
+ tag .code:n = % the name (H,P,Span etc
+ {},
+ raw .code:n =
+ {}
+ ,
+ alttext .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ alttext-o .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ actualtext .code:n = % ActualText property
+ {},
+ actualtext-o .code:n = % ActualText property
+ {},
+ label .tl_set:N = \l__uftag_mc_key_label_tl,
+ artifact .code:n = {},
+ artifact .default:n = {notype}
+ }
+
+\keys_define:nn { uftag / struct }
+ {
+ label .tl_set:N = \l__uftag_struct_key_label_tl,
+ stash .bool_set:N = \l__uftag_struct_elem_stash_bool,
+ tag .code:n = % S property
+ {},
+ title .code:n = % T property
+ {},
+ title-o .code:n = % T property
+ {},
+ alttext .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ alttext-o .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ actualtext .code:n = % ActualText property
+ {},
+ actualtext-o .code:n = % ActualText property
+ {},
+}
+
+\NewDocumentCommand \tagpdfsetup { m }{}
+
+\cs_set_eq:NN\tagpdfifluatexTF \sys_if_engine_luatex:TF
+\cs_set_eq:NN\tagpdfifluatexT \sys_if_engine_luatex:T
+\cs_set_eq:NN\tagpdfifpdftexT \sys_if_engine_pdftex:T
+\cs_new:Npn \tagpdfget #1 {}
+\cs_new:Npn \uftag_get:n #1 {}
+
+\NewDocumentCommand \tagmcifinTF { m m }{}
+
+\NewDocumentCommand \tagmcbegin { m }{\uftag_mc_begin:n {#1}\ignorespaces}
+\cs_new_protected:Nn \uftag_mc_begin:n {
+ \group_begin:
+ \keys_set:nn { uftag / mc } {#1}
+ \group_end:
+}
+
+\NewDocumentCommand \tagmcend {}{\ThisAltText{}}
+
+\cs_new_protected:Nn \uftag_mc_end: {\ThisAltText{}}
+
+\NewDocumentCommand \tagmcuse { m }{}
+
+\cs_new_protected:Nn \uftag_mc_use:n {}
+
+\NewDocumentCommand \tagstructbegin { m }{
+ \uftag_struct_begin:n {#1}
+}
+
+\cs_new_protected:Nn \uftag_struct_begin:n
+{
+ \group_begin:
+ \keys_set:nn {uftag / struct} { #1 }
+ \group_end:
+}
+
+\NewDocumentCommand \tagstructend { }{\ThisAltText{}}
+
+\cs_new_protected:Nn \uftag_struct_end: {\ThisAltText{}}
+
+\NewDocumentCommand \tagstructuse { m }{}
+
+% \NewDocumentCommand\showtagpdfmcdata { O {\__uftag_get_mc_abs_cnt:} }{}
+% What is the second argument?
+
+\NewDocumentCommand\showtagpdfattributes { }{}
+
+\sys_if_engine_luatex:T
+{
+ \NewDocumentCommand\pdffakespace { }
+ {
+ \__uftag_fakespace:
+ }
+}
+
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \iffalse
+%</tagpdf>
+% \fi
+%
+%
+%
+%
%
% \iffalse
%<*tascmac>
@@ -71207,7 +73331,9 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{unicode-math}
% \pkg{unicode-math} is supported as-is for \HTML\ with \SVG math.
-% For \brand{MathJax}, many characters do not seem to be encoded correctly,
+%
+% For \brand{MathJax}, many characters may not be read correctly,
+% such as bold letters,
% and so are not read correctly by \prog{pdftotext} for \HTML.
% Symbol font commands are emulated, but not all combinations are
% supported by MathJax.
@@ -72696,6 +74822,7 @@ padding:\LWR@printlength{\fboxsep}%
% Converted into an \HTML\ hex color span.
%
% \changes{v0.57}{2018/06/02}{\pkg{xcolor}: New system for switching print and \HTML\ outputs.}
+% \changes{v0.81}{2020/02/28}{\pkg{xcolor}: \cs{textcolor}: Spurrious space.}
% \begin{macrocode}
\NewDocumentCommand{\LWR@HTML@textcolor}{o m m}{%
\begingroup%
@@ -72703,7 +74830,7 @@ padding:\LWR@printlength{\fboxsep}%
\color[#1]{#2}%
}{%
\color{#2}%
-}
+}%
\InlineClass[color:\LWR@currenttextcolor]{textcolor}{#3}%
\endgroup%
}%
diff --git a/macros/latex/contrib/lwarp/lwarp.ins b/macros/latex/contrib/lwarp/lwarp.ins
index 5c9f591ed7..395ee2af8f 100644
--- a/macros/latex/contrib/lwarp/lwarp.ins
+++ b/macros/latex/contrib/lwarp/lwarp.ins
@@ -116,6 +116,7 @@ version 2005/12/01 or later.
\file{lwarp-CJKutf8.sty}{\from{lwarp.dtx}{CJKutf8}}
\file{lwarp-clrdblpg.sty}{\from{lwarp.dtx}{clrdblpg}}
\file{lwarp-cmdtrack.sty}{\from{lwarp.dtx}{cmdtrack}}
+\file{lwarp-colonequals.sty}{\from{lwarp.dtx}{colonequals}}
\file{lwarp-color.sty}{\from{lwarp.dtx}{color}}
\file{lwarp-colortbl.sty}{\from{lwarp.dtx}{colortbl}}
\file{lwarp-continue.sty}{\from{lwarp.dtx}{continue}}
@@ -127,14 +128,18 @@ version 2005/12/01 or later.
\file{lwarp-dblfloatfix.sty}{\from{lwarp.dtx}{dblfloatfix}}
\file{lwarp-dblfnote.sty}{\from{lwarp.dtx}{dblfnote}}
\file{lwarp-dcolumn.sty}{\from{lwarp.dtx}{dcolumn}}
+\file{lwarp-decimal.sty}{\from{lwarp.dtx}{decimal}}
\file{lwarp-diagbox.sty}{\from{lwarp.dtx}{diagbox}}
\file{lwarp-dingbat.sty}{\from{lwarp.dtx}{dingbat}}
+\file{lwarp-DotArrow.sty}{\from{lwarp.dtx}{DotArrow}}
+\file{lwarp-dotlessi.sty}{\from{lwarp.dtx}{dotlessi}}
\file{lwarp-dprogress.sty}{\from{lwarp.dtx}{dprogress}}
\file{lwarp-draftcopy.sty}{\from{lwarp.dtx}{draftcopy}}
\file{lwarp-draftfigure.sty}{\from{lwarp.dtx}{draftfigure}}
\file{lwarp-draftwatermark.sty}{\from{lwarp.dtx}{draftwatermark}}
\file{lwarp-easy-todo.sty}{\from{lwarp.dtx}{easy-todo}}
\file{lwarp-ebook.sty}{\from{lwarp.dtx}{ebook}}
+\file{lwarp-econometrics.sty}{\from{lwarp.dtx}{econometrics}}
\file{lwarp-ed.sty}{\from{lwarp.dtx}{ed}}
\file{lwarp-ellipsis.sty}{\from{lwarp.dtx}{ellipsis}}
\file{lwarp-embrac.sty}{\from{lwarp.dtx}{embrac}}
@@ -142,6 +147,7 @@ version 2005/12/01 or later.
\file{lwarp-endfloat.sty}{\from{lwarp.dtx}{endfloat}}
\file{lwarp-endheads.sty}{\from{lwarp.dtx}{endheads}}
\file{lwarp-endnotes.sty}{\from{lwarp.dtx}{endnotes}}
+\file{lwarp-engtlc.sty}{\from{lwarp.dtx}{engtlc}}
\file{lwarp-enumerate.sty}{\from{lwarp.dtx}{enumerate}}
\file{lwarp-enumitem.sty}{\from{lwarp.dtx}{enumitem}}
\file{lwarp-epigraph.sty}{\from{lwarp.dtx}{epigraph}}
@@ -253,6 +259,7 @@ version 2005/12/01 or later.
\file{lwarp-lua-check-hyphen.sty}{\from{lwarp.dtx}{lua-check-hyphen}}
\file{lwarp-lua-visual-debug.sty}{\from{lwarp.dtx}{lua-visual-debug}}
\file{lwarp-luacolor.sty}{\from{lwarp.dtx}{luacolor}}
+\file{lwarp-luamplib.sty}{\from{lwarp.dtx}{luamplib}}
\file{lwarp-luatodonotes.sty}{\from{lwarp.dtx}{luatodonotes}}
\file{lwarp-lyluatex.sty}{\from{lwarp.dtx}{lyluatex}}
\file{lwarp-magaz.sty}{\from{lwarp.dtx}{magaz}}
@@ -288,6 +295,7 @@ version 2005/12/01 or later.
\file{lwarp-multicol.sty}{\from{lwarp.dtx}{multicol}}
\file{lwarp-multicolrule.sty}{\from{lwarp.dtx}{multicolrule}}
\file{lwarp-multimedia.sty}{\from{lwarp.dtx}{multimedia}}
+\file{lwarp-multiobjective.sty}{\from{lwarp.dtx}{multiobjective}}
\file{lwarp-multirow.sty}{\from{lwarp.dtx}{multirow}}
\file{lwarp-multitoc.sty}{\from{lwarp.dtx}{multitoc}}
\file{lwarp-musicography.sty}{\from{lwarp.dtx}{musicography}}
@@ -302,6 +310,7 @@ version 2005/12/01 or later.
\file{lwarp-nicefrac.sty}{\from{lwarp.dtx}{nicefrac}}
\file{lwarp-niceframe.sty}{\from{lwarp.dtx}{niceframe}}
\file{lwarp-noitcrul.sty}{\from{lwarp.dtx}{noitcrul}}
+\file{lwarp-nolbreaks.sty}{\from{lwarp.dtx}{nolbreaks}}
\file{lwarp-nomencl.sty}{\from{lwarp.dtx}{nomencl}}
\file{lwarp-nonfloat.sty}{\from{lwarp.dtx}{nonfloat}}
\file{lwarp-nonumonpart.sty}{\from{lwarp.dtx}{nonumonpart}}
@@ -340,6 +349,7 @@ version 2005/12/01 or later.
\file{lwarp-pfnote.sty}{\from{lwarp.dtx}{pfnote}}
\file{lwarp-phfqit.sty}{\from{lwarp.dtx}{phfqit}}
\file{lwarp-physics.sty}{\from{lwarp.dtx}{physics}}
+\file{lwarp-physunits.sty}{\from{lwarp.dtx}{physunits}}
\file{lwarp-pifont.sty}{\from{lwarp.dtx}{pifont}}
\file{lwarp-placeins.sty}{\from{lwarp.dtx}{placeins}}
\file{lwarp-plarydshln.sty}{\from{lwarp.dtx}{plarydshln}}
@@ -367,6 +377,7 @@ version 2005/12/01 or later.
\file{lwarp-relsize.sty}{\from{lwarp.dtx}{relsize}}
\file{lwarp-repeatindex.sty}{\from{lwarp.dtx}{repeatindex}}
\file{lwarp-resizegather.sty}{\from{lwarp.dtx}{resizegather}}
+\file{lwarp-returntogrid.sty}{\from{lwarp.dtx}{returntogrid}}
\file{lwarp-rmathbr.sty}{\from{lwarp.dtx}{rmathbr}}
\file{lwarp-rmpage.sty}{\from{lwarp.dtx}{rmpage}}
\file{lwarp-romanbar.sty}{\from{lwarp.dtx}{romanbar}}
@@ -407,6 +418,9 @@ version 2005/12/01 or later.
\file{lwarp-srctex.sty}{\from{lwarp.dtx}{srctex}}
\file{lwarp-stabular.sty}{\from{lwarp.dtx}{stabular}}
\file{lwarp-stackengine.sty}{\from{lwarp.dtx}{stackengine}}
+\file{lwarp-stackrel.sty}{\from{lwarp.dtx}{stackrel}}
+\file{lwarp-statex2.sty}{\from{lwarp.dtx}{statex2}}
+\file{lwarp-statmath.sty}{\from{lwarp.dtx}{statmath}}
\file{lwarp-steinmetz.sty}{\from{lwarp.dtx}{steinmetz}}
\file{lwarp-stfloats.sty}{\from{lwarp.dtx}{stfloats}}
\file{lwarp-struktex.sty}{\from{lwarp.dtx}{struktex}}
@@ -422,6 +436,7 @@ version 2005/12/01 or later.
\file{lwarp-tabls.sty}{\from{lwarp.dtx}{tabls}}
\file{lwarp-tabularx.sty}{\from{lwarp.dtx}{tabularx}}
\file{lwarp-tabulary.sty}{\from{lwarp.dtx}{tabulary}}
+\file{lwarp-tagpdf.sty}{\from{lwarp.dtx}{tagpdf}}
\file{lwarp-tascmac.sty}{\from{lwarp.dtx}{tascmac}}
\file{lwarp-textarea.sty}{\from{lwarp.dtx}{textarea}}
\file{lwarp-textcomp.sty}{\from{lwarp.dtx}{textcomp}}
diff --git a/macros/latex/contrib/lwarp/lwarp.pdf b/macros/latex/contrib/lwarp/lwarp.pdf
index de944bc2ac..2b838cf756 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 afa450930a..a862d7f8bb 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.80"
+printversion = "v0.81"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -228,7 +228,9 @@ if sourcename=="lwarp" then
print ("lwarpmk: ===")
print ("lwarpmk: lwarp.sty has recently been recompiled in this directory,")
print ("lwarpmk: and \"lwarpmk.conf\" is no longer set for your own project.")
- print ("lwarpmk: Recompile your own project using pdf/lua/xelatex <projectname>.")
+ print ("lwarpmk: (Perhaps you are not in your project's directory?)")
+ print ("lwarpmk: In your project directory, recompile your project")
+ print ("lwarpmk: using pdf/lua/xelatex <projectname>.")
print ("lwarpmk: After a recompile, \"lwarpmk.conf\" will be set for your project,")
print ("lwarpmk: and you may again use lwarpmk.")
print ("lwarpmk: ===")