summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lwarp
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-23 03:03:31 +0000
committerNorbert Preining <norbert@preining.info>2020-09-23 03:03:31 +0000
commit6639178e654b36f7065a0cdbab783d687550e896 (patch)
tree409157d10a0e6d3d9c828b926a60d23195eb4abb /macros/latex/contrib/lwarp
parent1a37a060977fa92be44dcee0fb99c59e46023afe (diff)
CTAN sync 202009230303
Diffstat (limited to 'macros/latex/contrib/lwarp')
-rw-r--r--macros/latex/contrib/lwarp/README.txt2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.dtx2999
-rw-r--r--macros/latex/contrib/lwarp/lwarp.ins9
-rw-r--r--macros/latex/contrib/lwarp/lwarp.pdfbin2923838 -> 2970521 bytes
-rwxr-xr-xmacros/latex/contrib/lwarp/lwarpmk.lua2
5 files changed, 2461 insertions, 551 deletions
diff --git a/macros/latex/contrib/lwarp/README.txt b/macros/latex/contrib/lwarp/README.txt
index 771e3d6635..602ea9e737 100644
--- a/macros/latex/contrib/lwarp/README.txt
+++ b/macros/latex/contrib/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.89 README.txt
+LaTeX lwarp package v0.891 README.txt
Files included are:
diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index de330000f3..8a40c80c2f 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/09/03 v0.89 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2020/09/22 v0.891 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -1254,8 +1254,9 @@ before and after each image.
\subsubsection{\brand{MathJax} option}
\label{sec:limitsmathjax}
-The popular \brand{MathJax} alternative (\url{mathjax.org}) may be used to display math.
+The \brand{MathJax} (\url{mathjax.org}) \LaTeX-math to \HTML\ converter
\margintag{\brand{MathJax} math option}
+may be used to display math.
\DescribeProgram{MathJax}
\gindex{math>mathjax=\brand{MathJax} summary}
\gindex{mathjax=\brand{MathJax}>summary}
@@ -1267,8 +1268,9 @@ equation numbering and cross referencing to be almost entirely under the control
\item As detokenized printed \LaTeX{} commands placed directly into the \HTML\ output
for interpretation by the \brand{MathJax} display scripts. An additional script is used to
pre-set the equation number format and value according to the current \LaTeX\ values,
-and the \brand{MathJax} cross-referencing system is ignored in favor of the \LaTeX\ internal system,
-seamlessly integrating with the rest of the \LaTeX\ code.
+and the \brand{MathJax} equation numbering system is ignored in favor of the \LaTeX\ internal system,
+seamlessly integrating with the rest of the \HTML\ output, including any math
+appearing in non-\brand{MathJax} \SVG\ output.
\end{enumerate}
\subsubsection{Customizing \brand{MathJax}}
@@ -1329,13 +1331,23 @@ Limitations when using \brand{MathJax} include:
While \brand{MathJax} is enabled inside \env{tabbing}, the browser may not correctly
render the horizontal alignment of the math and text following after on the same line.
-\item Other math-related macros and packages are not directly supported by \brand{MathJax},
+\item \brand{MathJax} includes the \prog{textmacros} extension,
+ \margintag{\cs{text}}
+ which supports various macros which are commonly used inside \cs{text},
+ such as \cs{textbf} and text accents.
+ \pkg{Lwarp} supports this extension.
+
+\item Many other math-related macros and packages are
\trouble[other macros and packages]{mathjax=\brand{MathJax}>unsupported packages}
- including \cs{ensuremath} and \pkg{bigdelim},
- and occasionally-used macros such as \cs{relax}.
+ \trouble{package>mathjax=\brand{MathJax} support}
+ not directly supported by \brand{MathJax},
+ including \cs{ensuremath} and occasionally-used macros such as \cs{relax}.
While using \brand{MathJax}, \pkg{lwarp} provides emulation
- for footnotes, \pkg{bm}, \pkg{mathtools},
- \pkg{nicefrac}, \pkg{siunitx}, and \pkg{units}.
+ for many of these macros, as well as for footnotes and emulation for
+ dozens of packages (see \cref{tab:supported}).
+ In many cases these emulations simply ignore the package in a source-compatible way.
+ Others produce a result which represents the meaning, even if they don't look exact.
+ Look up each package in this document for a description of the limitations of each.
\end{itemize}
}
@@ -1514,7 +1526,7 @@ For \brand{MathJax}, use \cs{ifnextchar} instead of \cs{@ifnextchar}:
\trouble{mathjax=\brand{MathJax}>@ifnextchar=\cs{@ifnextchar} macros}
\trouble{math>@ifnextchar=\cs{@ifnextchar} macros and \brand{MathJax}}
\begin{sourcedisplay}
-\cs{CustomizeMathJax}\{cs{def}\cs{myname}\{\cs{ifnextchar} X \cs{found}\cs{notfound}\}\}
+\cs{CustomizeMathJax}\{\cs{def}\cs{myname}\{\cs{ifnextchar} X \cs{found}\cs{notfound}\}\}
\end{sourcedisplay}
``\texttt{X}'' may be a single \acro{ASCII} character,
or a hex number inside braces, ex:
@@ -2676,6 +2688,16 @@ If using \cs{newfloat}, \pkg{trivfloat}, and/or
% would appear in the List of Figures/Tables before the enclosing figure/table,
% therefore \pkg{lwarp} does not place subfigures in the LOF/LOT.
+To have correct sub table numbers:
+\trouble[table numbering]{table>numbering>subfig=\pkg{subfig}}
+\trouble{subfig=\pkg{subfig}>numbering}
+\trouble{subtable>numbering>subfig=\pkg{subfig}}
+\begin{sourcedisplay}
+\cs{usepackage}\{caption\}\\
+\cs{captionsetup}[table]\{position=top\}
+\end{sourcedisplay}
+
+
At present, the package options for \optn{lofdepth} and \optn{lotdepth}
\trouble[\optn{lof/lotdepth}]{subfig=\pkg{subfig}>options}
are not working. These counters must be set separately after the
@@ -3005,7 +3027,7 @@ This boolean may be tested by the user for later use.
%<*package>
% \fi
%
-% \CheckSum{47034}
+% \CheckSum{50243}
%
% \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
@@ -3137,6 +3159,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.87}{2020/06/03}{\ 2020/06/03}
% \changes{v0.88}{2020/07/19}{\ 2020/07/19}
% \changes{v0.89}{2020/09/03}{\ 2020/09/03}
+% \changes{v0.891}{2020/09/22}{\ 2020/09/22}
@@ -3171,7 +3194,7 @@ This boolean may be tested by the user for later use.
% used for the final conversion of text and images. Math may be represented
% by \SVG\ images or \brand{MathJax}.
% More than 500 \LaTeX\ packages and classes are supported,
-% of which more than 60 also support \brand{MathJax}.
+% of which more than 70 also support \brand{MathJax}.
%
% Documents may be produced by \DVI\ or \PDF\ \LaTeX, Lua\LaTeX, \XeLaTeX;
% by several CJK engines, classes, and packages;
@@ -3360,6 +3383,35 @@ This boolean may be tested by the user for later use.
%
% \begin{description}
% \needspace{2\baselineskip}
+% \item[v0.891:] \brand{MathJax} additions and improvements.
+% \begin{itemize}
+% \item Now displays inline \cs{verb} text as \cs{texttt}.
+% \margintag{core}
+% \item Fixed \pkg{alltt} and verbatims with \LaTeX\ lists.
+% \item Now generates an error if nested each of \env{warpHTML}, \env{warpprint}, \env{warpMathJax}
+% inside itself.
+% \item Added \brand{MathJax} \prog{textmacros} extension, allowing
+% \margintag{\brand{MathJax}}
+% formatting inside \cs{text}.
+% \item \pkg{biblatex}, \pkg{hyperref}: Added back page references.
+% \margintag{packages}
+% \item \pkg{fancyvrb}: Fixed \env{BVerbatim} with a label.
+% \item \pkg{listings}: Fixed \brand{MathJax} with captions, improved \HTML\ sanitation.
+% \item \pkg{babel-french}: Fixed \cs{texorpdfstring} conflict.
+% \item Now honors Greek package options for \pkg{mathdesign},
+% \pkg{mathpazo}, \pkg{mathptmx},
+% \pkg{newpxmath}, \pkg{newtxmath}.
+% \item Improved \brand{MathJax} for \pkg{colonequals}, \pkg{mathdesign},
+% \pkg{mathdots}, \pkg{mathfixs}, \pkg{mathtools}, \pkg{multiobjective},
+% \pkg{nicefrac}, \pkg{shuffle}, \pkg{units}.
+% \item \pkg{unicode-math}: Added Greek macros, as well as macros for
+% the first several categories listed in \cmds{texdoc unimath-symbols}.
+% Improved symbol shape macros with Greek. Improved documentation.
+% \item Added \pkg{bussproofs}, \pkg{cmbright}, \pkg{fourier},
+% \pkg{kpfonts}, \pkg{kpfonts-otf},
+% \pkg{libertinust1math}, \pkg{scalerel}, \pkg{txgreeks}.
+% \end{itemize}
+% \needspace{2\baselineskip}
% \item[v0.89:] Additional \brand{MathJax} support.
% \begin{itemize}
% \item Adapted to upcoming \LaTeX\ kernel changes.
@@ -5432,6 +5484,8 @@ This boolean may be tested by the user for later use.
% Indexing: & \prog{makeindex}, \prog{xindy}, and \prog{xindex} are supported,
% with hyperlinks.
%
+% \smallskip
+%
% \mpkg{gindex}, \spkg{hvindex}, \epkg{idxlayout}, \mpkg{imakeidx},
% \epkg{index}, \mpkg{makeidx},
% \epkg{repeatindex}, \mpkg{splitidx}, \spkg{varindex}, \spkg{xindex}.
@@ -5488,12 +5542,14 @@ This boolean may be tested by the user for later use.
% Additional math: & Math fonts via \SVG\ images,
% \spkg{accents}\ejax, \spkg{amscd}, \spkg{autobreak}\ejax, \ipkg{autonum},
% \mpkg{backnaur}, \mpkg{bm}\ejax, \spkg{braket}\ejax,
-% \mpkg{breqn}, \mpkg{cases}, \spkg{centernot}\ejax, \spkg{colonequals}\ejax,
-% \spkg{decimal}\ejax,
+% \mpkg{breqn}, \mpkg{bussproofs}\ejax, \mpkg{cases},
+% \spkg{centernot}\ejax, \spkg{cmbright}\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{extarrows}\ejax, \spkg{fouridx}\ejax, \spkg{fourier}\ejax,
% \spkg{guass}, \spkg{hhtensor}\ejax, \spkg{icomma}\ijax, \spkg{jkmath},
-% \spkg{leftidx}\ejax, \spkg{mathalpha}\ejax,
+% \spkg{kpfonts}\ejax, \spkg{kpfonts-otf}\ejax,
+% \spkg{leftidx}\ejax, \spkg{libertinust1math}\ejax, \spkg{mathalpha}\ejax,
% \spkg{mathcomp}\ejax, \spkg{mathdesign}\ejax,
% \spkg{mathdots}\ejax,
% \spkg{mathfixs}\ejax, \spkg{mathpunctspace}\ijax,
@@ -5502,9 +5558,10 @@ This boolean may be tested by the user for later use.
% \spkg{nicematrix}, \spkg{noitcrul}\ejax,
% \spkg{newpxmath}\ejax, \spkg{newtxmath}\ejax, \spkg{newtxsf}\ejax,
% \spkg{pb-diagram},
-% \ipkg{resizegather}, \spkg{rmathbr}\ejax, \epkg{shuffle}\ejax, \spkg{stackrel}\ejax,
+% \ipkg{resizegather}, \spkg{rmathbr}\ejax, \spkg{scalerel}\ejax,
+% \epkg{shuffle}\ejax, \spkg{stackrel}\ejax,
% \mpkg{statex2}\ejax, \spkg{statmath}\ejax,
-% \spkg{subsupscripts}\ejax, \spkg{textualicomma}\ijax,
+% \spkg{subsupscripts}\ejax, \spkg{textualicomma}\ijax, \spkg{txgreeks}\ejax,
% \spkg{unicode-math}\ejax, \spkg{ushort}\ejax, \mpkg{witharrows}\ejax,
% \mpkg{xfakebold}\ejax, \mpkg{xy}.
% Many others work as-is. \\
@@ -5552,6 +5609,8 @@ This boolean may be tested by the user for later use.
% \epkg{rotating} is emulated but all objects are unrotated.
% \env{picture}, \mpkg{tikz}, and \mpkg{xy} are converted to an \SVG\ image.
%
+% \smallskip
+%
% \mpkg{asymptote}, \spkg{curves}, \spkg{datatool},
% \spkg{eepic}, \epkg{epsfig}, \spkg{epstopdf},
% \epkg{figsize}, \ipkg{fitbox},
@@ -5640,8 +5699,14 @@ This boolean may be tested by the user for later use.
% Appear in \SVG\ math expressions or embedded image environments.
% \mpkg{fontaxes}, \mpkg{nfssext-cfr}, \mpkg{slantsc}, \ipkg{tabfigures}.
%
+% \smallskip
+%
% Tested to work as-is: Special font macros in \spkg{cfr-lm} and others
-% which use \spkg{nfssext-cfr}. \\
+% which use \spkg{nfssext-cfr}.
+%
+% \smallskip
+%
+% Also see the math section for math and \brand{MathJax} support for math font packages. \\
%
% Symbols: & Native \LaTeX\ diacriticals, \mpkg{academicons}, \spkg{amssymb}\sjax,
% \mpkg{bbding},
@@ -8427,7 +8492,8 @@ This boolean may be tested by the user for later use.
% Do \emph{not} place anything else on the same line as |\end{warpHTML}|.
% \trouble[\texttt{\cs{end}\{warpHTML\}}]{warpHTML}
% The exact phrase is used to mark the end of the environment.
-% Do not nest \env{warpHTML} inside itself.\watchout[nesting]
+% Do not nest \env{warpHTML} inside itself. \watchout[nesting]
+% \env{warpMathJax} may be used inside \env{warpHTML}.
%
% \DescribeEnv{warpprint}
% Anything which is to be done only for print output
@@ -8470,7 +8536,8 @@ This boolean may be tested by the user for later use.
% Usually, this is \cs{CustomizeMathJax}, used to add emulation macros.
% |\end{warpMathJax}| must appear on its own line.
% \trouble[\texttt{\cs{end}\{warpMathJax\}}]{warpMathJax}
-% Do not nest \env{warpMathJax} inside itself.\watchout[nesting]
+% Do not nest \env{warpMathJax} inside itself. \watchout[nesting]
+% \env{warpMathJax} may be used inside \env{warpHTML}.
%
%
% \subsection{Commands to be placed into the \env{warpprint} environment}
@@ -12582,7 +12649,8 @@ This boolean may be tested by the user for later use.
% \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.}
% \changes{v0.81}{2020/02/15}{Prevented \pkg{statex}.}
% \changes{v0.87}{2020/05/14}{Prevented \pkg{csvtools}.}
-% \changes{v0.88}{2020/07/07}{Added \pkg{shadethm}.}
+% \changes{v0.88}{2020/07/07}{Prevented \pkg{shadethm}.}
+% \changes{v0.891}{2020/09/16}{Prevented \pkg{libgreek}.}
%
% ^^A *earlyloadnever *loadnever
% \begin{macrocode}
@@ -12609,6 +12677,7 @@ This boolean may be tested by the user for later use.
\LWR@earlyloadnever{formula}{siunitx}
\LWR@earlyloadnever{glossary}{glossaries}
\LWR@earlyloadnever{hyper}{hyperref}
+\LWR@earlyloadnever{libgreek}{libertinust1math, newtx}
\LWR@earlyloadnever{newthm}{ntheorem}
\LWR@earlyloadnever{pdfcprot}{microtype}
\LWR@earlyloadnever{picinpar}{floatflt, wrapfig}
@@ -12713,6 +12782,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{breakurl}
\LWR@loadafter{breqn}
\LWR@loadafter{bsheaders}
+\LWR@loadafter{bussproofs}
\LWR@loadafter{bxpapersize}
\LWR@loadafter{bytefield}
\LWR@loadafter{cancel}
@@ -12740,6 +12810,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{cite}
\LWR@loadafter{citeref}
\LWR@loadafter{cleveref}
+% cmbright may be preloaded
\LWR@loadafter{cmdtrack}
\LWR@loadafter{colonequals}
\LWR@loadafter{color}
@@ -12830,6 +12901,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{foreign}
\LWR@loadafter{forest}
\LWR@loadafter{fouridx}
+% fourier may be loaded before lwarp
\LWR@loadafter{framed}
\LWR@loadafter{ftcap}
\LWR@loadafter{ftnright}
@@ -12875,6 +12947,8 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{jurabib}
\LWR@loadafter{karnaugh-map}
\LWR@loadafter{keyfloat}
+% kpfonts may be loaded before lwarp
+% kpfonts-otf may be loaded before lwarp
\LWR@loadafter{layaureo}
\LWR@loadafter{layout}
\LWR@loadafter{layouts}
@@ -12882,6 +12956,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{leftidx}
\LWR@loadafter{letterspace}
\LWR@loadafter{lettrine}
+% libertinust1math may be loaded before lwarp
\LWR@loadafter{lineno}
\LWR@loadafter{lips}
\LWR@loadafter{listings}
@@ -13015,7 +13090,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{pstricks}
% \LWR@loadafter{pxatbegshi}% may be used by morewrites
\LWR@loadafter{pxeveryshi}
-\LWR@loadafter{pxfonts}
+% \LWR@loadafter{pxfonts}% may be loaded before lwarp
\LWR@loadafter{pxftnright}
\LWR@loadafter{pxjahyper}
\LWR@loadafter{quotchap}
@@ -13037,6 +13112,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{rviewport}
\LWR@loadafter{savetrees}
% scalefnt is loaded by babel-french
+\LWR@loadafter{scalerel}
\LWR@loadafter{schemata}
\LWR@loadafter{scrextend}
\LWR@loadafter{scrhack}
@@ -13128,8 +13204,9 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{trivfloat}
\LWR@loadafter{truncate}
\LWR@loadafter{turnthepage}
-\LWR@loadafter{txfonts}
\LWR@loadafter{twoup}
+% \LWR@loadafter{txfonts}% may be loaded before lwarp
+% txgreeks may be loaded before lwarp
% \end{macrocode}
% \changes{v0.44}{2017/11/19}{Adjustment for \pkg{koma-script}.}
% \begin{macrocode}
@@ -13138,7 +13215,7 @@ This boolean may be tested by the user for later use.
% \LWR@loadafter{ulem}% preloaded by ctexart and related classes
\LWR@loadafter{umoline}
\LWR@loadafter{underscore}
-\LWR@loadafter{unicode-math}
+% unicode-math may be loaded before lwarp
\LWR@loadafter{units}
\LWR@loadafter{unitsdef}
\LWR@loadafter{upgreek}
@@ -13531,7 +13608,11 @@ This boolean may be tested by the user for later use.
% \changes{v0.88}{2020/06/06}{Added.}
% \begin{macrocode}
\newcommand*{\LWR@maybe@orignewpage}{%
- \ifnumgreater{\value{LWR@texboxdepth}}{0}{}{\LWR@orignewpage}%
+ \LWR@traceinfo{LWR@maybe@orignewpage}%
+ \ifnumgreater{\value{LWR@texboxdepth}}{0}
+ {}%
+ {\LWR@orignewpage}%
+ \LWR@traceinfo{LWR@maybe@orignewpage done}%
}
% \end{macrocode}
% \end{macro}
@@ -14464,20 +14545,46 @@ This boolean may be tested by the user for later use.
% user uses the \pkg{comment} package. Each filename is ``|comment_#2.cut|''.
% Based on the \pkg{comment} package.
% \changes{v0.84}{2020/03/30}{Independent cut files.}
+% \changes{v0.891}{2020/09/15}{Error if nested comment.}
% \begin{macrocode}
\def\LWR@includecomment
#1#2{\message{Lwarp: Including comment '#1'}%
- \csarg\def{After#1Comment}{\CloseAndInputCutFile}
- \csarg\def{#1}{\endgroup \message{Including '#1' comment.}%
- \def\CommentCutFile{comment_#2.cut} \SetUpCutFile \ProcessComment{#1}}%
- \CommentEndDef{#1}}
+ \csarg\def{After#1Comment}{%
+ \CloseAndInputCutFile%
+ \csundef{LWR@#1commentused}%
+ }
+ \csarg\def{#1}{%
+ \endgroup
+ \ifcsdef{LWR@#1commentused}{
+ \PackageError{lwarp}%
+ {Nested #1 environment}%
+ {%
+ Environment #1 cannot be nested.\MessageBreak
+ This can happen when a package is loaded
+ from inside a\MessageBreak
+ #1 environment.%
+ }%
+ }{}
+ \csdef{LWR@#1commentused}{}
+ \message{Including '#1' comment.}%
+ \def\CommentCutFile{comment_#2.cut}
+ \SetUpCutFile
+ \ProcessComment{#1}
+ }%
+ \CommentEndDef{#1}
+}
\def\LWR@excludecomment
#1#2{\message{Lwarp: Excluding comment '#1'}%
- \csarg\def{#1}{\endgroup \message{Excluding '#1' comment.}%
+ \csarg\def{#1}{
+ \endgroup
+ \message{Excluding '#1' comment.}%
\begingroup
- \def\CommentCutFile{comment_#2.cut} \def\ProcessCutFile{}%
- \def\ThisComment####1{}\ProcessComment{#1}}%
+ \def\CommentCutFile{comment_#2.cut}
+ \def\ProcessCutFile{}%
+ \def\ThisComment####1{}%
+ \ProcessComment{#1}
+ }%
\csarg\def{After#1Comment}{\CloseAndInputCutFile \endgroup}
\CommentEndDef{#1}}
% \end{macrocode}
@@ -15245,7 +15352,8 @@ This boolean may be tested by the user for later use.
% \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.}
% \changes{v0.81}{2020/02/28}{Prevented \pkg{statex}.}
% \changes{v0.87}{2020/05/14}{Prevented \pkg{csvtools}.}
-% \changes{v0.88}{2020/07/07}{Added \pkg{shadethm}.}
+% \changes{v0.88}{2020/07/07}{Prevented \pkg{shadethm}.}
+% \changes{v0.891}{2020/09/16}{Prevented \pkg{libgreek}.}
%
% The following should never be loaded:
%
@@ -15269,6 +15377,7 @@ This boolean may be tested by the user for later use.
\LWR@checkloadnever{#1}{formula}{siunitx}
\LWR@checkloadnever{#1}{glossary}{glossaries}
\LWR@checkloadnever{#1}{hyper}{hyperref}
+\LWR@checkloadnever{#1}{libgreek}{libertinust1math, newtx}
\LWR@checkloadnever{#1}{newthm}{ntheorem}
\LWR@checkloadnever{#1}{pdfcprot}{microtype}
\LWR@checkloadnever{#1}{picinpar}{floatflt, wrapfig}
@@ -15689,29 +15798,29 @@ This boolean may be tested by the user for later use.
% Used to copy the |.toc| file to |.sidetoc| to re-print the \TOC\ in
% the side\TOC\ navigation pane.
% \begin{macrocode}
-\newwrite\LWR@copyoutfile % open the file to write to
-\newread\LWR@copyinfile % open the file to read from
+\newwrite\LWR@copyoutfile % open the file to write to
+\newread\LWR@copyinfile % open the file to read from
\newcommand*{\LWR@copyfile}[2]{%
-\LWR@traceinfo{LWR@copyfile: copying #1 to #2}
+ \LWR@traceinfo{LWR@copyfile: copying #1 to #2}
-\immediate\openout\LWR@copyoutfile=#2
-\openin\LWR@copyinfile=#1
-\begingroup\endlinechar=-1
-\makeatletter
+ \immediate\openout\LWR@copyoutfile=#2
+ \openin\LWR@copyinfile=#1
+ \begingroup\endlinechar=-1
+ \makeatletter
-\LWR@traceinfo{LWR@copyfile: about to loop}
+ \LWR@traceinfo{LWR@copyfile: about to loop}
-\loop\unless\ifeof\LWR@copyinfile
- \LWR@traceinfo{LWR@copyfile: one line}
- \read\LWR@copyinfile to\LWR@fileline % Read one line and store it into \LWR@fileline
+ \loop\unless\ifeof\LWR@copyinfile
+ \LWR@traceinfo{LWR@copyfile: one line}
+ \read\LWR@copyinfile to\LWR@fileline % Read one line and store it into \LWR@fileline
% \LWR@fileline\par % print the content into the pdf
% print the content:
- \immediate\write\LWR@copyoutfile{\unexpanded\expandafter{\LWR@fileline}}%
-\repeat
-\immediate\closeout\LWR@copyoutfile
-\LWR@traceinfo{LWR@copyfile: done}
-\endgroup
+ \immediate\write\LWR@copyoutfile{\unexpanded\expandafter{\LWR@fileline}}%
+ \repeat
+ \immediate\closeout\LWR@copyoutfile
+ \LWR@traceinfo{LWR@copyfile: done}
+ \endgroup
}
% \end{macrocode}
% \end{macro}
@@ -17122,7 +17231,7 @@ div.indexheading {margin-top: 2ex ; font-weight: bold}
div.hidden, span.hidden { display: none ; }
-kbd, span.texttt {
+kbd, span.texttt, p span.texttt {
font-family: "DejaVu Mono", "Bitstream Vera Mono", "Lucida Console",
"Nimbus Mono L", "Liberation Mono", "FreeMono", "Andale Mono",
"Courier New", monospace;
@@ -19504,6 +19613,7 @@ page_compositor "."
% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Improved equation numbering.}
% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Added support for starred macros.}
% \changes{v0.87}{2020/05/20}{File: \filenm{lwarp_mathjax.txt}: Now provides \cs{ifstar}, \cs{ifnextchar}.}
+% \changes{v0.891}{2020/09/07}{File: \filenm{lwarp_mathjax.txt}: Renamed \filenm{tagformat} extension.}
%
% ^^A *lwarp_mathjax.txt
%
@@ -19529,7 +19639,7 @@ MathJax = {
subequations: "0",
section: "",
loader: {
- load: ['[tex]/tagFormat'],
+ load: ['[tex]/tagformat', '[tex]/textmacros'],
},
startup: {
ready() {
@@ -19620,9 +19730,9 @@ MathJax = {
}, // startup
tex: {
- packages: {'[+]': ['tagFormat', 'ifstar-ifnextchar-setequnumber']},
+ packages: {'[+]': ['tagformat', 'ifstar-ifnextchar-setequnumber', 'textmacros']},
tags: "ams",
- tagFormat: {
+ tagformat: {
number: function (n) {
if(MathJax.config.subequations==0)
return(MathJax.config.section + n);
@@ -19771,7 +19881,7 @@ MathJax = {
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.89"
+printversion = "v0.891"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -21761,8 +21871,14 @@ end -- not --version
\newcommand{\LWR@forcenewpage}{%
\LWR@traceinfo{LWR@forcenewpage}%
\ifinner\else%
-\LWR@stoppars\LWR@maybe@orignewpage\LWR@startpars%
+ \LWR@traceinfo{LWR@forcenewpage A}%
+ \LWR@stoppars%
+ \LWR@traceinfo{LWR@forcenewpage B}%
+ \LWR@maybe@orignewpage%
+ \LWR@traceinfo{LWR@forcenewpage C}%
+ \LWR@startpars%
\fi%
+\LWR@traceinfo{LWR@forcenewpage done}%
}
% \end{macrocode}
%
@@ -24203,9 +24319,12 @@ end -- not --version
\LWR@replacestrings{<}{&lt;}%
\LWR@replacestrings{>}{&gt;}%
% \end{macrocode}
-% The double quote occasionally causes problems.
+% The quotes occasionally causes problems.
+% \changes{v0.891}{2020/09/09}{Neutralized single quotes.}
% \begin{macrocode}
\LWR@replacestrings{"}{&quot;}%
+ \LWR@replacestrings{'}{&apos;}%
+ \LWR@replacestrings{`}{&grave;}%
% \end{macrocode}
% MathJax allows expressions to be defined with \cs{newcommand}.
% These expressions would appear with |##| for each argument,
@@ -24232,9 +24351,7 @@ end -- not --version
% \begin{macrocode}
\begingroup%
\LWR@FBcancel%
- \fullexpandarg%
- \protect\StrSubstitute{\detokenize{#1}}%
- {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]%
+ \edef\LWR@strresult{\detokenize{#1}}%
\LWR@subHTMLsanitize%
\LWR@strresult%
\endgroup%
@@ -24251,8 +24368,9 @@ 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{\&}.}
+% ^^A \changes{v0.79}{2020/01/27}{Fix: \cs{\&}.}
% \changes{v0.89}{2020/08/08}{Fix: Nested \brand{MathJax} environments.}
+% ^^A *88*
% \begin{macrocode}
\edef\LWR@beginspaceleftbrace{begin \LWRleftbrace}
\edef\LWR@beginspaceleftbrace{\detokenize\expandafter{\LWR@beginspaceleftbrace}}
@@ -24271,18 +24389,17 @@ end -- not --version
% \begin{macrocode}
\begingroup%
\LWR@FBcancel%
- \fullexpandarg%
% \end{macrocode}
% The difference between this and \cs{LWR@HTMLsanitize} (without ``expand'')
% is the following \cs{expandafter}:
% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{#1}}%
- {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]%
+ \edef\LWR@strresult{\detokenize\expandafter{#1}}%
% \end{macrocode}
% The math expression may includes spaces between tokens,
% but \brand{MathJax} does not want a space between \cs{begin} or \cs{end}
% and the following brace.
% This space is removed here.
+% ^^A *88*
% \begin{macrocode}
\protect\StrSubstitute{\LWR@strresult}%
{\LWR@beginspaceleftbrace}{\LWR@beginleftbrace}[\LWR@strresult]%
@@ -24323,9 +24440,7 @@ end -- not --version
\newcommand*{\LWR@subcustomizedmathjax}[1]{%
\begingroup%
\LWR@FBcancel%
- \fullexpandarg%
- \protect\StrSubstitute{\detokenize{#1}}%
- {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]%
+ \edef\LWR@strresult{\detokenize{#1}}%
\LWR@subHTMLsanitize%
\xdef\LWR@customizedMathJax{%
\LWR@customizedMathJax%
@@ -27359,6 +27474,7 @@ end -- not --version
% \end{macrocode}
%
%
+%
% \DescribeLength{\VerbatimHTMLWidth} Width to use in \HTML\ |Verbatim| environment.
%
% This width is used when placing line numbers to the right.
@@ -27383,11 +27499,36 @@ end -- not --version
% \end{macrocode}
+% \begin{macro}{\verb}
+%
+% Patched to encapsulate the verbatim text inside span
+% with a class of \attribute{texttt}.
+%
+% \changes{v0.891}{2020/09/12}{\cs{verb} as \cs{texttt}.}
+% \begin{macrocode}
+\LetLtxMacro\LWR@orig@verb@egroup\verb@egroup
+
+\def\LWR@verb@egroup@endspan{%
+ \LWR@orig@verb@egroup%
+ \LWR@htmltag{/span}%
+ \endgroup%
+}
+
+\xpretocmd{\verb}
+ {%
+ \begingroup%
+ \LWR@htmltag{span class="texttt"}%
+ \let\verb@egroup\LWR@verb@egroup@endspan%
+ }
+ {}
+ {\LWR@patcherror{LaTeX}{verb}}
+% \end{macrocode}
+% \end{macro}
+
% \begin{macro}{\LWR@atbeginverbatim}
% \oarg{1: style}
-% \marg{2: negative \cs{baselineskip} \cs{vspace}}
-% \marg{3: class}
+% \marg{2: class}
%
% Encloses a verbatim environment with the given \CSS\ class.
%
@@ -27396,27 +27537,29 @@ end -- not --version
% \changes{v0.51}{2018/03/17}{Adds vertical offset.}
% \changes{v0.63}{2018/11/24}{Fix for \pkg{xeCJK}.}
% \begin{macrocode}
-\newcommand*{\LWR@atbeginverbatim}[3][]
+\newcommand*{\LWR@atbeginverbatim}[2][]
{%
% \end{macrocode}
-% Avoid excessive space between lines:
-% \begin{macrocode}
-\setlength{\parskip}{0ex}%
-% \end{macrocode}
% Stop generating \HTML\ paragraph tags:
% \begin{macrocode}
\LWR@stoppars%
% \end{macrocode}
+% Avoid excessive space between lines:
+% \changes{v0.891}{2020/09/12}{Fix for verbatim, \pkg{alltt} with lists}
+% \begin{macrocode}
+\setlength{\parskip}{0ex}%
+\setlength{\topsep}{0pt}%
+\setlength{\partopsep}{0pt}%
+% \end{macrocode}
% Create a new |pre| of the given class.
% The tags may temporarily be turned off for internal use, such
% as loading the \brand{MathJax} script.
% \begin{macrocode}
\ifbool{LWR@verbtags}{%
- \LWR@htmltag{pre class=\textquotedbl#3\textquotedbl%
+ \LWR@htmltag{pre class=\textquotedbl#2\textquotedbl%
\ifthenelse{\equal{#1}{}}{}{ style=\textquotedbl#1\textquotedbl}%
}%
- \LWR@orignewline% pre
- \leavevmode\unskip\LWR@print@vspace*{-#2\baselineskip}%
+ \par%
}{}%
% \end{macrocode}
% Use a mono-spaced font to preserve horizontal positioning.
@@ -27453,20 +27596,18 @@ end -- not --version
% \begin{macro}{\LWR@afterendverbatim}
-% \marg{negative \cs{baselineskip} \cs{vspace}}
%
% Finishes enclosing a verbatim environment.
% \changes{v0.54}{2018/04/07}{Added vspace argument.}
% \begin{macrocode}
-\newcommand*{\LWR@afterendverbatim}[1]{%
+\newcommand*{\LWR@afterendverbatim}{%
\endgroup%
\par%
% \end{macrocode}
% At the end of the environment, close the |pre|:
% \begin{macrocode}
\ifbool{LWR@verbtags}{%
- \LWR@print@vspace*{-#1\baselineskip}%
- \noindent\LWR@htmltag{/pre}\LWR@orignewline% pre
+ \noindent\LWR@htmltag{/pre}\par% pre
}{}%
% \end{macrocode}
% Resume regular paragraph handling:
@@ -27486,9 +27627,9 @@ end -- not --version
% \begin{macrocode}
\newcommand{\LWR@HTML@verbatim@input}[2]{%
\ifbool{LWR@verbtags}{\LWR@forcenewpage}{}%
- \LWR@atbeginverbatim{2.5}{Verbatim}%
+ \LWR@atbeginverbatim{Verbatim}%
\LWR@print@verbatim@input{#1}{#2}%
- \LWR@afterendverbatim{1.5}%
+ \LWR@afterendverbatim%
}
\LWR@formatted{verbatim@input}
@@ -27510,14 +27651,14 @@ end -- not --version
{}%
{%
\LWR@forcenewpage%
- \LWR@atbeginverbatim{2.5}{verbatim}%
+ \LWR@atbeginverbatim{verbatim}%
}%
}
\AfterEndEnvironment{verbatim}{%
\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
{}%
{%
- \LWR@afterendverbatim{1}%
+ \LWR@afterendverbatim%
}%
}
}
@@ -27536,7 +27677,7 @@ end -- not --version
% \begin{macrocode}
\newcommand*{\LWR@HTML@tabbing}{%
\LWR@forcenewpage%
- \LWR@atbeginverbatim{3}{tabbing}%
+ \LWR@atbeginverbatim{tabbing}%
\let\enskip\LWR@origenskip%
\let\quad\LWR@origquad%
\let\qquad\LWR@origqquad%
@@ -27549,7 +27690,7 @@ end -- not --version
\newcommand*{\LWR@HTML@endtabbing}{%
\LWR@print@endtabbing%
- \LWR@afterendverbatim{1}%
+ \LWR@afterendverbatim%
}
\LWR@formatted{tabbing}
@@ -27896,6 +28037,7 @@ end -- not --version
\LWR@nulllistfills%
}
% \end{macrocode}
+%
% \changes{v0.46}{2018/01/21}{Fix: Stack unnesting.}
% \begin{macrocode}
\newcommand*{\LWR@listend}{%
@@ -33843,18 +33985,18 @@ end -- not --version
%
% It may be renamed by redefining \cs{sidetocname}, and may contain paragraphs.
%
-% \CSS\ may be used to format the side\TOC:
+% Per \cref{tab:sidetoccss}, \CSS\ may be used to format the side\TOC.
%
-% \begin{docsidebar}[CSS related to side\TOC:]
-% \vspace*{-\baselineskip}
+% \begin{table}[h]
+% \caption{CSS related to the side\TOC}
+% \label{tab:sidetoccss}
% \begin{description}[parsep=0ex]
% \vspace*{-\baselineskip}
% \item [|div.sidetoccontainer|:] The entire side\TOC.
% \item [|div.sidetoctitle|:] The title.
% \item [|div.sidetoccontents|:] The table of contents.
% \end{description}
-% \vspace*{-\baselineskip}
-% \end{docsidebar}
+% \end{table}
% \begin{macrocode}
\end{warpHTML}
@@ -37798,17 +37940,31 @@ end -- not --version
\LWR@PreloadedPackage{graphicx}
% \end{macrocode}
+% \pkg{scalefnt} may have been preloaded by \pkg{babel}
+% \begin{macrocode}
+\LWR@PreloadedPackage{scalefnt}
+% \end{macrocode}
+
% \pkg{fontaxes} must be preloaded so that \pkg{lwarp} may patch it for \HTML.
% \begin{macrocode}
\LWR@PreloadedPackage{fontaxes}
% \end{macrocode}
-% \pkg{newpxmath}, etc. may be loaded before \pkg{lwarp}:
+% Various font packages which may be loaded before \pkg{lwarp}:
% \begin{macrocode}
+\LWR@PreloadedPackage{cmbright}
+\LWR@PreloadedPackage{fourier}
+\LWR@PreloadedPackage{kpfonts}
+\LWR@PreloadedPackage{kpfonts-otf}
+\LWR@PreloadedPackage{libertinust1math}
+\LWR@PreloadedPackage{pxfonts}
+\LWR@PreloadedPackage{txfonts}
+\LWR@PreloadedPackage{txgreeks}
\LWR@PreloadedPackage{newpxmath}
\LWR@PreloadedPackage{newtxmath}
\LWR@PreloadedPackage{newtxsf}
\LWR@PreloadedPackage{mathalpha}
+\LWR@PreloadedPackage{unicode-math}
% \end{macrocode}
% \pkg{nfssext-cfr} may be preloaded by \pkg{cfm-lm} or related font packages.
@@ -41117,9 +41273,12 @@ color:\LWR@origpound\LWR@tempcolor%
% {The MathJax v3 extension is used.\MessageBreak
% See the Lwarp manual for details}
\LWR@mathjaxwarn{unicode-math}
- {Not all characters are encoded correctly.\MessageBreak
+ {Do not use embedded Unicode characters.\MessageBreak
+ Not all characters are encoded correctly.\MessageBreak
+ \protect\left\space and \protect\right\space may not work.\MessageBreak
Some symbol fonts are not supported by MathJax,\MessageBreak
- and are only approximated}
+ and are only approximated.\MessageBreak
+ Latin characters may not be correct}
\LWR@mathjaxwarn{witharrows}
{Arrows can only point to the next line.\MessageBreak
Text is only placed on a single line}
@@ -42360,11 +42519,6 @@ color:\LWR@origpound\LWR@tempcolor%
% \changes{v0.42}{2017/10/27}{\pkg{algorithmicx}: If \progcode{FormatWP} add \cs{quad}s.}
% \changes{v0.44}{2017/11/16}{\pkg{algorithmicx}: Improved comment symbol.}
%
-% \codehtml
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
-
% \begin{macrocode}
\AtBeginEnvironment{algorithmic}{%
%
@@ -42397,10 +42551,6 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
}%
% \end{macrocode}
-% \begin{macrocode}
-\end{warpHTML}
-% \end{macrocode}
-
% \iffalse
%</algorithmicx>
% \fi
@@ -42433,21 +42583,30 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
% \begin{macrocode}
\AfterEndPreamble{
\LWR@traceinfo{Patching alltt.}
+
\AtBeginEnvironment{alltt}{%
\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
{}%
{%
\LWR@forcenewpage
- \LWR@atbeginverbatim{3}{alltt}%
+% \end{macrocode}
+% Vertical spacing changes if inside a list.
+% \begin{macrocode}
+ \LWR@atbeginverbatim{alltt}%
}%
}
+
\AfterEndEnvironment{alltt}{%
\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
{}%
{%
- \LWR@afterendverbatim{2}%
+% \end{macrocode}
+% Vertical spacing changes if inside a list.
+% \begin{macrocode}
+ \LWR@afterendverbatim%
}%
}
+
}
% \end{macrocode}
%
@@ -44689,6 +44848,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
{}
{\listxadd\blx@anchors{\the\c@refsection @\abx@field@entrykey}%
\hypertarget{cite.\the\c@refsection @\abx@field@entrykey}{}}}
+
\protected\def\blx@imc@bibhyperref{%
\@ifnextchar[%]
{\blx@bibhyperref}
@@ -44725,7 +44885,134 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
}
\let\blx@imc@ifhyperref\@firstoftwo
-}
+% \end{macrocode}
+%
+%
+% The following patches are for back page references.
+%
+% \changes{v0.891}{2020/09/05}{\pkg{biblatex}: Fixed: Back page references.}
+% \begin{macrocode}
+\DeclareListFormat{pageref}{%
+ \ifnumless{\abx@pagerefstyle}{0}
+ {\usebibmacro{list:plain}%
+ \ifhyperref
+ {%
+% \hyperlink{page.#1}{#1}%
+ \ref{\BaseJobname-autopage-#1}% lwarp
+ }
+ {#1}}
+ {\ifnumequal{\value{listcount}}{1}
+ {\usebibmacro{pageref:init}}
+ {}%
+ \usebibmacro{pageref:comp}{#1}%
+ \ifnumequal{\value{listcount}}{\value{liststop}}
+ {\usebibmacro{pageref:dump}}
+ {}}}
+
+\renewbibmacro*{pageref:comp}[1]{%
+ \numdef\abx@range@prev{\abx@range@prev+1}%
+ \ifinteger{#1}
+ {\def\abx@range@num{#1}%
+ \def\abx@range@this{1}%
+ \ifnumequal{\abx@range@this}{\abx@range@last}
+ {}
+ {\def\abx@range@prev{-1}}}
+ {\ifrmnum{#1}
+ {\numdef\abx@range@num{\rmntonum{#1}}%
+ \def\abx@range@this{2}%
+ \ifnumequal{\abx@range@this}{\abx@range@last}
+ {}
+ {\def\abx@range@prev{-1}}}
+ {\undef\abx@range@num
+ \def\abx@range@this{0}%
+ \def\abx@range@prev{-1}}}%
+ \ifdef\abx@range@num
+ {\ifnumequal{\abx@range@num}{\abx@range@prev}
+ {\def\abx@range@hold{#1}%
+ \numdef\abx@range@diff{\abx@range@diff+1}}
+ {\usebibmacro{pageref:dump}%
+ \ifnumgreater{\abx@range@last}{-1}
+ {\printdelim{multilistdelim}}
+ {}%
+ \ifhyperref
+% {\hyperlink{page.#1}{#1}}
+ {\ref{\BaseJobname-autopage-#1}}% lwarp
+ {#1}}%
+ \edef\abx@range@prev{\abx@range@num}}
+ {\usebibmacro{pageref:dump}%
+ \ifnumgreater{\abx@range@last}{-1}
+ {\printdelim{multilistdelim}}
+ {}%
+ \ifhyperref
+% {\hyperlink{page.#1}{#1}}
+ {\ref{\BaseJobname-autopage-#1}}% lwarp
+ {#1}%
+ \def\abx@range@prev{-1}}%
+ \edef\abx@range@last{\abx@range@this}}
+
+\renewbibmacro*{pageref:dump}{%
+ \ifnumgreater{\abx@range@diff}{0}
+ {\ifcase\abx@pagerefstyle\relax % two
+ \bibrangedash
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\abx@range@hold}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\abx@range@hold}%
+ \or % three
+ \ifnumless{\abx@range@diff}{2}
+ {\printdelim{multilistdelim}}
+ {\bibrangedash}%
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\abx@range@hold}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\abx@range@hold}%
+ \or % two+
+ \ifnumless{\abx@range@diff}{2}
+ {\sqspace
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\bibstring{sequens}}}
+ {\bibrangedash
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\abx@range@hold}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\abx@range@hold}}%
+ \or % three+
+ \ifnumless{\abx@range@diff}{2}
+ {\sqspace
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\bibstring{sequens}}}
+ {\ifnumless{\abx@range@diff}{3}
+ {\sqspace
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\bibstring{sequentes}}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\bibstring{sequentes}}}
+ {\bibrangedash
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\abx@range@hold}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\abx@range@hold}}}%
+ \else % all+
+ \ifnumless{\abx@range@diff}{2}
+ {\sqspace
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\bibstring{sequens}}}
+ {\sqspace
+ \ifhyperref
+% {\hyperlink{page.\abx@range@hold}{\bibstring{sequentes}}}
+ {\ref{\BaseJobname-autopage-\abx@range@hold}}% lwarp
+ {\bibstring{sequentes}}}%
+ \fi
+ \def\abx@range@diff{0}}
+ {}}
+
+}% \AfterPreamble
% \end{macrocode}
%
% \iffalse
@@ -44734,6 +45021,8 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
%
%
%
+%
+%
% \iffalse
%<*bibunits>
% \fi
@@ -45638,6 +45927,57 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
%
%
%
+% \iffalse
+%<*bussproofs>
+% \fi
+%
+% \part{lwarp-bussproofs.sty}
+%
+% \section{bussproofs}
+%
+% \credits{Samuel R. Buss}
+%
+% \DescribePackage{bussproofs}
+% \pkg{bussproofs} is used as-is for \HTML, and
+% emulated by \brand{MathJax}'s extension.
+%
+% If not using \brand{MathJax}, inline proofs with \cs{DisplayMath} must be placed
+% \trouble[\cs{DisplayProof}]{bussproofs=\pkg{bussproofs}}
+% inside a math expression.
+%
+% If using \brand{MathJax}, only the \env{prooftree} environment may be used,
+% not \cs{DisplayProof}.
+%
+% \changes{v0.891}{2020/09/20}{\pkg{bussproofs}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{bussproofs}% no date in file
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifbool{mathjax}{
+ \CustomizeMathJax{\require{bussproofs}}
+
+ \NewEnviron{LWR@HTML@prooftree}%
+ {\LWR@doequation{\BODY}{prooftree}}%
+ [\LWR@doendequation{prooftree}]
+ \LWR@formattedenv{prooftree}
+}{% SVG HTML
+ \BeforeBeginEnvironment{prooftree}{%
+ \begin{lateximage}[-bussproofs-~\PackageDiagramAltText]%
+ }
+ \AfterEndEnvironment{prooftree}{\end{lateximage}}
+}
+% \end{macrocode}
+%
+% \iffalse
+%</bussproofs>
+% \fi
+%
+%
+%
%
% \iffalse
%<*bxpapersize>
@@ -45927,21 +46267,20 @@ s%
% \end{noindmacro}
-% Redefined to look ahead for \cs{centering}, etc:
+% Appended to look ahead to the next token for \cs{centering}, etc:
% \changes{v0.84}{2020/04/20}{\pkg{caption}: Improved integration.}
-% ^^A Lwarp has to redefine to use \LWR@futurenonspacelet correctly.
+% \changes{v0.891}{2020/09/04}{\pkg{caption}: Improved integration.}
% \begin{macrocode}
\AtBeginDocument{
- \def\@xfloat#1[#2]{%
- \caption@ORI@xfloat{#1}[#2]%
- \caption@settype{#1}%
- \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment%
- }%
- \def\@xdblfloat#1[#2]{% required for token capture
- \caption@ORI@xfloat{#1}[#2]%
- \caption@settype{#1}%
- \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment%
- }%
+\xapptocmd{\@xfloat}
+ {\LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment}
+ {}
+ {\LWR@patcherror{caption}{@xfloat}}
+
+\xapptocmd{\@xdblfloat}
+ {\LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment}
+ {}
+ {\LWR@patcherror{caption}{@xdblfloat}}
}
% \end{macrocode}
@@ -46156,16 +46495,6 @@ s%
% \end{noindmacro}
%
%
-% Add non-breakable spaces:
-% \changes{v0.89}{2020/08/25}{\pkg{caption3}: Improved label seps.}
-% ^^A Debatable "improvements":
-% \begin{macrocode}
-\DeclareCaptionLabelSeparator{colon}{:~}
-\DeclareCaptionLabelSeparator{period}{.~}
-\DeclareCaptionLabelSeparator{space}{~}
-\DeclareCaptionLabelSeparator*{endash}{~\textendash~}
-\DeclareCaptionLabelSeparator{arabi}{\if@rl~\fi:~}
-% \end{macrocode}
%
% ^^A These are simplifications for HTML:
% \begin{macrocode}
@@ -48784,6 +49113,63 @@ name = \chemmacros_translate:n {scheme-name}
%
%
% \iffalse
+%<*cmbright>
+% \fi
+%
+% \part{lwarp-cmbright.sty}
+%
+% \section{cmbright}
+%
+% \credits{Walter Schmidt}
+%
+% \DescribePackage{cmbright}
+% \pkg{cmbright} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options,
+% \trouble[limitations]{cmbright=\pkg{cmbright}}
+% except \optn{slantedGreek} is honored, and \cs{mathbold} is available.
+%
+% The dedicated macros for upright Greek letters do work correctly.
+%
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.891}{2020/09/14}{\pkg{cmbright}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{cmbright}[2005/04/13]
+
+\LWR@infoprocessingmathjax{cmbright}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\begin{warpMathJax}
+
+\@ifpackagewith{cmbright}{slantedGreek}
+{
+ \LWR@mathjax@addgreek@u@it*{}{}
+}
+{}
+
+\LWR@mathjax@addgreek@u@up*{up}{}
+
+\CustomizeMathJax{\newcommand{\mathbold}[1]{\boldsymbol{#1}}}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</cmbright>
+% \fi
+%
+%
+%
+%
+% \iffalse
%<*cmdtrack>
% \fi
%
@@ -48834,6 +49220,7 @@ name = \chemmacros_translate:n {scheme-name}
% This may need to be undone for some fonts.
%
% \changes{v0.81}{2020/03/03}{\pkg{colonequals}: Added.}
+% \changes{v0.891}{2020/09/08}{\pkg{colonequals}: Uses Unicode and \cs{mathrel}.}
%
% \codehtml
%
@@ -48845,24 +49232,24 @@ name = \chemmacros_translate:n {scheme-name}
\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}}
+\CustomizeMathJax{\newcommand{\ratio}{\mathrel{\unicode{x2236}}}}
+\CustomizeMathJax{\newcommand{\coloncolon}{\mathrel{\unicode{x2237}}}}
+\CustomizeMathJax{\newcommand{\colonequals}{\mathrel{\unicode{x2236}\!=}}}
+\CustomizeMathJax{\newcommand{\coloncolonequals}{\mathrel{\unicode{x2237}\!=}}}
+\CustomizeMathJax{\newcommand{\equalscolon}{\mathrel{=\!\unicode{x2236}}}}
+\CustomizeMathJax{\newcommand{\equalscoloncolon}{\mathrel{=\!\unicode{x2237}}}}
+\CustomizeMathJax{\newcommand{\colonminus}{\mathrel{\unicode{x2236}-}}}
+\CustomizeMathJax{\newcommand{\coloncolonminus}{\mathrel{\unicode{x2237}-}}}
+\CustomizeMathJax{\newcommand{\minuscolon}{\mathrel{-\unicode{x2236}}}}
+\CustomizeMathJax{\newcommand{\minuscoloncolon}{\mathrel{-\unicode{x2237}}}}
+\CustomizeMathJax{\newcommand{\colonapprox}{\mathrel{\unicode{x2236}\!\approx}}}
+\CustomizeMathJax{\newcommand{\coloncolonapprox}{\mathrel{\unicode{x2237}\!\approx}}}
+\CustomizeMathJax{\newcommand{\approxcolon}{\mathrel{\approx\!\unicode{x2236}}}}
+\CustomizeMathJax{\newcommand{\approxcoloncolon}{\mathrel{\approx\!\unicode{x2237}}}}
+\CustomizeMathJax{\newcommand{\colonsim}{\mathrel{\unicode{x2236}\!\sim}}}
+\CustomizeMathJax{\newcommand{\coloncolonsim}{\mathrel{\unicode{x2237}\!\sim}}}
+\CustomizeMathJax{\newcommand{\simcolon}{\mathrel{\sim\!\unicode{x2236}}}}
+\CustomizeMathJax{\newcommand{\simcoloncolon}{\mathrel{\sim\!\unicode{x2237}}}}
\end{warpMathJax}
% \end{macrocode}
%
@@ -50139,12 +50526,13 @@ name = \chemmacros_translate:n {scheme-name}
% \codehtml
%
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
-
\LWR@ProvidesPackagePass{econometrics}% no date specified in the original
% \end{macrocode}
%
+%
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{econometrics}
@@ -50957,11 +51345,6 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
-% \codehtml
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
-
% \cs{newlist} \marg{name} \marg{type} \marg{maxdepth} \\
% \cs{renewlist} \marg{name} \marg{type} \marg{maxdepth}
@@ -50982,10 +51365,6 @@ name = \chemmacros_translate:n {scheme-name}
% \end{macrocode}
-% \begin{macrocode}
-\end{warpHTML}
-% \end{macrocode}
-
% \iffalse
%</enumitem>
% \fi
@@ -52087,24 +52466,24 @@ name = \chemmacros_translate:n {scheme-name}
% \begin{macrocode}
\let\LWRFB@UseVerbatim\UseVerbatim
\renewcommand*{\UseVerbatim}[1]{%
-\LWR@atbeginverbatim{3}{Verbatim}%
+\LWR@atbeginverbatim{Verbatim}%
\LWRFB@UseVerbatim{#1}%
-\LWR@afterendverbatim{.5}%
+\LWR@afterendverbatim%
}
\let\LWRFB@LUseVerbatim\LUseVerbatim
\renewcommand*{\LUseVerbatim}[1]{%
-\LWR@atbeginverbatim{3}{LVerbatim}%
+\LWR@atbeginverbatim{LVerbatim}%
\noindent%
\LWRFB@LUseVerbatim{#1}%
-\LWR@afterendverbatim{.5}%
+\LWR@afterendverbatim%
}
\def\@BUseVerbatim[#1]#2{%
-\LWR@atbeginverbatim{3}{BVerbatim}%
+\LWR@atbeginverbatim{BVerbatim}%
\LWRFB@UseVerbatim{#2}%
-\LWR@afterendverbatim{.5}%
+\LWR@afterendverbatim%
}
% \end{macrocode}
%
@@ -52394,11 +52773,10 @@ name = \chemmacros_translate:n {scheme-name}
% \end{macrocode}
%
% Adds \HTML\ formatting:
+% \changes{v0.891}{2020/09/12}{\pkg{fancyvrb}: Fix: \env{BVerbatim} with labels.}
% \begin{macrocode}
\def\FV@BUseVerbatim#1{%
- \LWR@atbeginverbatim{0}{verbatim}%
\FV@BVerbatimBegin#1\FV@BVerbatimEnd%
- \LWR@afterendverbatim{0}%
}
% \end{macrocode}
@@ -52430,14 +52808,14 @@ name = \chemmacros_translate:n {scheme-name}
\LWR@htmltagc{/div}\LWR@orignewline%
\fi
\fi
-\LWR@atbeginverbatim{0}{verbatim}%
+\LWR@atbeginverbatim{verbatim}%
% }%
}
\newcommand*{\LWR@fvendnone}{%
\LWR@traceinfo{fvendnone}%
% \hbox to\z@{
-\LWR@afterendverbatim{0}%
+\LWR@afterendverbatim%
\LWR@stoppars%
\ifx\FV@LabelPositionBottomLine\relax\else
\ifx\FV@LabelEnd\relax\else
@@ -52624,17 +53002,23 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \end{macrocode}
% \begin{environment}{BVerbatim}
+% \changes{v0.891}{2020/09/12}{\pkg{fancyvrb}: Fix: \env{BVerbatim} with labels.}
% \begin{macrocode}
-\AtBeginEnvironment{BVerbatim}
-{%
-\LWR@forcenewpage% instead of \preto
-\LWR@atbeginverbatim{0}{bverbatim}%
-}
-\AfterEndEnvironment{BVerbatim}
-{%
-\LWR@afterendverbatim{0}%
-}
+\xpretocmd{\FV@BeginVBox}
+ {%
+ \LWR@forcenewpage% instead of \preto
+ \LWR@atbeginverbatim{bverbatim}%
+ }
+ {}
+ {\LWR@patcherror{fancyvrb}{FV@BeginVBox}}
+
+\xapptocmd{\FV@EndVBox}
+ {%
+ \LWR@afterendverbatim%
+ }
+ {}
+ {\LWR@patcherror{fancyvrb}{FV@EndVBox}}
% \end{macrocode}
% \end{environment}
@@ -54657,6 +55041,112 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
%
%
% \iffalse
+%<*fourier>
+% \fi
+%
+% \part{lwarp-fourier.sty}
+%
+% \section{fourier}
+%
+% \credits{Michel Bovani}
+%
+% \DescribePackage{fourier}
+% \pkg{fourier} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation ignores all package options,
+% \trouble[limitations]{fourier=\pkg{fourier}}
+% except \optn{sloped} and \optn{upright} are honored for Greek characters,
+% but \brand{MathJax} cannot yet honor these for Latin characters.
+%
+% The dedicated macros for upright and italic Greek letters do work correctly.
+%
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.891}{2020/09/14}{\pkg{fourier}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{fourier}[2020/03/03]
+
+\LWR@infoprocessingmathjax{fourier}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
+
+\begin{warpMathJax}
+
+\@ifpackagewith{fourier}{sloped}
+ {
+ \LWR@mathjax@addgreek@l@up{other}{}
+ \LWR@mathjax@addgreek@u@it*{other}{}
+ }% sloped
+ {% not sloped
+ \@ifpackagewith{fourier}{upright}
+ {% upright option
+ \LWR@mathjax@addgreek@l@up{}{}
+ \LWR@mathjax@addgreek@u@up*{}{}
+ \LWR@mathjax@addgreek@l@it{other}{}
+ \LWR@mathjax@addgreek@u@it*{other}{}
+ }
+ {% neither sloped nor upright
+ \LWR@mathjax@addgreek@l@up{other}{}
+ \LWR@mathjax@addgreek@u@it*{other}{}
+ }
+ }
+
+\CustomizeMathJax{\newcommand{\othergreek}[1]{#1}}
+\CustomizeMathJax{\let\varvarrho\varrho}
+\CustomizeMathJax{\let\varvarpi\varpi}
+\CustomizeMathJax{\let\othervarvarpi\othervarpi}
+\CustomizeMathJax{\let\othervarvarrho\othervarrho}
+\CustomizeMathJax{\let\varpartialdiff\partial}
+
+\CustomizeMathJax{\let\llbracket[}% single only
+\CustomizeMathJax{\let\rrbracket]}% single only
+\CustomizeMathJax{\let\dblbrackleft[}% single only
+\CustomizeMathJax{\let\dblbrackright]}% single only
+\CustomizeMathJax{\let\VERT|}% single only
+
+\CustomizeMathJax{\newcommand{\parallelslant}{\mathrel{\unicode{x02AFD}}}}
+\CustomizeMathJax{\newcommand{\thething}{\mathord{\unicode{x1F60E}}}}
+\CustomizeMathJax{\newcommand{\nparallelslant}{%
+ \mathrel{\LWRoverlaysymbols{-}{\unicode{x02AFD}}}%
+}}
+\CustomizeMathJax{\newcommand{\xswordsup}{\mathord{\unicode{x2694}}}}
+\CustomizeMathJax{\newcommand{\xswordsdown}{\mathord{\unicode{x2694}}}}% up
+\CustomizeMathJax{\newcommand{\notowns}{\mathrel{\unicode{x220C}}}}
+
+\CustomizeMathJax{\newcommand{\iintop}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\iiintop}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\oiint}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\let\oiintop\oiint}
+\CustomizeMathJax{\newcommand{\oiiint}{\mathop{\unicode{x2230}}\limits}}
+\CustomizeMathJax{\let\oiiintop\oiiint}
+\CustomizeMathJax{\newcommand{\slashint}{\mathop{\unicode{x2A0D}}\limits}}
+\CustomizeMathJax{\let\slashintop\slashint}
+
+\CustomizeMathJax{\let\overgroup\overparen}
+\CustomizeMathJax{\let\wideparen\overparen}
+\CustomizeMathJax{\let\widearc\overparen}
+\CustomizeMathJax{\let\wideOarc\overrightarrow}
+\CustomizeMathJax{\newcommand{\widering}[1]{\stackrel{\unicode{x2218}}{\overgroup{#1}}}}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</fourier>
+% \fi
+%
+%
+%
+%
+% \iffalse
%<*framed>
% \fi
@@ -56968,21 +57458,267 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \ProvidesPackage{lwarp-#1-#2}% not allowed
\PackageInfo{lwarp}{%
Using the lwarp HTML version of package `hyperref',\MessageBreak
-and discarding options.\MessageBreak
+and discarding options except backref, pagebackref.\MessageBreak
(Not using \protect\ProvidesPackage, so that other packages\MessageBreak
do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
+% \end{macrocode}
+%
+%
+% \changes{v0.891}{2020/09/05}{\pkg{hyperref}: Added \optn{backref}, \optn{pagebackref}.}
+% \begin{macrocode}
+\SetupKeyvalOptions{family=LWR@hyperref,prefix=LWR@hyperref@}
+
+\newcommand{\hypersetup}[1]{\setkeys{LWR@hyperref}{#1}}
+
+\define@key{LWR@hyperref}{a4paper}[]{}
+\define@key{LWR@hyperref}{a5paper}[]{}
+\define@key{LWR@hyperref}{b5paper}[]{}
+\define@key{LWR@hyperref}{letterpaper}[]{}
+\define@key{LWR@hyperref}{legalpaper}[]{}
+\define@key{LWR@hyperref}{executivepaper}[]{}
+\define@key{LWR@hyperref}{implicit}[]{}
+\define@key{LWR@hyperref}{draft}[]{}
+\define@key{LWR@hyperref}{final}[]{}
+\define@key{LWR@hyperref}{setpagesize}[]{}
+\define@key{LWR@hyperref}{debug}[]{}
+\define@key{LWR@hyperref}{linktocpage}[]{}
+\define@key{LWR@hyperref}{linktoc}[]{}
+\define@key{LWR@hyperref}{extension}[]{}
+\define@key{LWR@hyperref}{verbose}[]{}
+\define@key{LWR@hyperref}{typexml}[]{}
+\define@key{LWR@hyperref}{raiselinks}[]{}
+\define@key{LWR@hyperref}{breaklinks}[]{}
+\define@key{LWR@hyperref}{localanchorname}[]{}
+\define@key{LWR@hyperref}{pageanchor}[]{}
+\define@key{LWR@hyperref}{plainpages}[]{}
+\define@key{LWR@hyperref}{naturalnames}[]{}
+\define@key{LWR@hyperref}{hypertexnames}[]{}
+\define@key{LWR@hyperref}{nesting}[]{}
+\define@key{LWR@hyperref}{destlabel}[]{}
+\define@key{LWR@hyperref}{unicode}[]{}
+\define@key{LWR@hyperref}{pdfencoding}[]{}
+\define@key{LWR@hyperref}{psdextra}[]{}
+\define@key{LWR@hyperref}{pdfversion}[]{}
+\define@key{LWR@hyperref}{dvipdfmx-outline-open}[]{}
+\define@key{LWR@hyperref}{driverfallback}[]{}
+\define@key{LWR@hyperref}{customdriver}[]{}
+\define@key{LWR@hyperref}{hyperfigures}[]{}
+\define@key{LWR@hyperref}{hyperfootnotes}[]{}
+\define@key{LWR@hyperref}{hyperindex}[]{}
+\define@key{LWR@hyperref}{encap}[]{}
+\define@key{LWR@hyperref}{colorlinks}[]{}
+\define@key{LWR@hyperref}{ocgcolorlinks}[]{}
+\define@key{LWR@hyperref}{frenchlinks}[]{}
+\define@key{LWR@hyperref}{bookmarks}[]{}
+\define@key{LWR@hyperref}{bookmarksopen}[]{}
+\define@key{LWR@hyperref}{bookmarksdepth}[]{}
+\define@key{LWR@hyperref}{bookmarksopenlevel}[]{}
+\define@key{LWR@hyperref}{bookmarkstype}[]{}
+\define@key{LWR@hyperref}{bookmarksnumbered}[]{}
+\define@key{LWR@hyperref}{CJKbookmarks}[]{}
+\define@key{LWR@hyperref}{link}[]{}
+\define@key{LWR@hyperref}{anchor}[]{}
+\define@key{LWR@hyperref}{cite}[]{}
+\define@key{LWR@hyperref}{file}[]{}
+\define@key{LWR@hyperref}{url}[]{}
+\define@key{LWR@hyperref}{menu}[]{}
+\define@key{LWR@hyperref}{run}[]{}
+\define@key{LWR@hyperref}{linkbordercolor}[]{}
+\define@key{LWR@hyperref}{anchorbordercolor}[]{}
+\define@key{LWR@hyperref}{citebordercolor}[]{}
+\define@key{LWR@hyperref}{filebordercolor}[]{}
+\define@key{LWR@hyperref}{urlbordercolor}[]{}
+\define@key{LWR@hyperref}{menubordercolor}[]{}
+\define@key{LWR@hyperref}{runbordercolor}[]{}
+\define@key{LWR@hyperref}{pagecolor}[]{}
+\define@key{LWR@hyperref}{baseurl}[]{}
+\define@key{LWR@hyperref}{linkfileprefix}[]{}
+\define@key{LWR@hyperref}{pdfpagetransition}[]{}
+\define@key{LWR@hyperref}{pdfpageduration}[]{}
+\define@key{LWR@hyperref}{pdfpagehidden}[]{}
+\define@key{LWR@hyperref}{pagebordercolor}[]{}
+\define@key{LWR@hyperref}{allbordercolors}[]{}
+\define@key{LWR@hyperref}{pdfhighlight}[]{}
+\define@key{LWR@hyperref}{pdfborder}[]{}
+\define@key{LWR@hyperref}{pdfborderstyle}[]{}
+\define@key{LWR@hyperref}{pdfprintpagerange}[]{}
+\define@key{LWR@hyperref}{pdfusetitle}[]{}
+\define@key{LWR@hyperref}{pdftitle}[]{}
+\define@key{LWR@hyperref}{pdfauthor}[]{}
+\define@key{LWR@hyperref}{pdfproducer}[]{}
+\define@key{LWR@hyperref}{pdfcreator}[]{}
+\define@key{LWR@hyperref}{addtopdfcreator}[]{}
+\define@key{LWR@hyperref}{pdfcreationdate}[]{}
+\define@key{LWR@hyperref}{pdfmoddate}[]{}
+\define@key{LWR@hyperref}{pdfsubject}[]{}
+\define@key{LWR@hyperref}{pdfkeywords}[]{}
+\define@key{LWR@hyperref}{pdftrapped}[]{}
+\define@key{LWR@hyperref}{pdfinfo}[]{}
+\define@key{LWR@hyperref}{pdfview}[]{}
+\define@key{LWR@hyperref}{pdflinkmargin}[]{}
+\define@key{LWR@hyperref}{pdfstartpage}[]{}
+\define@key{LWR@hyperref}{pdfstartview}[]{}
+\define@key{LWR@hyperref}{pdfremotestartview}[]{}
+\define@key{LWR@hyperref}{pdfpagescrop}[]{}
+\define@key{LWR@hyperref}{pdftoolbar}[]{}
+\define@key{LWR@hyperref}{pdfmenubar}[]{}
+\define@key{LWR@hyperref}{pdfwindowui}[]{}
+\define@key{LWR@hyperref}{pdffitwindow}[]{}
+\define@key{LWR@hyperref}{pdfcenterwindow}[]{}
+\define@key{LWR@hyperref}{pdfdisplaydoctitle}[]{}
+\define@key{LWR@hyperref}{pdfa}[]{}
+\define@key{LWR@hyperref}{pdfnewwindow}[]{}
+\define@key{LWR@hyperref}{pdflang}[]{}
+\define@key{LWR@hyperref}{pdfpagelabels}[]{}
+\define@key{LWR@hyperref}{pdfescapeform}[]{}
+\define@key{LWR@hyperref}{english}[]{}
+\define@key{LWR@hyperref}{UKenglish}[]{}
+\define@key{LWR@hyperref}{british}[]{}
+\define@key{LWR@hyperref}{USenglish}[]{}
+\define@key{LWR@hyperref}{american}[]{}
+\define@key{LWR@hyperref}{german}[]{}
+\define@key{LWR@hyperref}{austrian}[]{}
+\define@key{LWR@hyperref}{ngerman}[]{}
+\define@key{LWR@hyperref}{naustrian}[]{}
+\define@key{LWR@hyperref}{russian}[]{}
+\define@key{LWR@hyperref}{brazil}[]{}
+\define@key{LWR@hyperref}{brazilian}[]{}
+\define@key{LWR@hyperref}{portuguese}[]{}
+\define@key{LWR@hyperref}{spanish}[]{}
+\define@key{LWR@hyperref}{catalan}[]{}
+\define@key{LWR@hyperref}{afrikaans}[]{}
+\define@key{LWR@hyperref}{french}[]{}
+\define@key{LWR@hyperref}{frenchb}[]{}
+\define@key{LWR@hyperref}{francais}[]{}
+\define@key{LWR@hyperref}{acadian}[]{}
+\define@key{LWR@hyperref}{canadien}[]{}
+\define@key{LWR@hyperref}{italian}[]{}
+\define@key{LWR@hyperref}{magyar}[]{}
+\define@key{LWR@hyperref}{hungarian}[]{}
+\define@key{LWR@hyperref}{greek}[]{}
+\define@key{LWR@hyperref}{dutch}[]{}
+\define@key{LWR@hyperref}{tex4ht}[]{}
+\define@key{LWR@hyperref}{pdftex}[]{}
+\define@key{LWR@hyperref}{luatex}[]{}
+\define@key{LWR@hyperref}{nativepdf}[]{}
+\define@key{LWR@hyperref}{dvipdfm}[]{}
+\define@key{LWR@hyperref}{dvipdfmx}[]{}
+\define@key{LWR@hyperref}{xetex}[]{}
+\define@key{LWR@hyperref}{pdfmark}[]{}
+\define@key{LWR@hyperref}{dvips}[]{}
+\define@key{LWR@hyperref}{hypertex}[]{}
+\define@key{LWR@hyperref}{vtex}[]{}
+\define@key{LWR@hyperref}{vtexpdfmark}[]{}
+\define@key{LWR@hyperref}{dviwindo}[]{}
+\define@key{LWR@hyperref}{dvipsone}[]{}
+\define@key{LWR@hyperref}{textures}[]{}
+\define@key{LWR@hyperref}{latex2html}[]{}
+\define@key{LWR@hyperref}{ps2pdf}[]{}
+\define@key{LWR@hyperref}{vietnamese}[]{}
+\define@key{LWR@hyperref}{vietnam}[]{}
+\define@key{LWR@hyperref}{arabic}[]{}
+\define@key{LWR@hyperref}{hidelinks}[]{}
+\define@key{LWR@hyperref}{draft}[]{}
+\define@key{LWR@hyperref}{nolinks}[]{}
+\define@key{LWR@hyperref}{final}[]{}
+\define@key{LWR@hyperref}{pdfa}[]{}
+\define@key{LWR@hyperref}{pdfversion}[]{}
+\define@key{LWR@hyperref}{typexml}[]{}
+\define@key{LWR@hyperref}{tex4ht}[]{}
+\define@key{LWR@hyperref}{pdftex}[]{}
+\define@key{LWR@hyperref}{nativepdf}[]{}
+\define@key{LWR@hyperref}{dvipdfm}[]{}
+\define@key{LWR@hyperref}{dvipdfmx}[]{}
+\define@key{LWR@hyperref}{dvipdfmx-outline-open}[]{}
+\define@key{LWR@hyperref}{pdfmark}[]{}
+\define@key{LWR@hyperref}{dvips}[]{}
+\define@key{LWR@hyperref}{hypertex}[]{}
+\define@key{LWR@hyperref}{vtex}[]{}
+\define@key{LWR@hyperref}{vtexpdfmark}[]{}
+\define@key{LWR@hyperref}{dviwindo}[]{}
+\define@key{LWR@hyperref}{dvipsone}[]{}
+\define@key{LWR@hyperref}{textures}[]{}
+\define@key{LWR@hyperref}{latex2html}[]{}
+\define@key{LWR@hyperref}{ps2pdf}[]{}
+\define@key{LWR@hyperref}{xetex}[]{}
+\define@key{LWR@hyperref}{driverfallback}[]{}
+\define@key{LWR@hyperref}{customdriver}[]{}
+\define@key{LWR@hyperref}{pdfversion}[]{}
+\define@key{LWR@hyperref}{bookmarks}[]{}
+\define@key{LWR@hyperref}{ocgcolorlinks}[]{}
+\define@key{LWR@hyperref}{colorlinks}[]{}
+\define@key{LWR@hyperref}{frenchlinks}[]{}
+\define@key{LWR@hyperref}{backref}[]{}
+\define@key{LWR@hyperref}{pagebackref}[]{}
+\define@key{LWR@hyperref}{destlabel}[]{}
+\define@key{LWR@hyperref}{pdfpagescrop}[]{}
+\define@key{LWR@hyperref}{pdfpagemode}[]{}
+\define@key{LWR@hyperref}{pdfnonfullscreenpagemode}[]{}
+\define@key{LWR@hyperref}{pdfdirection}[]{}
+\define@key{LWR@hyperref}{pdfviewarea}[]{}
+\define@key{LWR@hyperref}{pdfviewclip}[]{}
+\define@key{LWR@hyperref}{pdfprintarea}[]{}
+\define@key{LWR@hyperref}{pdfprintclip}[]{}
+\define@key{LWR@hyperref}{pdfprintscaling}[]{}
+\define@key{LWR@hyperref}{pdfduplex}[]{}
+\define@key{LWR@hyperref}{pdfpicktraybypdfsize}[]{}
+\define@key{LWR@hyperref}{pdfprintpagerange}[]{}
+\define@key{LWR@hyperref}{pdfnumcopies}[]{}
+\define@key{LWR@hyperref}{pdfstartview}[]{}
+\define@key{LWR@hyperref}{pdfstartpage}[]{}
+\define@key{LWR@hyperref}{pdftoolbar}[]{}
+\define@key{LWR@hyperref}{pdfmenubar}[]{}
+\define@key{LWR@hyperref}{pdfwindowui}[]{}
+\define@key{LWR@hyperref}{pdffitwindow}[]{}
+\define@key{LWR@hyperref}{pdfcenterwindow}[]{}
+\define@key{LWR@hyperref}{pdfdisplaydoctitle}[]{}
+\define@key{LWR@hyperref}{pdfpagelayout}[]{}
+\define@key{LWR@hyperref}{pdflang}[]{}
+\define@key{LWR@hyperref}{baseurl}[]{}
+\define@key{LWR@hyperref}{pdfusetitle}[]{}
+\define@key{LWR@hyperref}{pdfpagelabels}[]{}
+\define@key{LWR@hyperref}{hyperfootnotes}[]{}
+\define@key{LWR@hyperref}{hyperfigures}[]{}
+\define@key{LWR@hyperref}{hyperindex}[]{}
+\define@key{LWR@hyperref}{encap}[]{}
+\define@key{LWR@hyperref}{linkcolor}[]{}
+\define@key{LWR@hyperref}{anchorcolor}[]{}
+\define@key{LWR@hyperref}{citecolor}[]{}
+\define@key{LWR@hyperref}{filecolor}[]{}
+\define@key{LWR@hyperref}{urlcolor}[]{}
+\define@key{LWR@hyperref}{menucolor}[]{}
+\define@key{LWR@hyperref}{runcolor}[]{}
+\define@key{LWR@hyperref}{allcolors}[]{}
+
+\DeclareStringOption[false]{backref}[section]
+
+\DeclareBoolOption{pagebackref}
+
+\DeclareDefaultOption{}
-\DeclareOption*{}
+\ProcessKeyvalOptions*\relax
% \end{macrocode}
%
-% \changes{v0.68}{2019/02/28}{\pkg{hyperref}: Fix for options with braces.}
+% Maybe load \pkg{backref}:
% \begin{macrocode}
-% \ProcessOptions\relax
-\let\ds@\@empty% from the original \ProcessOptions
-\edef\@curroptions{}% lwarp modification to \ProcessOptions
-\@process@ptions\relax% from the original \ProcessOptions
-% \end{macrocode}
+\ifdefstring{\LWR@hyperref@backref}{section}
+ {\RequirePackage{backref}}
+ {}
+
+\ifdefstring{\LWR@hyperref@backref}{slide}
+ {\RequirePackage{backref}}
+ {}
+
+\ifdefstring{\LWR@hyperref@backref}{page}
+ {\RequirePackage{backref}}
+ {}
+\ifLWR@hyperref@pagebackref
+ \RequirePackage{backref}
+\fi
+% \end{macrocode}
+%
+%
% \changes{v0.86}{2020/05/07}{\pkg{hyperref}: Adjusted emulation.}
% \begin{macrocode}
\LetLtxMacro\href\LWR@href
@@ -56993,7 +57729,6 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \begin{macrocode}
-\newcommand*{\hypersetup}[1]{}
\newcommand*{\hyperbaseurl}[1]{}
% \end{macrocode}
@@ -57238,7 +57973,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \begin{noindmacro}{\texorpdfstring} \marg{\TeX{}string} \marg{PDFstring}
%
% \changes{v0.48}{2018/02/02}{\pkg{hyperref}: \cs{texorpdfstring} now uses the \TeX\ string.}
+% \changes{v0.891}{2020/09/21}{\pkg{hyperref}: Fixed \cs{texorpdfstring} with \pkg{babel-french}.}
% \begin{macrocode}
+\let\texorpdfstring\relax
\newcommand{\texorpdfstring}[2]{#1}
% \end{macrocode}
% \end{noindmacro}
@@ -58661,6 +59398,213 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
%
+% \iffalse
+%<*kpfonts>
+% \fi
+%
+% \part{lwarp-kpfonts.sty}
+%
+% \section{kpfonts}
+%
+% \credits{Christophe Caignaert}
+%
+% \DescribePackage{kpfonts}
+% \pkg{kpfonts} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation honors the options
+% \trouble[limitations]{kpfonts=\pkg{kpfonts}}
+% \optn{uprightRoman} for \cs{D} only,
+% \optn{classicReIm},
+% \optn{frenchstyle} for Greek only,
+% \optn{upright} for Greek only,
+% \optn{uprightgreeks},
+% \optn{slantedGreeks},
+% and \optn{mathcalasscript}.
+%
+% The dedicated macros for Greek work correctly.
+%
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.891}{2020/09/19}{\pkg{kpfonts}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{kpfonts}[2010/08/20]
+
+\LWR@infoprocessingmathjax{kpfonts}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-newpxtxmath}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\begin{warpMathJax}
+
+\ifkp@calasscr
+ \CustomizeMathJax{\let\LWRorigmathscr\mathscr}
+ \CustomizeMathJax{\let\LWRorigmathcal\mathcal}
+ \CustomizeMathJax{\let\mathscr\LWRorigmathcal}
+ \CustomizeMathJax{\let\mathcal\LWRorigmathscr}
+\fi
+
+\ifkp@upgrk % lowercase
+ \LWR@mathjax@addgreek@l@up{}{}
+ \LWR@mathjax@addgreek@l@it{other}{}
+\else
+ \LWR@mathjax@addgreek@l@up{other}{}
+\fi
+
+\ifkp@slGrk
+ \LWR@mathjax@addgreek@u@it*{}{}
+ \LWR@mathjax@addgreek@u@up*{other}{}
+ \LWR@mathjax@addgreek@u@up*{var}{}
+\else
+ \LWR@mathjax@addgreek@u@it*{other}{}
+ \LWR@mathjax@addgreek@u@it*{var}{}
+\fi
+
+\LWR@mathjax@addgreek@u@up*{}{up}
+\LWR@mathjax@addgreek@l@up{}{up}
+
+\LWR@mathjax@addgreek@u@it*{}{sl}
+\LWR@mathjax@addgreek@l@it{}{sl}
+
+\CustomizeMathJax{\newcommand{\partialsl}{\mathord{\unicode{x1D715}}}}
+\CustomizeMathJax{\let\partialup\uppartial}% not upright
+
+\ifkp@oldReIm
+\else
+ \CustomizeMathJax{\renewcommand{\Re}{\mathfrak{Re}}}
+ \CustomizeMathJax{\renewcommand{\Im}{\mathfrak{Im}}}
+\fi
+
+\ifkp@Dcommand
+ \ifkp@upRm%
+ \CustomizeMathJax{
+ \def\D#1{\mathclose{\,\mathrm{d}}#1}
+ }
+ \else
+ \CustomizeMathJax{
+ \def\D#1{\mathclose{\,\mathit{d}}#1}
+ }
+ \fi
+\fi
+
+\CustomizeMathJax{\let\pounds\mathsterling}
+\CustomizeMathJax{\let\kppounds\mathsterling}
+
+\CustomizeMathJax{\newcommand{\mathup}[1]{\mathrm{#1}}}% never sans
+\CustomizeMathJax{\let\mathupright\mathup}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</kpfonts>
+% \fi
+%
+%
+%
+% \iffalse
+%<*kpfonts-otf>
+% \fi
+%
+% \part{lwarp-kpfonts-otf.sty}
+%
+% \section{kpfonts-otf}
+%
+% \credits{Daniel Flipo}
+%
+% \DescribePackage{kpfonts-otf}
+% \pkg{kpfonts-otf} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation honors the options
+% \trouble[limitations]{kpfonts-otf=\pkg{kpfonts-otf}}
+% \optn{fancyReIm},
+% \optn{mathcal},
+% \optn{frenchstyle} for Greek only,
+% and \optn{mathcalasscript}.
+%
+% Also see the options for \pkg{unicode-math}, which is loaded by \pkg{kpfonts-otf}.
+%
+% The \pkg{unicode-math} dedicated macros for Greek work correctly.
+%
+% The \brand{MathJax} emulation does not change with the use of \cs{mathversion}.
+% \watchout[\cs{mathversion}]
+% Whatever emulation is established at the begin of the document will remain.
+%
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.891}{2020/09/20}{\pkg{kpfonts-otf}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{kpfonts-otf}[2020/06/20]
+
+\LWR@infoprocessingmathjax{kpfonts-otf}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-nonunicode}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\begin{warpMathJax}
+
+\ifkp@calasscr
+ \CustomizeMathJax{\let\mathscr\mathcal}
+\else
+ \CustomizeMathJax{\let\mathcal\mathscr}
+\fi
+
+\ifkp@frenchstyle
+ \LWR@mathjax@addgreek@l@up{}{}
+ \LWR@mathjax@addgreek@u@up*{}{}
+\fi
+
+\ifkp@oldReIm
+ \CustomizeMathJax{\renewcommand{\Re}{\mathfrak{Re}}}
+ \CustomizeMathJax{\renewcommand{\Im}{\mathfrak{Im}}}
+\else
+\fi
+
+\ifkp@Dcommand
+ \CustomizeMathJax{
+ \def\D#1{\mathclose{\,\mathrm{d}}#1}
+ }
+\fi
+
+\CustomizeMathJax{\let\varint\int}
+\CustomizeMathJax{\let\variint\iint}
+\CustomizeMathJax{\let\variiint\iiint}
+\CustomizeMathJax{\let\variiiint\iiiint}
+\CustomizeMathJax{\let\varidotsint\idotsint}
+
+\CustomizeMathJax{\newcommand{\varointctrclockwise}{\mathop{\unicode{x2939}\!\!\unicode{x0222E}}}}
+\CustomizeMathJax{\newcommand{\oiintclockwise}{\mathop{\unicode{x0222F}\!\!\unicode{x2938}}}}
+\CustomizeMathJax{\newcommand{\oiintctrclockwise}{\mathop{\unicode{x2939}\!\!\unicode{x0222F}}}}
+\CustomizeMathJax{\newcommand{\varoiintclockwise}{\mathop{\unicode{x0222F}\!\!\unicode{x2938}}}}
+\CustomizeMathJax{\newcommand{\varoiintctrclockwise}{\mathop{\unicode{x2939}\!\!\unicode{x0222F}}}}
+\CustomizeMathJax{\newcommand{\oiiintclockwise}{\mathop{\unicode{x02230}\!\!\unicode{x2938}}}}
+\CustomizeMathJax{\newcommand{\oiiintctrclockwise}{\mathop{\unicode{x2939}\!\!\unicode{x02230}}}}
+\CustomizeMathJax{\newcommand{\varoiiintclockwise}{\mathop{\unicode{x02230}\!\!\unicode{x2938}}}}
+\CustomizeMathJax{\newcommand{\varoiiintctrclockwise}{\mathop{\unicode{x2939}\!\!\unicode{x02230}}}}
+\CustomizeMathJax{\newcommand{\sqiint}{\mathop{\unicode{x2A16}\!\!\unicode{x2A16}}}}
+\CustomizeMathJax{\newcommand{\sqiiint}{\mathop{\unicode{x2A16}\!\!\unicode{x2A16}\!\!\unicode{x2A16}}}}
+
+\CustomizeMathJax{\let\widearc\overparen}
+\CustomizeMathJax{\let\widearcarrow\overrightarrow}
+\CustomizeMathJax{\let\overrightarc\overrightarrow}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</kpfonts-otf>
+% \fi
+%
+%
%
% \iffalse
%<*layaureo>
@@ -59053,6 +59997,371 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
%
+% \iffalse
+%<*libertinust1math>
+% \fi
+%
+% \part{lwarp-libertinust1math.sty}
+%
+% \section{libertinust1math}
+%
+% \credits{Michael Sharpe}
+%
+% \DescribePackage{libertinust1math}
+% \pkg{libertinust1math} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation honors
+% \optn{frenchmath} for Greek but not Latin characters,
+% and \optn{slantedGreek}, \optn{uprightGreek}, and \optn{ISO}
+% also adjust Greek characters.
+% \brand{MathJax} cannot yet honor options for adjusting Latin characters.
+%
+% The dedicated macros for upright and italic Greek letters do work correctly.
+% Some of the symbol font macros such as \cs{mathsfbf} work for Latin but not
+% for Greek letters.
+%
+% \SVG\ math should appear the same as the printed output.
+%
+% \changes{v0.891}{2020/09/18}{\pkg{libertinust1math}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{libertinust1math}[2020/06/10]
+
+\LWR@infoprocessingmathjax{libertinust1math}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\begin{warpMathJax}
+
+\iflibus@slantedG
+ \LWR@mathjax@addgreek@u@it*{}{}
+\else
+ \LWR@mathjax@addgreek@u@up*{}{}
+\fi
+
+\LWR@mathjax@addgreek@u@it*{}{it}
+\LWR@mathjax@addgreek@u@up*{up}{}
+\LWR@mathjax@addgreek@u@up*{}{up}
+
+\iflibus@frenchm
+ \LWR@mathjax@addgreek@l@up{}{}
+\else
+ \LWR@mathjax@addgreek@l@it{}{}
+\fi
+
+\LWR@mathjax@addgreek@l@it{}{it}
+\LWR@mathjax@addgreek@l@up{}{up}
+\LWR@mathjax@addgreek@l@up{up}{}
+
+\CustomizeMathJax{\let\uppartial\partial}% not upright
+
+\CustomizeMathJax{\newcommand{\mathsfbf}[1]{%
+ \mmlToken{mi}[mathvariant="bold-sans-serif"]{#1}% not greek
+}}% not sans
+\CustomizeMathJax{\newcommand{\mathsfbfit}[1]{%
+ \mmlToken{mi}[mathvariant="sans-serif-bold-italic"]{#1}% not greek
+}}%
+\CustomizeMathJax{\newcommand{\mathbfit}[1]{\boldsymbol{#1}}}
+\CustomizeMathJax{\newcommand{\mathsfit}[1]{%
+ \mmlToken{mi}[mathvariant="sans-serif-italic"]{#1}% not greek
+}}
+\CustomizeMathJax{\let\vectorsym\mathbfit}
+\CustomizeMathJax{\let\matrixsym\mathbfit}
+\CustomizeMathJax{\let\tensorsym\mathsfbfit}
+\CustomizeMathJax{\let\mathboldsans\mathsfbfit}
+\CustomizeMathJax{\let\mathbold\mathbfit}
+
+\CustomizeMathJax{\let\lBrack\lbrack}% not double
+\CustomizeMathJax{\let\dlb\lBrack}% not double
+\CustomizeMathJax{\let\rBrack\rbrack}% not double
+\CustomizeMathJax{\let\drb\rBrack}% not double
+
+\CustomizeMathJax{\let\Vvert\Vert}
+
+\CustomizeMathJax{\let\sqrtsign\sqrt}
+
+\CustomizeMathJax{\let\smallintsl\smallint}
+\CustomizeMathJax{\newcommand{\smalliintsl}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiintsl}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiiintsl}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\newcommand{\smallointsl}{\mathop{\unicode{x222E}}\limits}}
+\CustomizeMathJax{\newcommand{\smalloiintsl}{\mathop{\unicode{x222F}}\limits}}
+
+\CustomizeMathJax{\let\smallintup\smallint}
+\CustomizeMathJax{\newcommand{\smalliintup}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiintup}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiiintup}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\newcommand{\smallointup}{\mathop{\unicode{x222E}}\limits}}
+\CustomizeMathJax{\newcommand{\smalloiintup}{\mathop{\unicode{x222F}}\limits}}
+
+\CustomizeMathJax{\let\intslop\int}
+\CustomizeMathJax{\newcommand{\iintslop}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\iiintslop}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\iiiintslop}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\let\ointslop\oint}
+\CustomizeMathJax{\newcommand{\oiintslop}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\oiiintslop}{\mathop{\unicode{x2230}}\limits}}
+
+\CustomizeMathJax{\let\intupop\int}
+\CustomizeMathJax{\newcommand{\iintupop}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\iiintupop}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\iiiintupop}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\let\ointupop\oint}
+\CustomizeMathJax{\newcommand{\oiintupop}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\oiiintupop}{\mathop{\unicode{x2230}}\limits}}
+
+\CustomizeMathJax{\newcommand{\smalliint}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiint}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiiint}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\newcommand{\smalloint}{\mathop{\unicode{x222E}}\limits}}
+\CustomizeMathJax{\newcommand{\smalloiint}{\mathop{\unicode{x222F}}\limits}}
+
+\CustomizeMathJax{\let\intop\int}
+\CustomizeMathJax{\newcommand{\iintop}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\iiintop}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\iiiintop}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\let\ointop\oint}
+\CustomizeMathJax{\newcommand{\oiintop}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\oiiintop}{\mathop{\unicode{x2230}}\limits}}
+
+\CustomizeMathJax{\newcommand{\oiint}{\mathop{\unicode{x222F}}\limits}}
+
+\CustomizeMathJax{\newcommand{\bigcupdot}{\mathop{\unicode{x2A03}}}}
+\CustomizeMathJax{\newcommand{\bigsqcap}{\mathop{\unicode{x2A05}}}}
+\CustomizeMathJax{\newcommand{\xsol}{\mathop{\unicode{x29F8}}}}
+\CustomizeMathJax{\newcommand{\xbsol}{\mathop{\unicode{x29F9}}}}
+\CustomizeMathJax{\let\prodop\prod}
+\CustomizeMathJax{\let\coprodop\coprod}
+\CustomizeMathJax{\let\sumop\sum}
+\CustomizeMathJax{\let\bigwedgeop\bigwedge}
+\CustomizeMathJax{\let\bigveeop\bigvee}
+\CustomizeMathJax{\let\bigcapop\bigcap}
+\CustomizeMathJax{\let\bigcupop\bigcup}
+\CustomizeMathJax{\let\xsolop\xsol}
+\CustomizeMathJax{\let\xbsolop\xbsol}
+\CustomizeMathJax{\let\bigodotop\bigodot}
+\CustomizeMathJax{\let\bigoplusop\bigoplus}
+\CustomizeMathJax{\let\bigotimesop\bigotimes}
+\CustomizeMathJax{\let\bigcupdotop\bigcupdot}
+\CustomizeMathJax{\let\biguplusop\biguplus}
+\CustomizeMathJax{\let\bigsqcapop\bigsqcap}
+\CustomizeMathJax{\let\bigsqcupop\bigsqcup}
+
+\CustomizeMathJax{\newcommand{\ovhook}[1]{\mathord{#1\unicode{x00309}}}}
+\CustomizeMathJax{\newcommand{\candra}[1]{\mathord{#1\unicode{x00310}}}}
+\CustomizeMathJax{\newcommand{\oturnedcomma}[1]{\mathord{#1\unicode{x00312}}}}
+\CustomizeMathJax{\newcommand{\ocommatopright}[1]{\mathord{#1\unicode{x00315}}}}
+\CustomizeMathJax{\newcommand{\droang}[1]{\mathord{#1\unicode{x0031A}}}}
+\CustomizeMathJax{\newcommand{\leftharpoonaccent}[1]{\mathord{#1\unicode{x020D0}}}}
+\CustomizeMathJax{\newcommand{\rightharpoonaccent}[1]{\mathord{#1\unicode{x020D1}}}}
+\CustomizeMathJax{\newcommand{\leftarrowaccent}[1]{\mathord{#1\unicode{x020D0}}}}
+\CustomizeMathJax{\let\rightarrowaccent\vec}
+
+\CustomizeMathJax{\newcommand{\leftrightarrowaccent}[1]{\mathord{#1\unicode{x020E1}}}}
+\CustomizeMathJax{\newcommand{\annuity}[1]{\mathord{#1\unicode{x020E7}}}}
+\CustomizeMathJax{\newcommand{\widebridgeabove}[1]{\mathord{#1\unicode{x020E9}}}}
+\CustomizeMathJax{\newcommand{\asteraccent}[1]{\mathord{#1\unicode{x020F0}}}}
+
+% neutralized:
+\CustomizeMathJax{\newcommand{\braceld}{}}
+\CustomizeMathJax{\newcommand{\bracerd}{}}
+\CustomizeMathJax{\newcommand{\bracelu}{}}
+\CustomizeMathJax{\newcommand{\braceru}{}}
+\CustomizeMathJax{\newcommand{\braceex}{}}
+\CustomizeMathJax{\newcommand{\bracemu}{}}
+\CustomizeMathJax{\newcommand{\bracemd}{}}
+\CustomizeMathJax{\newcommand{\parenld}{}}
+\CustomizeMathJax{\newcommand{\parenrd}{}}
+\CustomizeMathJax{\newcommand{\parenlu}{}}
+\CustomizeMathJax{\newcommand{\parenru}{}}
+\CustomizeMathJax{\newcommand{\bracketld}{}}
+\CustomizeMathJax{\newcommand{\bracketrd}{}}
+\CustomizeMathJax{\newcommand{\bracketlu}{}}
+\CustomizeMathJax{\newcommand{\bracketru}{}}
+\CustomizeMathJax{\newcommand{\bracketex}{}}
+\CustomizeMathJax{\newcommand{\parenex}{}}
+
+\CustomizeMathJax{\newcommand{lhook}{~}}
+\CustomizeMathJax{\newcommand{rhook}{~}}
+\CustomizeMathJax{\newcommand{relbar}{-}}
+\CustomizeMathJax{\newcommand{Relbar}{=}}
+
+\CustomizeMathJax{\newcommand{\mapstochar}{\mathrel{\unicode{x21A6}}}}
+
+\CustomizeMathJax{\newcommand{\Zbar}{\mathord{\unicode{x0001B5}}}}
+\CustomizeMathJax{\newcommand{\notchar}{\mathrel{\unicode{x000AC}}}}
+\CustomizeMathJax{\newcommand{\upbackepsilon}{\mathord{\unicode{x03F6}}}}
+\CustomizeMathJax{\newcommand{\smblkcircle}{\mathbin{\unicode{x02022}}}}
+\CustomizeMathJax{\newcommand{\enleadertwodots}{\mathord{\unicode{x02025}}}}
+\CustomizeMathJax{\newcommand{\unicodeellipsis}{\mathord{\unicode{x02026}}}}
+\CustomizeMathJax{\newcommand{\mathellipsis}{\mathinner{\unicode{x02026}}}}
+\CustomizeMathJax{\newcommand{\dprime}{\mathord{\unicode{x02033}}}}
+\CustomizeMathJax{\newcommand{\trprime}{\mathord{\unicode{x02034}}}}
+\CustomizeMathJax{\newcommand{\backdprime}{\mathord{\unicode{x02036}}}}
+\CustomizeMathJax{\newcommand{\backtrprime}{\mathord{\unicode{x02037}}}}
+\CustomizeMathJax{\newcommand{\caretinsert}{\mathord{\unicode{x02038}}}}
+\CustomizeMathJax{\newcommand{\Exclam}{\mathord{\unicode{x0203C}}}}
+
+\CustomizeMathJax{\newcommand{\hyphenbullet}{\mathord{\unicode{x02043}}}}
+\CustomizeMathJax{\newcommand{\fracslash}{\mathbin{\unicode{x02044}}}}
+\CustomizeMathJax{\newcommand{\Question}{\mathord{\unicode{x02047}}}}
+\CustomizeMathJax{\newcommand{\closure}{\mathrel{\unicode{x02050}}}}
+\CustomizeMathJax{\newcommand{\qprime}{\mathord{\unicode{x02057}}}}
+\CustomizeMathJax{\newcommand{\vertoverlay}{\mathrel{\unicode{x020D2}}}}
+\CustomizeMathJax{\newcommand{\enclosecircle}{\mathord{\unicode{x020DD}}}}
+\CustomizeMathJax{\newcommand{\enclosesquare}{\mathord{\unicode{x020DE}}}}
+\CustomizeMathJax{\newcommand{\enclosetriangle}{\mathord{\unicode{x020E4}}}}
+\CustomizeMathJax{\newcommand{\Eulerconst}{\mathord{\unicode{x02107}}}}
+\CustomizeMathJax{\newcommand{\turnediota}{\mathord{\unicode{x02129}}}}
+\CustomizeMathJax{\newcommand{\Angstrom}{\mathord{\unicode{x0212B}}}}
+
+\CustomizeMathJax{\newcommand{\sansLturned}{\mathord{\unicode{x02142}}}}
+\CustomizeMathJax{\newcommand{\sansLmirrored}{\mathord{\unicode{x02143}}}}
+\CustomizeMathJax{\newcommand{\Yup}{\mathord{\unicode{x02144}}}}
+\CustomizeMathJax{\newcommand{\upand}{\mathbin{\unicode{x0214B}}}}
+\CustomizeMathJax{\newcommand{\increment}{\mathord{\unicode{x02206}}}}
+\CustomizeMathJax{\newcommand{\smallin}{\mathrel{\unicode{x0220A}}}}
+\CustomizeMathJax{\newcommand{\nni}{\mathrel{\unicode{x0220C}}}}
+
+\CustomizeMathJax{\newcommand{\smallni}{\mathrel{\unicode{x0220D}}}}
+\CustomizeMathJax{\newcommand{\QED}{\mathord{\unicode{x0220E}}}}
+\CustomizeMathJax{\newcommand{\vysmwhtcircle}{\mathbin{\unicode{x02218}}}}
+\CustomizeMathJax{\newcommand{\vysmblkcircle}{\mathbin{\unicode{x02219}}}}
+\CustomizeMathJax{\newcommand{\rightangle}{\mathord{\unicode{x0221F}}}}
+
+\CustomizeMathJax{\newcommand{\Colon}{\mathrel{\unicode{x02237}}}}
+\CustomizeMathJax{\newcommand{\dotminus}{\mathbin{\unicode{x02238}}}}
+\CustomizeMathJax{\newcommand{\dashcolon}{\mathrel{\unicode{x02239}}}}
+\CustomizeMathJax{\newcommand{\dotsminusdots}{\mathrel{\unicode{x0223A}}}}
+\CustomizeMathJax{\newcommand{\kernelcontraction}{\mathrel{\unicode{x0223B}}}}
+\CustomizeMathJax{\newcommand{\invlazys}{\mathbin{\unicode{x0223E}}}}
+
+\CustomizeMathJax{\newcommand{\sinewave}{\mathord{\unicode{x0223F}}}}
+\CustomizeMathJax{\newcommand{\nsime}{\mathrel{\unicode{x02244}}}}
+\CustomizeMathJax{\newcommand{\simneqq}{\mathrel{\unicode{x02246}}}}
+\CustomizeMathJax{\newcommand{\napprox}{\mathrel{\unicode{x02249}}}}
+\CustomizeMathJax{\newcommand{\approxident}{\mathrel{\unicode{x0224B}}}}
+\CustomizeMathJax{\newcommand{\backcong}{\mathrel{\unicode{x0224C}}}}
+
+\CustomizeMathJax{\newcommand{\nasymp}{\mathrel{\unicode{x0226D}}}}
+\CustomizeMathJax{\newcommand{\nlesssim}{\mathrel{\unicode{x02274}}}}
+\CustomizeMathJax{\newcommand{\ngtrsim}{\mathrel{\unicode{x02275}}}}
+\CustomizeMathJax{\newcommand{\nlessgtr}{\mathrel{\unicode{x02278}}}}
+\CustomizeMathJax{\newcommand{\ngtrless}{\mathrel{\unicode{x02279}}}}
+
+\CustomizeMathJax{\newcommand{\nsubset}{\mathrel{\unicode{x02284}}}}
+\CustomizeMathJax{\newcommand{\nsupset}{\mathrel{\unicode{x02285}}}}
+
+\CustomizeMathJax{\newcommand{\cupleftarrow}{\mathbin{\unicode{x0228C}}}}
+\CustomizeMathJax{\newcommand{\cupdot}{\mathbin{\unicode{x0228D}}}}
+\CustomizeMathJax{\newcommand{\circledequal}{\mathbin{\unicode{x0229C}}}}
+
+\CustomizeMathJax{\newcommand{\assert}{\mathrel{\unicode{x022A6}}}}
+\CustomizeMathJax{\newcommand{\VDash}{\mathrel{\unicode{x022AB}}}}
+\CustomizeMathJax{\newcommand{\prurel}{\mathrel{\unicode{x022B0}}}}
+
+\CustomizeMathJax{\newcommand{\origof}{\mathrel{\unicode{x022B6}}}}
+\CustomizeMathJax{\newcommand{\smallprod}{\mathop{\unicode{x0220F}}}}% not small
+\CustomizeMathJax{\newcommand{\smallcoprod}{\mathop{\unicode{x02210}}}}% not small
+\CustomizeMathJax{\newcommand{\smallsum}{\mathop{\unicode{x02211}}}}% not small
+\CustomizeMathJax{\newcommand{\Hfraktur}{\mathord{\unicode{x1D525}}}}
+\CustomizeMathJax{\newcommand{\dsol}{\mathbin{\unicode{x029F6}}}}
+\CustomizeMathJax{\newcommand{\rsolbar}{\mathbin{\unicode{x029F7}}}}
+
+\CustomizeMathJax{\newcommand{\eqless}{\mathrel{\unicode{x022DC}}}}
+\CustomizeMathJax{\newcommand{\eqgtr}{\mathrel{\unicode{x022DD}}}}
+\CustomizeMathJax{\newcommand{\npreccurlyeq}{\mathrel{\unicode{x022E0}}}}
+\CustomizeMathJax{\newcommand{\nsucccurlyeq}{\mathrel{\unicode{x022E1}}}}
+\CustomizeMathJax{\newcommand{\nsqsubseteq}{\mathrel{\unicode{x022E2}}}}
+\CustomizeMathJax{\newcommand{\nsqsupseteq}{\mathrel{\unicode{x022E3}}}}
+\CustomizeMathJax{\newcommand{\sqsubsetneq}{\mathrel{\unicode{x022E4}}}}
+\CustomizeMathJax{\newcommand{\sqsupsetneq}{\mathrel{\unicode{x022E5}}}}
+\CustomizeMathJax{\newcommand{\nvartriangleleft}{\mathrel{\unicode{x022EA}}}}
+\CustomizeMathJax{\newcommand{\nvartriangleright}{\mathrel{\unicode{x022EB}}}}
+
+\CustomizeMathJax{\newcommand{\vdotsmath}{\mathrel{\unicode{x022EE}}}}
+\CustomizeMathJax{\newcommand{\unicodecdots}{\mathord{\unicode{x022EF}}}}
+\CustomizeMathJax{\newcommand{\adots}{\mathrel{\unicode{x022F0}}}}
+\CustomizeMathJax{\newcommand{\succneq}{\mathrel{\unicode{x02AB2}}}}
+\CustomizeMathJax{\newcommand{\preceqq}{\mathrel{\unicode{x02AB3}}}}
+\CustomizeMathJax{\newcommand{\succeqq}{\mathrel{\unicode{x02AB4}}}}
+\CustomizeMathJax{\newcommand{\precneq}{\mathrel{\unicode{x02AB1}}}}
+
+\CustomizeMathJax{\newcommand{\mapsfrom}{\mathrel{\unicode{x021A4}}}}
+
+\CustomizeMathJax{\newcommand{\longmapsfrom}{\mathrel{\unicode{x027FB}}}}
+
+\CustomizeMathJax{\newcommand{\diameter}{\mathord{\unicode{x02300}}}}
+\CustomizeMathJax{\newcommand{\coloneq}{\mathrel{\unicode{x02254}}}}
+\CustomizeMathJax{\newcommand{\eqcolon}{\mathrel{\unicode{x02255}}}}
+\CustomizeMathJax{\newcommand{\arceq}{\mathrel{\unicode{x02258}}}}
+\CustomizeMathJax{\newcommand{\wedgeq}{\mathrel{\unicode{x02259}}}}
+\CustomizeMathJax{\newcommand{\veeeq}{\mathrel{\unicode{x0225A}}}}
+
+\CustomizeMathJax{\newcommand{\stareq}{\mathrel{\unicode{x0225B}}}}
+\CustomizeMathJax{\newcommand{\eqdef}{\mathrel{\unicode{x0225D}}}}
+\CustomizeMathJax{\newcommand{\measeq}{\mathrel{\unicode{x0225E}}}}
+\CustomizeMathJax{\newcommand{\questeq}{\mathrel{\unicode{x0225F}}}}
+\CustomizeMathJax{\newcommand{\nequiv}{\mathrel{\unicode{x02262}}}}
+\CustomizeMathJax{\newcommand{\Equiv}{\mathrel{\unicode{x02263}}}}
+
+\CustomizeMathJax{\newcommand{\house}{\mathord{\unicode{x02302}}}}
+
+\CustomizeMathJax{\newcommand{\musicalnote}{\mathord{\unicode{x0266A}}}}
+\CustomizeMathJax{\newcommand{\degree}{\mathord{\unicode{x000B0}}}}
+\CustomizeMathJax{\newcommand{\mathsection}{\mathord{\unicode{x000A7}}}}
+\CustomizeMathJax{\newcommand{\mathparagraph}{\mathord{\unicode{x000B6}}}}
+\CustomizeMathJax{\newcommand{\checkmarkmath}{\mathord{\unicode{x02713}}}}
+\CustomizeMathJax{\newcommand{\invnot}{\mathord{\unicode{x02310}}}}
+
+\CustomizeMathJax{\newcommand{\mathvisiblespace}{\mathord{\unicode{x02423}}}}
+\CustomizeMathJax{\newcommand{\mdlgblksquare}{\mathord{\unicode{x025A0}}}}
+\CustomizeMathJax{\newcommand{\mdlgwhtsquare}{\mathord{\unicode{x025A1}}}}
+
+\CustomizeMathJax{\newcommand{\bigblacktriangleup}{\mathord{\unicode{x025B2}}}}
+\CustomizeMathJax{\newcommand{\varbigtriangleup}{\mathord{\unicode{x025B3}}}}
+
+\CustomizeMathJax{\newcommand{\bigblacktriangledown}{\mathord{\unicode{x025BC}}}}
+\CustomizeMathJax{\newcommand{\varbigtriangledown}{\mathord{\unicode{x025BD}}}}
+\CustomizeMathJax{\newcommand{\Longmapsfrom}{\mathrel{\unicode{x027FD}}}}
+
+% bug in print font:
+\CustomizeMathJax{\newcommand{\mdlgblkdiamond}{\mathord{\unicode{x025C6}}}}
+
+\CustomizeMathJax{\newcommand{\mdlgwhtdiamond}{\mathord{\unicode{x025C7}}}}
+\CustomizeMathJax{\newcommand{\Longmapsto}{\mathrel{\unicode{x027FE}}}}
+\CustomizeMathJax{\newcommand{\fisheye}{\mathord{\unicode{x025C9}}}}
+\CustomizeMathJax{\newcommand{\mdlgwhtlozenge}{\mathord{\unicode{x025CA}}}}
+\CustomizeMathJax{\newcommand{\mdlgwhtcircle}{\mathbin{\unicode{x025CB}}}}
+\CustomizeMathJax{\newcommand{\bullseye}{\mathord{\unicode{x025CE}}}}
+\CustomizeMathJax{\newcommand{\mdlgblkcircle}{\mathord{\unicode{x025CF}}}}
+
+\CustomizeMathJax{\newcommand{\Nwarrow}{\mathrel{\unicode{x021D6}}}}
+\CustomizeMathJax{\newcommand{\Nearrow}{\mathrel{\unicode{x021D7}}}}
+\CustomizeMathJax{\newcommand{\Searrow}{\mathrel{\unicode{x021D8}}}}
+\CustomizeMathJax{\newcommand{\Swarrow}{\mathrel{\unicode{x021D9}}}}
+
+\CustomizeMathJax{\newcommand{\Mapsfrom}{\mathord{\unicode{x02906}}}}
+\CustomizeMathJax{\newcommand{\smwhtcircle}{\mathord{\unicode{x025E6}}}}
+\CustomizeMathJax{\newcommand{\smwhtdiamond}{\mathbin{\unicode{x022C4}}}}
+\CustomizeMathJax{\newcommand{\Mapsto}{\mathord{\unicode{x02907}}}}
+
+\CustomizeMathJax{\let\ngets\nleftarrow}
+\CustomizeMathJax{\let\nsimeq\nsime}
+\CustomizeMathJax{\let\nle\nleq}
+\CustomizeMathJax{\let\nge\ngeq}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</libertinust1math>
+% \fi
%
%
% \iffalse
@@ -59265,16 +60574,12 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \changes{v0.20}{2017/01/01}{\pkg{listings}: Added.}
%
-% \codehtml
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
-%
%
% \begin{macrocode}
\LWR@ProvidesPackagePass{listings}[2018/09/02]
% \end{macrocode}
+%
% ^^A For passing optional arguments to an environment, see:
% ^^A \href
% ^^A {http://tex.stackexchange.com/questions/9035/how-to-pass-an-optional-argument-to-an-environment-with-verbatim-content}
@@ -59305,6 +60610,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% Use the \pkg{listings} \optn{literate} option to replace
% \HTML\ entities:
% \changes{v0.60}{2018/09/12}{\pkg{listings}: Fix for \HTML\ entities.}
+% \changes{v0.891}{2020/09/21}{\pkg{listings}: Improved \HTML\ sanitizing.}
% \begin{macrocode}
\def\lstset@#1{\endgroup%
% \ifx\@empty#1%
@@ -59315,7 +60621,17 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
,literate=%
{<}{\HTMLentity{lt}}{4}%
{>}{\HTMLentity{gt}}{4}%
- {\&}{\HTMLentity{amp}}{5}%
+ {'}{\HTMLentity{apos}}{6}%
+ {`}{\HTMLentity{grave}}{7}%
+% \end{macrocode}
+% The ampersand is not treated here, as the result is inconsistent spacing.
+% It is nevertheless converted to |&amp;| elsewhere.
+% Sanitizing the double quote interferes with \pkg{listings}' conversion of
+% visible spaces inside strings.
+% \changes{v0.891}{2020/09/21}{\pkg{listings}: Improved spacing around ampersand.}
+% ^^A {"}{\HTMLentity{quot}}{6}%
+% ^^A {\&}{\HTMLentity{amp}}{5}% inconsistent spacing
+% \begin{macrocode}
}%
% \fi%
}
@@ -59334,6 +60650,15 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \changes{v0.51}{2018/03/17}{\pkg{listings}: Forces cleared options.}
% \begin{macrocode}
\LWR@traceinfo{lst@Init}%
+% \end{macrocode}
+%
+% \cs{LWR@forcenewpage} is moved to the start to avoid a spurrious bug
+% with paragraph handling and conditionals.
+% \changes{v0.891}{2020/09/16}{\pkg{listings}: Fix for \brand{MathJax}: Moved \cs{LWR@forcenewpage} to start.}
+% \begin{macrocode}
+\lst@ifdisplaystyle%
+ \LWR@forcenewpage%
+\fi%
\renewcommand*{\@captype}{lstlisting}%
\let\lst@aboveskip\z@\let\lst@belowskip\z@%
\gdef\lst@boxpos{t}%
@@ -59363,8 +60688,10 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \begin{macrocode}
\LWR@traceinfo{About to create verbatim.}%
\let\lsthk@EveryPar\relax%
- \LWR@forcenewpage%
- \LWR@atbeginverbatim{1.5}{programlisting}%
+% \end{macrocode}
+% \changes{v0.891}{2020/09/16}{\pkg{listings}: Fix for \brand{MathJax}: Moved \cs{LWR@forcenewpage} to start.}
+% \begin{macrocode}
+ \LWR@atbeginverbatim{programlisting}%
\let\lsthk@EveryPar\LWR@origlsthkEveryPar%
\else%
@@ -59373,6 +60700,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \begin{macrocode}
\ifbool{LWR@verbtags}{\LWR@htmltag{span class="inlineprogramlisting"}}{}%
\fi%
+\LWR@traceinfo{lst@Init done}%
}
% \end{macrocode}
@@ -59390,14 +60718,14 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% produce the \element{/pre}, then
% reenable line numbers:
% \begin{macrocode}
-\let\lsthk@EveryPar\relax%
-\LWR@afterendverbatim{0}%
-\let\lsthk@EveryPar\LWR@origlsthkEveryPar%
+ \let\lsthk@EveryPar\relax%
+ \LWR@afterendverbatim%
+ \let\lsthk@EveryPar\LWR@origlsthkEveryPar%
\else%
% \end{macrocode}
% Inline, so create the closing \element{/span}:
% \begin{macrocode}
-\ifbool{LWR@verbtags}{\noindent\LWR@htmltag{/span}}{}%
+ \ifbool{LWR@verbtags}{\noindent\LWR@htmltag{/span}}{}%
\fi%
% \end{macrocode}
% Final \pkg{listings} deinit:
@@ -59433,15 +60761,18 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\lst@ifnolol\else
\ifx\lst@@caption\@empty
\ifx\lst@caption\@empty
- \ifx\lst@intname\@empty \else \def\lst@temp{ }%
- \ifx\lst@intname\lst@temp \else
+ \ifx\lst@intname\@empty
+ \else
+ \def\lst@temp{ }%
+ \ifx\lst@intname\lst@temp \else
% \end{macrocode}
% This code places a contents entry for a non-float.
% This would have to be modified for \pkg{lwarp}:
% \begin{macrocode}
\LWR@traceinfo{addcontents lst@name: -\lst@name-}%
% \addcontentsline{lol}{lstlisting}{\lst@name}
- \fi\fi
+ \fi
+ \fi
\fi
\else
% \end{macrocode}
@@ -59543,10 +60874,6 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
}{\PackageError{lwarp-listings}{Numbers #1 unknown}\@ehc}}
% \end{macrocode}
%
-% \begin{macrocode}
-\end{warpHTML}
-% \end{macrocode}
-
% \iffalse
%</listings>
% \fi
@@ -61093,11 +62420,13 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \pkg{mathdesign} is used as-is for \SVG\ math, and is
% emulated for \brand{MathJax}.
%
-% The \brand{MathJax} emulation ignores all package options.
+% The \brand{MathJax} emulation ignores all package options
% \trouble[limitations]{mathdesign=\pkg{mathdesign}}
-% The explicit macros for upright and italic greek letters do work correctly,
+% except \optn{greekuppercase} and \optn{greeklowercase}.
+% The dedicated macros for upright and italic greek letters work correctly,
% although the user may wish to swap the definitions for
% epsilon and phi.
+%
% \SVG\ math should appear the same as the printed output.
%
% \changes{v0.89}{2020/08/08}{\pkg{mathdesign}: Added.}
@@ -61105,56 +62434,88 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \codehtml
%
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
-\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
-
\LWR@ProvidesPackagePass{mathdesign}[2013/08/29]
% \end{macrocode}
%
% For \brand{MathJax}:
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{mathdesign}
+% \end{macrocode}
+
+% Default greek upright or italicized:
+%
+% \changes{v0.891}{2020/09/06}{\pkg{mathdesign}: Honors \optn{greekuppercase},
+% \optn{greeklowercase}.}
+% \begin{macrocode}
+\if@MD@grupright
+\LWR@mathjax@addgreek@l@up{}{}
+\fi
-% upright
+\if@MD@GRupright
+\else
+\LWR@mathjax@addgreek@u@it*{}{}
+\fi
+% \end{macrocode}
+%
+% Upright:
+% \begin{macrocode}
\LWR@mathjax@addgreek@l@up{}{up}
\LWR@mathjax@addgreek@u@up*{}{up}
-
-
-% italicized
+% \end{macrocode}
+%
+% Italicized:
+% \begin{macrocode}
\LWR@mathjax@addgreek@l@it{}{it}
\LWR@mathjax@addgreek@u@it*{}{it}
-
-% adapt to mathdesign inconsistency:
+% \end{macrocode}
+%
+% Adapt to \pkg{mathdesign} inconsistency:
+% \begin{macrocode}
\CustomizeMathJax{\let\digammaup\Digammaup}
\CustomizeMathJax{\renewcommand{\digammait}{\mathit{\digammaup}}}
-
-% extra symbols
-\CustomizeMathJax{\newcommand{\smallin}{\unicode{x220A}}}
-\CustomizeMathJax{\newcommand{\smallowns}{\unicode{x220D}}}
-\CustomizeMathJax{\newcommand{\notsmallin}{\LWRoverlaysymbols{/}{\unicode{x220A}}}}
-\CustomizeMathJax{\newcommand{\notsmallowns}{\LWRoverlaysymbols{/}{\unicode{x220D}}}}
-\CustomizeMathJax{\newcommand{\rightangle}{\unicode{x221F}}}
-
-% integrals
-\CustomizeMathJax{\newcommand{\intclockwise}{\unicode{x2231}}}
-\CustomizeMathJax{\newcommand{\ointclockwise}{\unicode{x2232}}}
-\CustomizeMathJax{\newcommand{\ointctrclockwise}{\unicode{x2233}}}
-\CustomizeMathJax{\newcommand{\oiint}{\unicode{x222F}}}
-\CustomizeMathJax{\newcommand{\oiiint}{\unicode{x2230}}}
-
-% math and text mode
+% \end{macrocode}
+%
+% Extra symbols:
+% \changes{v0.891}{2020/09/08}{\pkg{mathdesign}: Added \cs{mathrel}, \cs{mathord}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\smallin}{\mathrel{\unicode{x220A}}}}
+\CustomizeMathJax{\newcommand{\smallowns}{\mathrel{\unicode{x220D}}}}
+\CustomizeMathJax{\newcommand{\notsmallin}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x220A}}}}}
+\CustomizeMathJax{\newcommand{\notsmallowns}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x220D}}}}}
+\CustomizeMathJax{\newcommand{\rightangle}{\mathord{\unicode{x221F}}}}
+% \end{macrocode}
+%
+% Integrals:
+% \changes{v0.891}{2020/09/08}{\pkg{mathdesign}: Added \cs{mathop}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\intclockwise}{\mathop{\unicode{x2231}}\limits}}
+\CustomizeMathJax{\newcommand{\ointclockwise}{\mathop{\unicode{x2232}}\limits}}
+\CustomizeMathJax{\newcommand{\ointctrclockwise}{\mathop{\unicode{x2233}}\limits}}
+\CustomizeMathJax{\newcommand{\oiint}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\oiiint}{\mathop{\unicode{x2230}}\limits}}
+% \end{macrocode}
+%
+% Math and text mode:
+% \begin{macrocode}
\CustomizeMathJax{\newcommand{\ddag}{\unicode{x2021}}}
\CustomizeMathJax{\newcommand{\P}{\unicode{x00B6}}}
\CustomizeMathJax{\newcommand{\copyright}{\unicode{x00A9}}}
\CustomizeMathJax{\newcommand{\dag}{\unicode{x2020}}}
\CustomizeMathJax{\newcommand{\pounds}{\unicode{x00A3}}}
-
-% extra symbols
-\CustomizeMathJax{\newcommand{\iddots}{\unicode{x22F0}}}
-\CustomizeMathJax{\newcommand{\utimes}{\overline{\times}}}
-\CustomizeMathJax{\newcommand{\dtimes}{\underline{\times}}}
-\CustomizeMathJax{\newcommand{\udtimes}{\overline{\underline{\times}}}}
+% \end{macrocode}
+%
+% Extra symbols:
+% \changes{v0.891}{2020/09/08}{\pkg{mathdesign}: Added \cs{mathinner}, \cs{mathbin}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\iddots}{\mathinner{\unicode{x22F0}}}}
+\CustomizeMathJax{\newcommand{\utimes}{\mathbin{\overline{\times}}}}
+\CustomizeMathJax{\newcommand{\dtimes}{\mathbin{\underline{\times}}}}
+\CustomizeMathJax{\newcommand{\udtimes}{\mathbin{\overline{\underline{\times}}}}}
\CustomizeMathJax{\newcommand{\leftwave}{\left\{}}
\CustomizeMathJax{\newcommand{\rightwave}{\right\}}}
@@ -61183,6 +62544,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% emulated for \brand{MathJax}.
%
% \changes{v0.80}{2020/02/16}{\pkg{mathdots}: Added.}
+% \changes{v0.891}{2020/09/08}{\pkg{mathdots}: Added more macros, \cs{mathinner}.}
%
% \codehtml
%
@@ -61192,7 +62554,15 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \begin{macrocode}
\begin{warpMathJax}
-\CustomizeMathJax{\newcommand{\iddots}{\unicode{x22F0}}}
+\CustomizeMathJax{\newcommand{\iddots}{\mathinner{\unicode{x22F0}}}}
+\CustomizeMathJax{\let\fixedddots\ddots}
+\CustomizeMathJax{\let\fixedvdots\vdots}
+\CustomizeMathJax{\let\fixediddots\iddots}
+\CustomizeMathJax{\let\originalddots\ddots}
+\CustomizeMathJax{\let\originalvdots\vdots}
+\CustomizeMathJax{\let\originaliddots\iddots}
+\CustomizeMathJax{\let\originaldddot\dddot}
+\CustomizeMathJax{\let\originalddddot\ddddot}
\end{warpMathJax}
% \end{macrocode}
%
@@ -61220,6 +62590,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% Greek letters are unchanged.\watchout
%
% \changes{v0.80}{2020/02/09}{\pkg{mathfixs}: Added.}
+% \changes{v0.891}{2020/09/08}{\pkg{mathfixs}: Added \cs{mathinner}.}
%
% \codehtml
%
@@ -61230,7 +62601,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\rfrac}[2]{\tfrac{#1}{#2}}}
-\CustomizeMathJax{\newcommand{\vfrac}[2]{{}^{#1}\!/{}_{#2}}}
+\CustomizeMathJax{\newcommand{\vfrac}[2]{\mathinner{{}^{#1}\!/{}_{#2}}}}
\CustomizeMathJax{\newcommand{\ProvideMathFix}[1]{}}
\CustomizeMathJax{\newcommand{\mathbold}[1]{\boldsymbol{#1}}}
\CustomizeMathJax{\newcommand{\.}{\,}}
@@ -61261,24 +62632,30 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% The \brand{MathJax} emulation ignores all package options.
% \trouble[limitations]{mathpazo=\pkg{mathpazo}}
-% The explicit macros for upright greek letters do work correctly.
+% The dedicated macros for upright greek letters do work correctly.
+%
% \SVG\ math should appear the same as the printed output.
%
% \changes{v0.89}{2020/08/10}{\pkg{mathpazo}: Added.}
+% \changes{v0.891}{2020/09/06}{\pkg{mathpazo}: Honors \optn{slantedGreek}.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
-
\LWR@ProvidesPackagePass{mathpazo}[2020/03/25]
% \end{macrocode}
%
% For \brand{MathJax}:
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{mathpazo}
+\ifpazo@slGreek
+\LWR@mathjax@addgreek@u@it*{}{}
+\fi
+
\LWR@mathjax@addgreek@u@up*{up}{}
\CustomizeMathJax{\newcommand{\mathbold}[1]{\boldsymbol{#1}}}
@@ -61307,24 +62684,30 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% The \brand{MathJax} emulation ignores all package options.
% \trouble[limitations]{mathptmx=\pkg{mathptmx}}
-% The explicit macros for upright greek letters do work correctly.
+% The dedicated macros for upright greek letters do work correctly.
+%
% \SVG\ math should appear the same as the printed output.
%
% \changes{v0.89}{2020/08/10}{\pkg{mathptmx}: Added.}
+% \changes{v0.891}{2020/09/06}{\pkg{mathptmx}: Honors \optn{slantedGreek}.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
-
\LWR@ProvidesPackagePass{mathptmx}[2020/03/25]
% \end{macrocode}
%
% For \brand{MathJax}:
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{mathptmx}
+\@ifpackagewith{mathptmx}{slantedGreek}
+ {\LWR@mathjax@addgreek@u@it*{}{}}
+ {}
+
\LWR@mathjax@addgreek@u@up*{up}{}
\end{warpMathJax}
% \end{macrocode}
@@ -61401,6 +62784,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \changes{v0.79}{2020/01/26}{\pkg{mathtools}: Added \brand{MathJax} emulation.}
% \changes{v0.87}{2020/05/20}{\pkg{mathtools}: Updated starred macros.}
% \changes{v0.87}{2020/05/20}{\pkg{mathtools}: Improved \cs{underbraket}, \cs{overbracket}.}
+% \changes{v0.891}{2020/09/19}{\pkg{mathtools}: Improved \cs{underbraket}, \cs{overbracket}.}
% \begin{macrocode}
\begin{warpMathJax}
\LWR@infoprocessingmathjax{mathtools}
@@ -61445,10 +62829,14 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\CustomizeMathJax{\Newextarrow\xleftharpoonup{10,10}{0x21bc}}
\CustomizeMathJax{\Newextarrow\xleftrightharpoons{10,10}{0x21cb}}
-\CustomizeMathJax{\newcommand{\LWRdounderbracket}[3]{\underset{#3}{\underline{#1}}}}
+\CustomizeMathJax{\newcommand{\LWRdounderbracket}[3]{%
+ \mathinner{\underset{#3}{\underline{\llcorner{#1}\lrcorner}}}%
+}}
\CustomizeMathJax{\newcommand{\LWRunderbracket}[2][]{\LWRdounderbracket{#2}}}
\CustomizeMathJax{\newcommand{\underbracket}[1][]{\LWRunderbracket}}
-\CustomizeMathJax{\newcommand{\LWRdooverbracket}[3]{\overset{#3}{\overline{#1}}}}
+\CustomizeMathJax{\newcommand{\LWRdooverbracket}[3]{%
+ \mathinner{\overset{#3}{\overline{\ulcorner{#1}\urcorner}}}%
+}}
\CustomizeMathJax{\newcommand{\LWRoverbracket}[2][]{\LWRdooverbracket{#2}}}
\CustomizeMathJax{\newcommand{\overbracket}[1][]{\LWRoverbracket}}
@@ -61636,24 +63024,25 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\CustomizeMathJax{\newcommand{\ordinarycolon}{:}}
% \end{macrocode}
% \changes{v0.89}{2020/08/21}{\pkg{mathtools}: Minor improvements.}
+% \changes{v0.891}{2020/09/08}{\pkg{mathtools}: Uses Unicode and \cs{mathrel}.}
% \begin{macrocode}
-\CustomizeMathJax{\newcommand{\vcentcolon}{\mathrel{\mathop\ordinarycolon}}}
+\CustomizeMathJax{\newcommand{\vcentcolon}{\mathrel{\unicode{x2236}}}}
-\CustomizeMathJax{\newcommand\dblcolon{\vcentcolon\vcentcolon}}
-\CustomizeMathJax{\newcommand\coloneqq{\vcentcolon=}}
-\CustomizeMathJax{\newcommand\Coloneqq{\dblcolon=}}
-\CustomizeMathJax{\newcommand\coloneq{\vcentcolon{-}}}
-\CustomizeMathJax{\newcommand\Coloneq{\dblcolon{-}}}
+\CustomizeMathJax{\newcommand\dblcolon{\mathrel{\unicode{x2237}}}}
+\CustomizeMathJax{\newcommand\coloneqq{\mathrel{\unicode{x2236}\!=}}}
+\CustomizeMathJax{\newcommand\Coloneqq{\mathrel{\unicode{x2237}\!=}}}
+\CustomizeMathJax{\newcommand\coloneq{\mathrel{\unicode{x2236}-}}}
+\CustomizeMathJax{\newcommand\Coloneq{\mathrel{\unicode{x2237}-}}}
-\CustomizeMathJax{\newcommand\eqqcolon{=\vcentcolon}}
-\CustomizeMathJax{\newcommand\Eqqcolon{=\dblcolon}}
-\CustomizeMathJax{\newcommand\eqcolon{\mathrel{-}\vcentcolon}}
-\CustomizeMathJax{\newcommand\Eqcolon{\mathrel{-}\dblcolon}}
+\CustomizeMathJax{\newcommand\eqqcolon{\mathrel{=\!\unicode{x2236}}}}
+\CustomizeMathJax{\newcommand\Eqqcolon{\mathrel{=\!\unicode{x2237}}}}
+\CustomizeMathJax{\newcommand\eqcolon{\mathrel{-\unicode{x2236}}}}
+\CustomizeMathJax{\newcommand\Eqcolon{\mathrel{-\unicode{x2237}}}}
-\CustomizeMathJax{\newcommand\colonapprox{\vcentcolon\approx}}
-\CustomizeMathJax{\newcommand\Colonapprox{\dblcolon\approx}}
-\CustomizeMathJax{\newcommand\colonsim{\vcentcolon\sim}}
-\CustomizeMathJax{\newcommand\Colonsim{\dblcolon\sim}}
+\CustomizeMathJax{\newcommand\colonapprox{\mathrel{\unicode{x2236}\!\approx}}}
+\CustomizeMathJax{\newcommand\Colonapprox{\mathrel{\unicode{x2237}\!\approx}}}
+\CustomizeMathJax{\newcommand\colonsim{\mathrel{\unicode{x2236}\!\sim}}}
+\CustomizeMathJax{\newcommand\Colonsim{\mathrel{\unicode{x2237}\!\sim}}}
% \end{macrocode}
% \changes{v0.89}{2020/08/21}{\pkg{mathtools}: Minor improvements.}
@@ -62743,9 +64132,9 @@ background:
\LetLtxMacro\cesplit\LWR@mhchem@origcesplit%
}
-\begin{warpHTML}
+\begin{warpMathJax}
\CustomizeMathJax{\require{mhchem}}
-\end{warpHTML}
+\end{warpMathJax}
% \end{macrocode}
% \iffalse
@@ -63286,22 +64675,18 @@ background:
% \changes{v0.34}{2017/08/02}{\pkg{moreverb}: Added.}
% \changes{v0.42}{2017/10/27}{\pkg{moreverb}: Simplified formatting of listings.}
%
-% \codehtml
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
-%
% \begin{macrocode}
\LWR@ProvidesPackagePass{moreverb}[2008/06/03]
% \end{macrocode}
%
+%
% \begin{macrocode}
\BeforeBeginEnvironment{verbatimtab}{%
\LWR@forcenewpage
-\LWR@atbeginverbatim{3}{Verbatim}%
+\LWR@atbeginverbatim{Verbatim}%
}
\AfterEndEnvironment{verbatimtab}{%
-\LWR@afterendverbatim{1}%
+\LWR@afterendverbatim%
}
@@ -63309,27 +64694,27 @@ background:
\renewcommand{\@verbatimtabinput}[2][]{%
\LWR@forcenewpage
-\LWR@atbeginverbatim{3}{Verbatim}%
+\LWR@atbeginverbatim{Verbatim}%
\LWRMV@orig@verbatimtabinput[#1]{#2}%
-\LWR@afterendverbatim{1}%
+\LWR@afterendverbatim%
}
\BeforeBeginEnvironment{listing}{%
\LWR@forcenewpage
-\LWR@atbeginverbatim{3}{programlisting}%
+\LWR@atbeginverbatim{programlisting}%
}
\AfterEndEnvironment{listing}{%
-\LWR@afterendverbatim{1}%
+\LWR@afterendverbatim%
}
\BeforeBeginEnvironment{listingcont}{%
\LWR@forcenewpage
-\LWR@atbeginverbatim{3}{programlisting}%
+\LWR@atbeginverbatim{programlisting}%
}
\AfterEndEnvironment{listingcont}{%
-\LWR@afterendverbatim{1}%
+\LWR@afterendverbatim%
}
% \end{macrocode}
@@ -63358,28 +64743,24 @@ background:
\renewcommand{\@listinginput}[3][]{
\LWR@forcenewpage
-\LWR@atbeginverbatim{3}{programlisting}%
+\LWR@atbeginverbatim{programlisting}%
\LWRMV@@listinginput[#1]{#2}{#3}%
-\LWR@afterendverbatim{1}%
+\LWR@afterendverbatim%
}
\renewenvironment*{boxedverbatim}
{
\LWR@forcenewpage
-\LWR@atbeginverbatim{3}{boxedverbatim}%
+\LWR@atbeginverbatim{boxedverbatim}%
\verbatim%
}
{
\endverbatim%
-\LWR@afterendverbatim{1}%
+\LWR@afterendverbatim%
}
% \end{macrocode}
%
-% \begin{macrocode}
-\end{warpHTML}
-% \end{macrocode}
-%
% \iffalse
%</moreverb>
% \fi
@@ -63569,9 +64950,6 @@ background:
%
% The content is placed inside a \element{div} of class |multicols|.
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
% \begin{noindenvironment}{multicols} * \marg{numcols} \oarg{heading}
% \begin{macrocode}
@@ -63631,9 +65009,6 @@ background:
}
% \end{macrocode}
-% \begin{macrocode}
-\end{warpHTML}
-% \end{macrocode}
% \iffalse
%</multicol>
@@ -63743,8 +65118,11 @@ background:
\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}}
+% \end{macrocode}
+% \changes{v0.891}{2020/09/08}{\pkg{multiobjective}: Improved.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\strictdom}{\mathord{\prec}\!\!\!\mathord{\prec}}}
+\CustomizeMathJax{\newcommand{\negstrictdom}{\mathord{\not\prec}\!\!\!\mathord{\prec}}}
\CustomizeMathJax{\newcommand{\multepsilondom}{\preccurlyeq_{\epsilon\cdot}}}
\CustomizeMathJax{\newcommand{\addiepsilondom}{\preccurlyeq_{\epsilon +}}}
\CustomizeMathJax{\newcommand{\better}{\triangleleft}}
@@ -64654,12 +66032,15 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
% \pkg{newpxmath} is used as-is for \SVG\ math, and is
% emulated for \brand{MathJax}.
%
-% The \brand{MathJax} emulation ignores all package options.
+% The \brand{MathJax} emulation ignores all package options,
% \trouble[limitations]{newpxmath=\pkg{newpxmath}}
-% The explicit macros for upright and italic Greek do work correctly.
+% except \optn{slantedGreek} is honored.
+% The dedicated macros for upright and italic Greek do work correctly.
+%
% \SVG\ math should appear the same as the printed output.
%
% \changes{v0.89}{2020/08/31}{\pkg{newpxmath}: Added.}
+% \changes{v0.891}{2020/09/06}{\pkg{newpxmath}: Honors \optn{uprightGreek}, \optn{slantedGreek}.}
%
% \codehtml
%
@@ -64670,6 +66051,27 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\LWR@infoprocessingmathjax{newpxmath}
\LWR@origRequirePackage{lwarp-common-mathjax-newpxtxmath}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\begin{warpMathJax}
+
+% * \marg{2: prefix} \marg{3: postfix} \marg{4: i/u: italic/upright}
+\LWR@mathjax@addgreek@u@up*{}{up}
+\LWR@mathjax@addgreek@u@up*{up}{}
+\LWR@mathjax@addgreek@l@up{up}{}
+\LWR@mathjax@addgreek@l@up{}{up}
+\LWR@mathjax@addgreek@u@it*{}{it}
+\LWR@mathjax@addgreek@l@it{}{it}
+% \end{macrocode}
+%
+% Optional slanted Greek:
+% \begin{macrocode}
+\ifpx@slantedG
+ \LWR@mathjax@addgreek@u@it*{}{}
+\fi
+
+\end{warpMathJax}
% \end{macrocode}
%
% \iffalse
@@ -64694,14 +66096,17 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
% The \brand{MathJax} emulation ignores all package options,
% \trouble[limitations]{newtxmath=\pkg{newtxmath}}
+% except \optn{slantedGreek} is honored, and
% except that bold italic Latin letters are not defined for \brand{MathJax} if
% the option is not selected.
%
-% The explicit macros for upright and italic Greek and bold italic Latin letters
+% The dedicated macros for upright and italic Greek and bold italic Latin letters
% do work correctly.
+%
% \SVG\ math should appear the same as the printed output.
%
% \changes{v0.89}{2020/08/31}{\pkg{newtxmath}: Added.}
+% \changes{v0.891}{2020/09/06}{\pkg{newtxmath}: Honors \optn{uprightGreek}, \optn{slantedGreek}.}
%
% \codehtml
%
@@ -64711,6 +66116,39 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\LWR@infoprocessingmathjax{newtxmath}
\LWR@origRequirePackage{lwarp-common-mathjax-newpxtxmath}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\begin{warpMathJax}
+
+% * \marg{2: prefix} \marg{3: postfix} \marg{4: i/u: italic/upright}
+\LWR@mathjax@addgreek@u@up*{}{up}
+\LWR@mathjax@addgreek@u@up*{up}{}
+\LWR@mathjax@addgreek@l@up{up}{}
+\LWR@mathjax@addgreek@l@up{}{up}
+\LWR@mathjax@addgreek@u@it*{}{it}
+\LWR@mathjax@addgreek@l@it{}{it}
+
+% only newtxmath, not newpxmath:
+\LWR@mathjax@addgreek@u@it*{it}{}
+\LWR@mathjax@addgreek@l@it{it}{}
+
+% only newtxmath, not newpxmath:
+\ifdef{\iftx@BI}{
+ \iftx@BI
+ \LWR@mathjax@addlatin@u@bfit{BI}
+ \LWR@mathjax@addlatin@l@bfit{BI}
+ \fi
+}{}
+% \end{macrocode}
+%
+% Optional slanted Greek:
+% \begin{macrocode}
+\iftx@slantedG
+ \LWR@mathjax@addgreek@u@it*{}{}
+\fi
+
+\end{warpMathJax}
% \end{macrocode}
%
% \iffalse
@@ -64734,13 +66172,16 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
% \pkg{newtxsf} is used as-is for \SVG\ math, and is
% emulated for \brand{MathJax}.
%
-% The \brand{MathJax} emulation ignores all package options.
+% The \brand{MathJax} emulation ignores all package options,
% \trouble[limitations]{newtxsf=\pkg{newtxsf}}
-% The explicit macros for upright and italic Greek and bold italic Latin letters
+% except \optn{slantedGreek} is honored.
+% The dedicated macros for upright and italic Greek and bold italic Latin letters
% do work correctly.
+%
% \SVG\ math should appear the same as the printed output.
%
% \changes{v0.89}{2020/08/31}{\pkg{newtxsf}: Added.}
+% \changes{v0.891}{2020/09/06}{\pkg{newpxmath}: Honors \optn{uprightGreek}, \optn{slantedGreek}.}
%
% \codehtml
%
@@ -64750,6 +66191,39 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\LWR@infoprocessingmathjax{newtxsf}
\LWR@origRequirePackage{lwarp-common-mathjax-newpxtxmath}
+
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\begin{warpMathJax}
+
+% * \marg{2: prefix} \marg{3: postfix} \marg{4: i/u: italic/upright}
+\LWR@mathjax@addgreek@u@up*{}{up}
+\LWR@mathjax@addgreek@u@up*{up}{}
+\LWR@mathjax@addgreek@l@up{up}{}
+\LWR@mathjax@addgreek@l@up{}{up}
+\LWR@mathjax@addgreek@u@it*{}{it}
+\LWR@mathjax@addgreek@l@it{}{it}
+
+% only newtxmath, not newpxmath:
+\LWR@mathjax@addgreek@u@it*{it}{}
+\LWR@mathjax@addgreek@l@it{it}{}
+%
+% only newtxmath, not newpxmath:
+\ifdef{\iftx@BI}{
+ \iftx@BI
+ \LWR@mathjax@addlatin@u@bfit{BI}
+ \LWR@mathjax@addlatin@l@bfit{BI}
+ \fi
+}{}
+% \end{macrocode}
+%
+% Optional slanted Greek:
+% \begin{macrocode}
+\iftx@slantedG
+ \LWR@mathjax@addgreek@u@it*{}{}
+\fi
+
+\end{warpMathJax}
% \end{macrocode}
%
% \iffalse
@@ -65222,9 +66696,10 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
% \end{macrocode}
%
% For Mathjax:
+% \changes{v0.891}{2020/09/08}{\pkg{nicefrac}: Added \cs{mathinner}, improved fraction.}
% \begin{macrocode}
\begin{warpMathJax}
-\CustomizeMathJax{\newcommand{\nicefrac}[3][]{#2/#3}}
+\CustomizeMathJax{\newcommand{\nicefrac}[3][]{\mathinner{{}^{#2}\!/\!_{#3}}}}
\end{warpMathJax}
% \end{macrocode}
%
@@ -68653,13 +70128,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \codehtml
%
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
-
\LWR@ProvidesPackagePass{pxfonts}[2008/01/22]
% \end{macrocode}
%
% For \brand{MathJax}:
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{pxfonts}
@@ -69781,6 +71256,63 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*scalerel>
+% \fi
+%
+% \part{lwarp-scalerel.sty}
+%
+% \section{scalerel}
+%
+% \credits{Steven B. Segletes}
+%
+% \DescribePackage{scalerel}
+% \pkg{scalerel} is used as-is for \SVG\ math, and is
+% emulated and ignored for \brand{MathJax}.
+%
+% \changes{v0.891}{2020/09/10}{\pkg{scalerel}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{scalerel}[2016/12/29]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{scalerel}
+
+\CustomizeMathJax{\newcommand{\scalerel}{\ifstar{\scalerelplain}{\scalerelplus}}}
+\CustomizeMathJax{\newcommand{\scalerelplain}[3][]{#2}}
+\CustomizeMathJax{\newcommand{\scalerelplus}[3][]{#2#3}}
+\CustomizeMathJax{\newcommand{\stretchrel}{\ifstar{\stretchrelplain}{\stretchrelplus}}}
+\CustomizeMathJax{\newcommand{\stretchrelplain}[3][]{#2}}
+\CustomizeMathJax{\newcommand{\stretchrelplus}[3][]{#2#3}}
+\CustomizeMathJax{\newcommand{\scaleto}[3][]{#2}}
+\CustomizeMathJax{\newcommand{\stretchto}[3][]{#2}}
+\CustomizeMathJax{\newcommand{\scaleleftright}[4][]{#2#3#4}}
+\CustomizeMathJax{\newcommand{\stretchleftright}[4][]{#2#3#4}}
+\CustomizeMathJax{\newcommand{\hstretch}[2]{#2}}
+\CustomizeMathJax{\newcommand{\vstretch}[2]{#2}}
+\CustomizeMathJax{\newcommand{\scaleobj}[2]{#2}}
+\CustomizeMathJax{\newcommand{\ThisStyle}[1]{#1}}
+\CustomizeMathJax{\newcommand{\SavedStyle}{}}
+\CustomizeMathJax{\def\scriptstyleScaleFactor{.7}}
+\CustomizeMathJax{\def\scriptscriptstyleScaleFactor{.5}}
+\CustomizeMathJax{\newcommand{\discernmathstyle}{}}
+\CustomizeMathJax{\newcommand{\ignoremathstyle}[1][T]{}}
+\CustomizeMathJax{\newcommand{\Isnextbyte}[3][v]{}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</scalerel>
+% \fi
+%
+%
+%
+%
+% \iffalse
%<*schemata>
% \fi
%
@@ -70944,10 +72476,10 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \begin{macrocode}
\LWR@ProvidesPackageDrop{shuffle}[2008/10/27]
+\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
% \end{macrocode}
%
% \begin{macrocode}
-\begin{warpHTML}
\newcommand*{\LWR@shuffle@start}{%
\hspace*{.2em}
\begin{picture}(.75,0.65)
@@ -70974,11 +72506,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\put(.05,.65){\line(1,0){.65}}%
\LWR@shuffle@finish%
}
-\end{warpHTML}
-
+% \end{macrocode}
+%
+% \changes{v0.891}{2020/09/08}{\pkg{shuffle}: Added \cs{mathbin}, improved bar.}
+% \begin{macrocode}
\begin{warpMathJax}
-\CustomizeMathJax{\newcommand{\shuffle}{\unicode{0x29E2}}}
-\CustomizeMathJax{\newcommand{\cshuffle}{\bar{\unicode{0x29E2}}}}
+\CustomizeMathJax{\newcommand{\shuffle}{\mathbin{\unicode{0x29E2}}}}
+\CustomizeMathJax{\newcommand{\cshuffle}{\mathbin{\LWRoverlaysymbols{\raise{.6ex}{-}}{\unicode{0x29E2}}}}}
\end{warpMathJax}
% \end{macrocode}
%
@@ -73206,12 +74740,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \codehtml
%
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
-
\LWR@ProvidesPackagePass{statmath}[2018/03/08]
% \end{macrocode}
%
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{statmath}
@@ -73327,13 +74861,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
%
% \begin{macrocode}
-\begin{warpHTML}
\renewcommand{\phase}[2][]{%
\begin{lateximage}*[steinmetz\{\detokenize{#2}\}]
\ensuremath{\underline{/#2}}
\end{lateximage}
}
-\end{warpHTML}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\phase}[2][]{\underline{/#2}}}
@@ -73662,8 +75194,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% {\box0}%
{
% \parbox[t]{\the\@tempdima}{%
-\LWR@traceinfo{sfsubcap B1}% lwarp
- \LWR@figcaption% lwarp
+\LWR@traceinfo{sfsubcap B1}% lwarp
+ \LWR@figcaption% lwarp
\caption@make
{\@nameuse{sub\@captype name}}%
{\@nameuse{thesub\@captype}}%
@@ -73671,8 +75203,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
% \changes{v0.45}{2017/12/18}{\pkg{subfig}: Fix for subcaption end tag.}
% \begin{macrocode}
- \endLWR@figcaption% lwarp
-\LWR@traceinfo{sfsubcap B2}% lwarp
+ \endLWR@figcaption% lwarp
+\LWR@traceinfo{sfsubcap B2}% lwarp
% }%
}%
{\dimen@\ht0%
@@ -78165,19 +79697,10 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% Is used by \pkg{trivfloat} to correct float chapter numbers,
% but is not needed for \pkg{lwarp}.
-% \codehtml
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
-
% \begin{macrocode}
\AtBeginDocument{\DeclareDocumentCommand{\tfl@chapter@fix}{m m}{}}
% \end{macrocode}
-% \begin{macrocode}
-\end{warpHTML}
-% \end{macrocode}
-
% \subsection{Combining \cs{newfloat}, \cs{trivfloat}, and \pkg{algorithmicx}}
% \label{sec:combiningfloats}
@@ -78185,10 +79708,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \gindex{trivfloat=\pkg{trivfloat}>with \pkg{newfloat}, \pkg{algorithmicx}}
% \gindex{algorithmicx=\pkg{algorithmicx}>with \pkg{newfloat}, \pkg{trivfloat}}
%
-% \codeall
-% \begin{macrocode}
-\begin{warpall}
-% \end{macrocode}
% \textred{For both print and \HTML\ output:}
%
@@ -78215,9 +79734,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \makeatletter
% \end{Verbatim}
-% \begin{macrocode}
-\end{warpall}
-% \end{macrocode}
% \iffalse
%</trivfloat>
@@ -78340,13 +79856,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \codehtml
%
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
-
\LWR@ProvidesPackagePass{txfonts}[2008/01/22]
% \end{macrocode}
%
% For \brand{MathJax}:
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{txfonts}
@@ -78359,6 +79875,63 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \fi
%
%
+%
+% \iffalse
+%<*txgreeks>
+% \fi
+%
+% \part{lwarp-txgreeks.sty}
+%
+% \section{txgreeks}
+%
+% \credits{Jean-Fran\c{c}ois Burnol}
+%
+% \DescribePackage{txgreeks}
+% \pkg{txgreeks} is used as-is for \SVG\ math, and is
+% emulated for \brand{MathJax}.
+%
+% The \brand{MathJax} emulation honors all package options.
+%
+% \changes{v0.891}{2020/09/14}{\pkg{txgreeks}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{txgreeks}[2011/03/16]
+
+\LWR@infoprocessingmathjax{txgreeks}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
+\begin{warpMathJax}
+\iftgs@uplower% upright lowercase Greek
+ \LWR@mathjax@addgreek@l@up{}{}
+ \LWR@mathjax@addgreek@l@it{other}{}
+\else% italic lowercase Greek
+ \LWR@mathjax@addgreek@l@it{}{}
+ \LWR@mathjax@addgreek@l@up{other}{}
+\fi
+
+\iftgs@itupper % italic uppercase Greek
+ \LWR@mathjax@addgreek@u@it*{}{}
+ \LWR@mathjax@addgreek@u@up*{other}{}
+ \LWR@mathjax@addgreek@u@up*{var}{}
+\else% upright uppercase Greek
+ \LWR@mathjax@addgreek@u@up*{}{}
+ \LWR@mathjax@addgreek@u@it*{other}{}
+ \LWR@mathjax@addgreek@u@it*{var}{}
+\fi
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</txgreeks>
+% \fi
+%
+%
+%
% \iffalse
%<*typearea>
% \fi
@@ -78669,11 +80242,53 @@ 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 may not be read correctly,
-% such as bold letters,
-% and so are not read correctly by \prog{pdftotext} for \HTML.
+% If the document source includes embedded Unicode characters,
+% \trouble[\brand{MathJax}]{unicode-math=\pkg{unicode-math}}
+% \trouble{mathjax=\brand{MathJax}>unicode-math=\pkg{unicode-math}}
+% these will not be reproduced correctly for \prog{pdftotext},
+% so \brand{MathJax} will not work.
+%
% Symbol font commands are emulated, but not all combinations are
-% supported by MathJax.
+% supported by MathJax, especially with the dedicated Greek macros.
+% Symbol macros such as \cs{symbfsf} may not be sans or bold.
+% For Greek, use the Unicode equivalent, if necessary.
+%
+% The \brand{MathJax} emulation does not change with the use of \cs{mathversion}.
+% \watchout[\cs{mathversion}]
+% Whatever emulation is established at the begin of the document will remain.
+%
+% The option \optn{sans-style} honors \optn{upright} and \optn{italic},
+% but \optn{italic} will not be sans, in order to support Greek macros.
+%
+% Greek macros such as \cs{alpha} respond to the \optn{math-style} option.
+% Latin symbols does not, per \brand{MathJax} limitations, unless placed inside
+% \cs{symbit} or similar.
+%
+% Macros from the categories \cs{mathopen}, \cs{mathclose}, and \cs{mathfence}
+% \watchout[\cs{left}, \cs{right}]
+% are emulated, although some do not accept \cs{left} and \cs{right}.
+%
+% Also emulated are macros from the categories
+% \cs{mathpunct}, \cs{mathover}, \cs{mathunder}, \cs{mathaccent},
+% \cs{mathbotaccent}, and \cs{mathop}.
+%
+% The individual \pkg{unicode-math} macros
+% of categories \cs{mathbin}, \cs{mathord}, and \cs{mathrel}
+% are not supported by \brand{MathJax},
+% as there are more than two thounsand of them, but they may be added as needed.
+% Place the following in the document preamble after loading \pkg{unicode-math},
+% including a definition for each macro which is used in the document
+% but undefined in \brand{MathJax}:
+%
+% \begin{sourceverb}
+% \begin{warpMathJax}
+% \CustomizeMathJax{\newcommand{\uplus}{\mathbin{\unicode{x0228E}}}}
+% ...
+% \end{warpMathJax}
+% \end{sourceverb}
+%
+% Use \cs{mathrel}, \cs{mathbin}, etc. depending on the category of each macro.
+% For a list of macro names and symbols, see \cmds{texdoc unimath-symbols}.
%
% \changes{v0.79}{2020/01/30}{\pkg{unicode-math}: Added.}
% \changes{v0.80}{2020/02/15}{\pkg{unicode-math}: Improved \brand{MathJax}.}
@@ -78692,6 +80307,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% ^^A math-sans-serif-bold-italic | math-monospace | math-initial | math-tailed |
% ^^A math-looped | math-stretched
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{unicode-math}
@@ -78703,17 +80320,18 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\CustomizeMathJax{\let\symcal\mathcal}
\CustomizeMathJax{\let\symscr\mathscr}
\CustomizeMathJax{\let\symfrak\mathfrak}
+
\CustomizeMathJax{\let\symsfup\mathsf}
-% \CustomizeMathJax{\let\symsfit\mathit}% not sans
-\CustomizeMathJax{\newcommand{\symsfit}[1]{%
- \mmlToken{mi}[mathvariant="sans-serif-italic"]{#1}}%
-}
+\CustomizeMathJax{\let\symsfit\mathit}% not sans
+% \CustomizeMathJax{\newcommand{\symsfit}[1]{%
+% \mmlToken{mi}[mathvariant="sans-serif-italic"]{#1}}% not greek
+% }
-% \CustomizeMathJax{\let\symbfsf\mathbf}% not sans
-\CustomizeMathJax{\newcommand{\symbfsf}[1]{%
- \mmlToken{mi}[mathvariant="bold-sans-serif"]{#1}}%
-}
+\CustomizeMathJax{\let\symbfsf\mathbf}% not sans
+% \CustomizeMathJax{\newcommand{\symbfsf}[1]{%
+% \mmlToken{mi}[mathvariant="bold-sans-serif"]{#1}}% not greek
+% }
\CustomizeMathJax{\let\symbfup\mathbf}
\CustomizeMathJax{\newcommand{\symbfit}[1]{\boldsymbol{#1}}}
@@ -78721,30 +80339,47 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\CustomizeMathJax{\let\symbfscr\mathscr}% not bold
% \CustomizeMathJax{\newcommand{\symbfscr}[1]{
-% \mmlToken{mi}[mathvariant="math-bold-script"]{#1}}
+% \mmlToken{mi}[mathvariant="math-bold-script"]{#1}}% not greek
% }
\CustomizeMathJax{\let\symbffrak\mathfrak}% not bold
% \CustomizeMathJax{\newcommand{\symbffrak}[1]{%
-% \mmlToken{mi}[mathvariant="math-bold-fraktur"]{#1}}%
+% \mmlToken{mi}[mathvariant="math-bold-fraktur"]{#1}}% not greek
% }
-% \CustomizeMathJax{\let\symbfsfup\mathbf}% not sans
-\CustomizeMathJax{\newcommand{\symbfsfup}[1]{%
- \mmlToken{mi}[mathvariant="bold-sans-serif"]{#1}}%
-}
+\CustomizeMathJax{\let\symbfsfup\mathbf}% not sans
+% \CustomizeMathJax{\newcommand{\symbfsfup}[1]{%
+% \mmlToken{mi}[mathvariant="bold-sans-serif"]{#1}}% not greek
+% }
-% \CustomizeMathJax{\let\symbfsfit\mathit}% not bold nor sans
-\CustomizeMathJax{\newcommand{\symbfsfit}[1]{%
- \mmlToken{mi}[mathvariant="sans-serif-bold-italic"]{#1}}%
-}
+\CustomizeMathJax{\newcommand{\symbfsfit}[1]{\boldsymbol{#1}}}% not sans
+% \CustomizeMathJax{\newcommand{\symbfsfit}[1]{%
+% \mmlToken{mi}[mathvariant="sans-serif-bold-italic"]{#1}}% not greek
+% }
% Duplicates below are commented out.
\CustomizeMathJax{\let\symup\mathrm}
\CustomizeMathJax{\let\symbf\mathbf}% \symbfup defined above
\CustomizeMathJax{\let\symit\mathit}
% \CustomizeMathJax{\let\symbfit\mathit}% not bold
-\CustomizeMathJax{\let\symsf\mathsf}
+% \end{macrocode}
+%
+% \changes{v0.891}{2020/09/21}{\pkg{unicode-math}: Added \optn{sans-style}.}
+% \begin{macrocode}
+\ExplSyntaxOn
+\AtBeginDocument{
+\bool_if:NTF \g__um_sfliteral_bool
+ {\CustomizeMathJax{\let\symsf\symsfup}}
+ {
+ \bool_if:NTF \g__um_upsans_bool
+ {\CustomizeMathJax{\let\symsf\symsfup}}
+ {\CustomizeMathJax{\let\symsf\symsfit}}
+ }
+}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \begin{macrocode}
% \CustomizeMathJax{\let\symbfsfup\mathbf}% not sans
% \CustomizeMathJax{\let\symsfit\mathit}% not sans
% \CustomizeMathJax{\let\symbfsfit\mathit}% not bold nor sans
@@ -78755,6 +80390,205 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \CustomizeMathJax{\let\symbfscr\mathscr}% not bold
% \CustomizeMathJax{\let\symfrak\mathfrak}
\CustomizeMathJax{\let\symbffrac\mathbffrac}
+% \end{macrocode}
+%
+% Some symbol categories defined by \pkg{unicode-math},
+% in case they are used inside custom macros:
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\mathfence}[1]{\mathord{#1}}}
+\CustomizeMathJax{\newcommand{\mathover}[1]{#1}}
+\CustomizeMathJax{\newcommand{\mathunder}[1]{#1}}
+\CustomizeMathJax{\newcommand{\mathaccent}[1]{#1}}
+\CustomizeMathJax{\newcommand{\mathbotaccent}[1]{#1}}
+\CustomizeMathJax{\newcommand{\mathalpha}[1]{\mathord{#1}}}
+% \end{macrocode}
+%
+% \optn{math-style} is one of: \optn{ISO}, \optn{TeX}, \optn{french}, \optn{upright},
+% or \optn{literal},
+% which set |\g__um_upGreek_bool| and |\g__um_upgreek_bool|.
+%
+% \changes{v0.80}{2020/02/15}{\pkg{unicode-math}: Improved \brand{MathJax}.}
+% \begin{macrocode}
+\ExplSyntaxOn
+
+\AtBeginDocument{
+\bool_if:NTF \g__um_upGreek_bool
+ {\LWR@mathjax@addgreek@u@up*{}{}}
+ {\LWR@mathjax@addgreek@u@it*{}{}}
+
+\bool_if:NTF \g__um_upgreek_bool
+ {\LWR@mathjax@addgreek@l@up{}{}}
+ {\LWR@mathjax@addgreek@l@it{}{}}
+}
+
+\LWR@mathjax@addgreek@u@up*{up}{}
+\LWR@mathjax@addgreek@u@it*{it}{}
+\LWR@mathjax@addgreek@l@up{up}{}
+\LWR@mathjax@addgreek@l@it{it}{}
+
+\ExplSyntaxOff
+
+\CustomizeMathJax{\let\lparen(}
+\CustomizeMathJax{\let\rparen)}
+\CustomizeMathJax{\newcommand{\cuberoot}[1]{\,{}^3\!\!\sqrt{#1}}\,}
+\CustomizeMathJax{\newcommand{\fourthroot}[1]{\,{}^4\!\!\sqrt{#1}}\,}
+
+\CustomizeMathJax{\let\lbrbrak[}
+\CustomizeMathJax{\let\rbrbrak]}
+
+\CustomizeMathJax{\newcommand{\lbag}{\mathopen{\unicode{x027C5}}}}% not \left
+\CustomizeMathJax{\newcommand{\rbag}{\mathclose{\unicode{x027C6}}}}% not \right
+
+\CustomizeMathJax{\newcommand{\longdivision}[1]{\mathord{\unicode{x027CC}#1}}}
+
+\CustomizeMathJax{\let\lBrack[}
+\CustomizeMathJax{\let\rBrack]}
+\CustomizeMathJax{\let\lAngle\langle}
+\CustomizeMathJax{\let\rAngle\rangle}
+
+% not in MathJax font:
+% \CustomizeMathJax{\newcommand{\Lbrbrak}{\mathopen{\unicode{x027EC}}}}% not \left
+% \CustomizeMathJax{\newcommand{\Rbrbrak}{\mathopen{\unicode{x027ED}}}}% not \left
+\CustomizeMathJax{\let\Lbrbrak[}
+\CustomizeMathJax{\let\Rbrbrak]}
+
+\CustomizeMathJax{\let\lBrace\{}
+\CustomizeMathJax{\let\rBrace\}}
+
+\CustomizeMathJax{\let\lParen(}
+\CustomizeMathJax{\let\rParen)}
+
+% \CustomizeMathJax{\let\llparenthesis(}
+% \CustomizeMathJax{\let\rrparenthesis)}
+\CustomizeMathJax{\newcommand{\llparenthesis}{\mathopen{\unicode{x02987}}}}% not \left
+\CustomizeMathJax{\newcommand{\rrparenthesis}{\mathopen{\unicode{x02988}}}}% not \right
+%
+% \CustomizeMathJax{\let\llangle\langle}
+% \CustomizeMathJax{\let\rrangle\rangle}
+\CustomizeMathJax{\newcommand{\llangle}{\mathopen{\unicode{x02989}}}}% not \left
+\CustomizeMathJax{\newcommand{\rrangle}{\mathopen{\unicode{x0298A}}}}% not \right
+
+% \CustomizeMathJax{\let\lbrackubar[}
+% \CustomizeMathJax{\let\rbrackubar]}
+\CustomizeMathJax{\newcommand{\lbrackubar}{\mathopen{\unicode{x0298B}}}}% not \left
+\CustomizeMathJax{\newcommand{\rbrackubar}{\mathopen{\unicode{x0298C}}}}% not \right
+
+% \CustomizeMathJax{\let\lbrackultick[}
+% \CustomizeMathJax{\let\rbracklrtick]}
+\CustomizeMathJax{\newcommand{\lbrackultick}{\mathopen{\unicode{x0298D}}}}% not \left
+\CustomizeMathJax{\newcommand{\rbracklrtick}{\mathopen{\unicode{x0298E}}}}% not \right
+
+% \CustomizeMathJax{\let\lbracklltick[}
+% \CustomizeMathJax{\let\rbrackurtick]}
+\CustomizeMathJax{\newcommand{\lbracklltick}{\mathopen{\unicode{x0298F}}}}% not \left
+\CustomizeMathJax{\newcommand{\rbrackurtick}{\mathopen{\unicode{x02990}}}}% not \right
+
+% \CustomizeMathJax{\let\langledot\langle}
+% \CustomizeMathJax{\let\rangledot\rangle}
+\CustomizeMathJax{\newcommand{\langledot}{\mathopen{\unicode{x02991}}}}% not \left
+\CustomizeMathJax{\newcommand{\rangledot}{\mathopen{\unicode{x02992}}}}% not \right
+
+% \CustomizeMathJax{\let\lparenless(}
+% \CustomizeMathJax{\let\rparengtr)}
+\CustomizeMathJax{\newcommand{\lparenless}{\mathopen{\unicode{x02993}}}}% not \left
+\CustomizeMathJax{\newcommand{\rparengtr}{\mathopen{\unicode{x02994}}}}% not \right
+
+% \CustomizeMathJax{\let\Lparengtr(}
+% \CustomizeMathJax{\let\Rparenless)}
+\CustomizeMathJax{\newcommand{\Lparengtr}{\mathopen{\unicode{x02995}}}}% not \left
+\CustomizeMathJax{\newcommand{\Rparenless}{\mathopen{\unicode{x02996}}}}% not \right
+
+% \CustomizeMathJax{\let\lblkbrbrak[}
+% \CustomizeMathJax{\let\rblkbrbrak]}
+\CustomizeMathJax{\newcommand{\lblkbrbrak}{\mathopen{\unicode{x02997}}}}% not \left
+\CustomizeMathJax{\newcommand{\rblkbrbrak}{\mathopen{\unicode{x02998}}}}% not \right
+
+% \CustomizeMathJax{\let\lvzigzag|}
+% \CustomizeMathJax{\let\rvzigzag|}
+\CustomizeMathJax{\newcommand{\lvzigzag}{\mathopen{\unicode{x029D8}}}}% not \left
+\CustomizeMathJax{\newcommand{\rvzigzag}{\mathopen{\unicode{x029D9}}}}% not \right
+
+% \CustomizeMathJax{\let\Lvzigzag|}
+% \CustomizeMathJax{\let\Rvzigzag|}
+\CustomizeMathJax{\newcommand{\Lvzigzag}{\mathopen{\unicode{x029DA}}}}% not \left
+\CustomizeMathJax{\newcommand{\Rvzigzag}{\mathopen{\unicode{x029DB}}}}% not \right
+
+% \CustomizeMathJax{\let\lcurvyangle\langle}
+% \CustomizeMathJax{\let\rcurvyangle\rangle}
+\CustomizeMathJax{\newcommand{\lcurvyangle}{\mathopen{\unicode{x029FC}}}}% not \left
+\CustomizeMathJax{\newcommand{\rcurvyangle}{\mathopen{\unicode{x029FD}}}}% not \right
+
+\CustomizeMathJax{\newcommand{\Vvert}{\mathord{\unicode{x02980}}}}% not \left, etc.
+
+\CustomizeMathJax{\newcommand{\mathcomma}{,}}
+\CustomizeMathJax{\newcommand{\mathcolon}{:}}
+\CustomizeMathJax{\newcommand{\mathsemicolon}{;}}
+
+\CustomizeMathJax{\newcommand{\overbracket}[1]{\mathinner{\overline{\ulcorner{#1}\urcorner}}}}
+\CustomizeMathJax{\newcommand{\underbracket}[1]{\mathinner{\underline{\llcorner{#1}\lrcorner}}}}
+
+\CustomizeMathJax{\newcommand{\overbar}[1]{\mathord{#1\unicode{x00305}}}}
+\CustomizeMathJax{\newcommand{\ovhook}[1]{\mathord{#1\unicode{x00309}}}}
+\CustomizeMathJax{\newcommand{\ocirc}[1]{\mathord{#1\unicode{x0030A}}}}
+\CustomizeMathJax{\newcommand{\candra}[1]{\mathord{#1\unicode{x00310}}}}
+\CustomizeMathJax{\newcommand{\oturnedcomma}[1]{\mathord{#1\unicode{x00312}}}}
+\CustomizeMathJax{\newcommand{\ocommatopright}[1]{\mathord{#1\unicode{x00315}}}}
+\CustomizeMathJax{\newcommand{\droang}[1]{\mathord{#1\unicode{x0031A}}}}
+\CustomizeMathJax{\newcommand{\leftharpoonaccent}[1]{\mathord{#1\unicode{x020D0}}}}
+\CustomizeMathJax{\newcommand{\rightharpoonaccent}[1]{\mathord{#1\unicode{x020D1}}}}
+\CustomizeMathJax{\newcommand{\vertoverlay}[1]{\mathord{#1\unicode{x020D2}}}}
+\CustomizeMathJax{\newcommand{\leftarrowaccent}[1]{\mathord{#1\unicode{x020D0}}}}
+\CustomizeMathJax{\newcommand{\annuity}[1]{\mathord{#1\unicode{x020E7}}}}
+\CustomizeMathJax{\newcommand{\widebridgeabove}[1]{\mathord{#1\unicode{x020E9}}}}
+\CustomizeMathJax{\newcommand{\asteraccent}[1]{\mathord{#1\unicode{x020F0}}}}
+\CustomizeMathJax{\newcommand{\threeunderdot}[1]{\mathord{#1\unicode{x020E8}}}}
+
+\CustomizeMathJax{\newcommand{\Bbbsum}{\mathop{\unicode{x2140}}\limits}}
+\CustomizeMathJax{\newcommand{\oiint}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\oiiint}{\mathop{\unicode{x2230}}\limits}}
+\CustomizeMathJax{\newcommand{\intclockwise}{\mathop{\unicode{x2231}}\limits}}
+\CustomizeMathJax{\newcommand{\ointclockwise}{\mathop{\unicode{x2232}}\limits}}
+\CustomizeMathJax{\newcommand{\ointctrclockwise}{\mathop{\unicode{x2233}}\limits}}
+\CustomizeMathJax{\newcommand{\varointclockwise}{\mathop{\unicode{x2232}}\limits}}
+\CustomizeMathJax{\newcommand{\leftouterjoin}{\mathop{\unicode{x27D5}}\limits}}
+\CustomizeMathJax{\newcommand{\rightouterjoin}{\mathop{\unicode{x27D6}}\limits}}
+\CustomizeMathJax{\newcommand{\fullouterjoin}{\mathop{\unicode{x27D7}}\limits}}
+\CustomizeMathJax{\newcommand{\bigbot}{\mathop{\unicode{x27D8}}\limits}}
+\CustomizeMathJax{\newcommand{\bigtop}{\mathop{\unicode{x27D9}}\limits}}
+\CustomizeMathJax{\newcommand{\xsol}{\mathop{\unicode{x29F8}}\limits}}
+\CustomizeMathJax{\newcommand{\xbsol}{\mathop{\unicode{x29F9}}\limits}}
+\CustomizeMathJax{\newcommand{\bigcupdot}{\mathop{\unicode{x2A03}}\limits}}
+\CustomizeMathJax{\newcommand{\bigsqcap}{\mathop{\unicode{x2A05}}\limits}}
+\CustomizeMathJax{\newcommand{\conjquant}{\mathop{\unicode{x2A07}}\limits}}
+\CustomizeMathJax{\newcommand{\disjquant}{\mathop{\unicode{x2A08}}\limits}}
+\CustomizeMathJax{\newcommand{\bigtimes}{\mathop{\unicode{x2A09}}\limits}}
+\CustomizeMathJax{\newcommand{\modtwosum}{\mathop{\unicode{x2A0A}}\limits}}
+\CustomizeMathJax{\newcommand{\sumint}{\mathop{\unicode{x2A0B}}\limits}}
+\CustomizeMathJax{\newcommand{\intbar}{\mathop{\unicode{x2A0D}}\limits}}
+\CustomizeMathJax{\newcommand{\intBar}{\mathop{\unicode{x2A0E}}\limits}}
+\CustomizeMathJax{\newcommand{\fint}{\mathop{\unicode{x2A0F}}\limits}}
+\CustomizeMathJax{\newcommand{\cirfnint}{\mathop{\unicode{x2A10}}\limits}}
+\CustomizeMathJax{\newcommand{\awint}{\mathop{\unicode{x2A11}}\limits}}
+\CustomizeMathJax{\newcommand{\rppolint}{\mathop{\unicode{x2A12}}\limits}}
+\CustomizeMathJax{\newcommand{\scpolint}{\mathop{\unicode{x2A13}}\limits}}
+\CustomizeMathJax{\newcommand{\npolint}{\mathop{\unicode{x2A14}}\limits}}
+\CustomizeMathJax{\newcommand{\pointint}{\mathop{\unicode{x2A15}}\limits}}
+\CustomizeMathJax{\newcommand{\sqint}{\mathop{\unicode{x2A16}}\limits}}
+\CustomizeMathJax{\newcommand{\intlarhk}{\mathop{\unicode{x2A17}}\limits}}
+\CustomizeMathJax{\newcommand{\intx}{\mathop{\unicode{x2A18}}\limits}}
+\CustomizeMathJax{\newcommand{\intcap}{\mathop{\unicode{x2A19}}\limits}}
+\CustomizeMathJax{\newcommand{\intcup}{\mathop{\unicode{x2A1A}}\limits}}
+\CustomizeMathJax{\newcommand{\upint}{\mathop{\unicode{x2A1B}}\limits}}
+\CustomizeMathJax{\newcommand{\lowint}{\mathop{\unicode{x2A1C}}\limits}}
+\CustomizeMathJax{\newcommand{\bigtriangleleft}{\mathop{\unicode{x2A1E}}\limits}}
+\CustomizeMathJax{\newcommand{\zcmp}{\mathop{\unicode{x2A1F}}\limits}}
+\CustomizeMathJax{\newcommand{\zpipe}{\mathop{\unicode{x2A20}}\limits}}
+\CustomizeMathJax{\newcommand{\zproject}{\mathop{\unicode{x2A21}}\limits}}
+\CustomizeMathJax{\newcommand{\biginterleave}{\mathop{\unicode{x2AFC}}\limits}}
+\CustomizeMathJax{\newcommand{\bigtalloblong}{\mathop{\unicode{x2AFF}}\limits}}
+\CustomizeMathJax{\newcommand{\arabicmaj}{\mathop{\unicode{x1EEF0}}\limits}}
+\CustomizeMathJax{\newcommand{\arabichad}{\mathop{\unicode{x1EEF1}}\limits}}
+
\end{warpMathJax}
% \end{macrocode}
%
@@ -78823,10 +80657,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
%
% For Mathjax:
+% \changes{v0.891}{2020/09/08}{\pkg{units}: Added \cs{mathinner}, improved fraction.}
% \begin{macrocode}
\begin{warpMathJax}
-\CustomizeMathJax{\newcommand{\unit}[2][]{#1 #2}}
-\CustomizeMathJax{\newcommand{\unitfrac}[3][]{#1 #2/#3}}
+\CustomizeMathJax{\newcommand{\unit}[2][]{#1 \mathinner{#2}}}
+\CustomizeMathJax{\newcommand{\unitfrac}[3][]{#1 \mathinner{{}^{#2}\!/\!_{#3}}}}
\end{warpMathJax}
% \end{macrocode}
@@ -78922,13 +80757,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \codehtml
%
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
-
\LWR@ProvidesPackagePass{upgreek}[2003/02/12]
% \end{macrocode}
%
% For \brand{MathJax}:
% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+
\begin{warpMathJax}
\LWR@infoprocessingmathjax{upgreek}
@@ -79181,7 +81016,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\setlength{\leftmargini}{\HTMLleftmargini}
}{}
\LWR@forcenewpage
-\LWR@atbeginverbatim{3}{verse}%
+\LWR@atbeginverbatim{verse}%
}
% \end{macrocode}
% After the end of the \env{verse} environment, which places the \element{pre} tag at the
@@ -79189,7 +81024,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \begin{macrocode}
\AtEndEnvironment{verse}{%
\leavevmode%
-\LWR@afterendverbatim{1}%
+\LWR@afterendverbatim%
}
% \end{macrocode}
% Patch to place poemtitle inside an \HTML\ \element{span} of class |poemtitle|:
@@ -79749,7 +81584,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
%
% \begin{macrocode}
-\begin{warpHTML}
\ifbool{mathjax}{
% For the hidden print version in the HTML:
\newcommand{\Arrow}[2][]{}
@@ -79806,7 +81640,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
}
\AfterEndEnvironment{DispWithArrows*}{\end{lateximage}\end{BlockClass}}
}
-\end{warpHTML}
\begin{warpMathJax}
\CustomizeMathJax{\newenvironment{WithArrows}[1][]{\begin{aligned}}{\end{aligned}}}
@@ -80104,9 +81937,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@ProvidesPackagePass{xcolor}[2016/05/11]
% \end{macrocode}
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
%
%
% \subsection{Remembering and restoring original definitions}
@@ -80649,11 +82479,7 @@ height:\LWR@printlength{\LWR@tempheight}%
}
% \end{macrocode}
% \end{noindmacro}
-
%
-% \begin{macrocode}
-\end{warpHTML}
-% \end{macrocode}
%
% \iffalse
%</xcolor>
@@ -80890,11 +82716,6 @@ height:\LWR@printlength{\LWR@tempheight}%
% In math mode, which will appear inside a \env{lateximage}, no adjustments
% are necessary.
-% \codeall
-% \begin{macrocode}
-\begin{warpall}
-% \end{macrocode}
-
% \begin{macro}{\xfracHTMLfontsize}
% \changes{v0.19}{2016/06/06}{Added.}
@@ -80905,16 +82726,6 @@ height:\LWR@printlength{\LWR@tempheight}%
% \end{macrocode}
% \end{macro}
-% \begin{macrocode}
-\end{warpall}
-% \end{macrocode}
-
-
-% \codehtml
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
-
% Instances of \pkg{xfrac} for various font choices:
% \margintag{instances}
@@ -81017,9 +82828,6 @@ height:\LWR@printlength{\LWR@tempheight}%
\end{warpMathJax}
% \end{macrocode}
-% \begin{macrocode}
-\end{warpHTML}
-% \end{macrocode}
%
% \iffalse
%</xfrac>
@@ -84044,11 +85852,11 @@ height:\LWR@printlength{\LWR@tempheight}%
\xdef\LWR@customizedMathJax{%
\LWR@customizedMathJax%
\LWRbackslash(%
- \LWRbackslash newcommand\LWRleftbrace\LWRbackslash%
+ \LWRbackslash def\LWRbackslash%
#3% prefix
\LWR@tempone%name
#4% postfix
- \LWRrightbrace\LWRleftbrace%
+ \LWRleftbrace%
}%
\IfBooleanTF{#1}{%
\xdef\LWR@customizedMathJax{%
@@ -84460,6 +86268,7 @@ height:\LWR@printlength{\LWR@tempheight}%
%
%
% ^^A *common-mathjax-newpxtxmath
+% ^^A *newpxtxmath
%
% \iffalse
%<*common-mathjax-newpxtxmath>
@@ -84476,16 +86285,17 @@ height:\LWR@printlength{\LWR@tempheight}%
% for \brand{MathJax}.
%
% \changes{v0.89}{2020/08/31}{\pkg{lwarp-common-mathjax-newpxtxmath}: Added.}
+% \changes{v0.891}{2020/09/20}{\pkg{lwarp-common-mathjax-newpxtxmath}: Reverse factored out Greek, non-\brand{Unicode}.}
%
% \codehtml
%
% \begin{macrocode}
-\ProvidesPackage{lwarp-common-mathjax-newpxtxmath}[2020/08/31]
+\ProvidesPackage{lwarp-common-mathjax-newpxtxmath}[2020/09/20]
% \end{macrocode}
%
% For \brand{MathJax}:
% \begin{macrocode}
-\LWR@origRequirePackage{lwarp-common-mathjax-letters}
+\LWR@origRequirePackage{lwarp-common-mathjax-nonunicode}
\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
\begin{warpMathJax}
@@ -84503,10 +86313,6 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\let\smrbrace\}}
\CustomizeMathJax{\newcommand{\Perp}{\mathrel{\unicode{x02AEB}}}}
\CustomizeMathJax{\newcommand{\nPerp}{\mathrel{\not{\!\unicode{x02AEB}}}}}
-\CustomizeMathJax{\newcommand{\lambdabar}{%
- \mathord{\LWRoverlaysymbols{\raise{.5ex}{-}}{\lambda}}%
-}}
-\CustomizeMathJax{\newcommand{\lambdaslash}{\mathord{\unicode{x019B}}}}
\CustomizeMathJax{\newcommand{\Zbar}{\mathord{\unicode{x01B5}}}}
\CustomizeMathJax{\newcommand{\Angstrom}{\mathord{\unicode{x212B}}}}
\CustomizeMathJax{\newcommand{\Euler}{\mathord{\unicode{x2107}}}}
@@ -84516,6 +86322,11 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\newcommand{\circledplus}{\mathbin{\unicode{x2295}}}}
\CustomizeMathJax{\newcommand{\circledminus}{\mathbin{\unicode{x2296}}}}
\CustomizeMathJax{\newcommand{\circledtimes}{\mathbin{\unicode{x2297}}}}
+% \end{macrocode}
+% \changes{v0.891}{2020/09/19}{\pkg{lwarp-common-mathjax-newpxtxmath}: Expanded for \pkg{kpfonts}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\circledslash}{\mathbin{\unicode{x2298}}}}
+%
\CustomizeMathJax{\newcommand{\circleddot}{\mathbin{\unicode{x2299}}}}
\CustomizeMathJax{\let\overgroup\overparen}
\CustomizeMathJax{\let\overgroupra\overrightarrow}
@@ -84528,104 +86339,98 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\newcommand{\vv}{\ifstar\LWRvvstar\overrightarrow}}
%
\CustomizeMathJax{\let\smallintsl\smallint}
-\CustomizeMathJax{\newcommand{\smalliintsl}{\mathop{\unicode{x222C}}}}
-\CustomizeMathJax{\newcommand{\smalliiintsl}{\mathop{\unicode{x222D}}}}
-\CustomizeMathJax{\newcommand{\smalliiiintsl}{\mathop{\unicode{x2A0C}}}}
-\CustomizeMathJax{\newcommand{\smallointsl}{\mathop{\unicode{x222E}}}}
-\CustomizeMathJax{\newcommand{\smalloiintsl}{\mathop{\unicode{x222F}}}}
-\CustomizeMathJax{\newcommand{\smalloiiintsl}{\mathop{\unicode{x2230}}}}
-\CustomizeMathJax{\newcommand{\smallvarointclockwisesl}{\mathop{\unicode{x2232}}}}
-\CustomizeMathJax{\newcommand{\smallointctrclockwisesl}{\mathop{\unicode{x2233}}}}
-\CustomizeMathJax{\newcommand{\smallsumintsl}{\mathop{\unicode{x2A0B}}}}
-\CustomizeMathJax{\newcommand{\smallfintsl}{\mathop{\unicode{x2A0F}}}}
-\CustomizeMathJax{\newcommand{\smallsqintsl}{\mathop{\unicode{x2A16}}}}
+\CustomizeMathJax{\newcommand{\smalliintsl}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiintsl}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiiintsl}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\newcommand{\smallointsl}{\mathop{\unicode{x222E}}\limits}}
+\CustomizeMathJax{\newcommand{\smalloiintsl}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\smalloiiintsl}{\mathop{\unicode{x2230}}\limits}}
+\CustomizeMathJax{\newcommand{\smallvarointclockwisesl}{\mathop{\unicode{x2232}}\limits}}
+\CustomizeMathJax{\newcommand{\smallointctrclockwisesl}{\mathop{\unicode{x2233}}\limits}}
+\CustomizeMathJax{\newcommand{\smallsumintsl}{\mathop{\unicode{x2A0B}}\limits}}
+\CustomizeMathJax{\newcommand{\smallfintsl}{\mathop{\unicode{x2A0F}}\limits}}
+\CustomizeMathJax{\newcommand{\smallsqintsl}{\mathop{\unicode{x2A16}}\limits}}
%
\CustomizeMathJax{\let\smallintup\smallint}
-\CustomizeMathJax{\newcommand{\smalliintup}{\mathop{\unicode{x222C}}}}
-\CustomizeMathJax{\newcommand{\smalliiintup}{\mathop{\unicode{x222D}}}}
-\CustomizeMathJax{\newcommand{\smalliiiintup}{\mathop{\unicode{x2A0C}}}}
-\CustomizeMathJax{\newcommand{\smallointup}{\mathop{\unicode{x222E}}}}
-\CustomizeMathJax{\newcommand{\smalloiintup}{\mathop{\unicode{x222F}}}}
-\CustomizeMathJax{\newcommand{\smalloiiintup}{\mathop{\unicode{x2230}}}}
-\CustomizeMathJax{\newcommand{\smallvarointclockwiseup}{\mathop{\unicode{x2232}}}}
-\CustomizeMathJax{\newcommand{\smallointctrclockwiseup}{\mathop{\unicode{x2233}}}}
-\CustomizeMathJax{\newcommand{\smallsumintup}{\mathop{\unicode{x2A0B}}}}
-\CustomizeMathJax{\newcommand{\smallfintup}{\mathop{\unicode{x2A0F}}}}
-\CustomizeMathJax{\newcommand{\smallsqintup}{\mathop{\unicode{x2A16}}}}
-%
-\CustomizeMathJax{\newcommand{\iint}{\mathop{\unicode{x222C}}}}
-\CustomizeMathJax{\newcommand{\iiint}{\mathop{\unicode{x222D}}}}
-\CustomizeMathJax{\newcommand{\iiiint}{\mathop{\unicode{x2A0C}}}}
-\CustomizeMathJax{\newcommand{\oiint}{\mathop{\unicode{x222F}}}}
-\CustomizeMathJax{\newcommand{\oiiint}{\mathop{\unicode{x2230}}}}
-\CustomizeMathJax{\newcommand{\varointclockwise}{\mathop{\unicode{x2232}}}}
-\CustomizeMathJax{\newcommand{\ointctrclockwise}{\mathop{\unicode{x2233}}}}
-\CustomizeMathJax{\newcommand{\sumint}{\mathop{\unicode{x2A0B}}}}
-\CustomizeMathJax{\newcommand{\fint}{\mathop{\unicode{x2A0F}}}}
-\CustomizeMathJax{\newcommand{\sqint}{\mathop{\unicode{x2A16}}}}
+\CustomizeMathJax{\newcommand{\smalliintup}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiintup}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\smalliiiintup}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\newcommand{\smallointup}{\mathop{\unicode{x222E}}\limits}}
+\CustomizeMathJax{\newcommand{\smalloiintup}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\smalloiiintup}{\mathop{\unicode{x2230}}\limits}}
+\CustomizeMathJax{\newcommand{\smallvarointclockwiseup}{\mathop{\unicode{x2232}}\limits}}
+\CustomizeMathJax{\newcommand{\smallointctrclockwiseup}{\mathop{\unicode{x2233}}\limits}}
+\CustomizeMathJax{\newcommand{\smallsumintup}{\mathop{\unicode{x2A0B}}\limits}}
+\CustomizeMathJax{\newcommand{\smallfintup}{\mathop{\unicode{x2A0F}}\limits}}
+\CustomizeMathJax{\newcommand{\smallsqintup}{\mathop{\unicode{x2A16}}\limits}}
+%
+\CustomizeMathJax{\newcommand{\iint}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\iiint}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\iiiint}{\mathop{\unicode{x2A0C}}\limits}}
+\CustomizeMathJax{\newcommand{\oiint}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\oiiint}{\mathop{\unicode{x2230}}\limits}}
+\CustomizeMathJax{\newcommand{\varointclockwise}{\mathop{\unicode{x2232}}\limits}}
+\CustomizeMathJax{\newcommand{\ointctrclockwise}{\mathop{\unicode{x2233}}\limits}}
+\CustomizeMathJax{\newcommand{\sumint}{\mathop{\unicode{x2A0B}}\limits}}
+\CustomizeMathJax{\newcommand{\fint}{\mathop{\unicode{x2A0F}}\limits}}
+\CustomizeMathJax{\newcommand{\sqint}{\mathop{\unicode{x2A16}}\limits}}
%
\CustomizeMathJax{\let\intsl\int}
-\CustomizeMathJax{\newcommand{\iintsl}{\mathop{\unicode{x222C}}}}
-\CustomizeMathJax{\newcommand{\iiintsl}{\mathop{\unicode{x222D}}}}
-\CustomizeMathJax{\newcommand{\iiiintsl}{\mathop{\unicode{x2A0C}}}}
+\CustomizeMathJax{\newcommand{\iintsl}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\iiintsl}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\iiiintsl}{\mathop{\unicode{x2A0C}}\limits}}
\CustomizeMathJax{\let\ointsl\oint}
-\CustomizeMathJax{\newcommand{\oiintsl}{\mathop{\unicode{x222F}}}}
-\CustomizeMathJax{\newcommand{\oiiintsl}{\mathop{\unicode{x2230}}}}
-\CustomizeMathJax{\newcommand{\varointclockwisesl}{\mathop{\unicode{x2232}}}}
-\CustomizeMathJax{\newcommand{\ointctrclockwisesl}{\mathop{\unicode{x2233}}}}
-\CustomizeMathJax{\newcommand{\sumintsl}{\mathop{\unicode{x2A0B}}}}
-\CustomizeMathJax{\newcommand{\fintsl}{\mathop{\unicode{x2A0F}}}}
-\CustomizeMathJax{\newcommand{\sqintsl}{\mathop{\unicode{x2A16}}}}
+\CustomizeMathJax{\newcommand{\oiintsl}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\oiiintsl}{\mathop{\unicode{x2230}}\limits}}
+\CustomizeMathJax{\newcommand{\varointclockwisesl}{\mathop{\unicode{x2232}}\limits}}
+\CustomizeMathJax{\newcommand{\ointctrclockwisesl}{\mathop{\unicode{x2233}}\limits}}
+\CustomizeMathJax{\newcommand{\sumintsl}{\mathop{\unicode{x2A0B}}\limits}}
+\CustomizeMathJax{\newcommand{\fintsl}{\mathop{\unicode{x2A0F}}\limits}}
+\CustomizeMathJax{\newcommand{\sqintsl}{\mathop{\unicode{x2A16}}\limits}}
%
\CustomizeMathJax{\let\intup\int}
-\CustomizeMathJax{\newcommand{\iintup}{\mathop{\unicode{x222C}}}}
-\CustomizeMathJax{\newcommand{\iiintup}{\mathop{\unicode{x222D}}}}
-\CustomizeMathJax{\newcommand{\iiiintup}{\mathop{\unicode{x2A0C}}}}
+\CustomizeMathJax{\newcommand{\iintup}{\mathop{\unicode{x222C}}\limits}}
+\CustomizeMathJax{\newcommand{\iiintup}{\mathop{\unicode{x222D}}\limits}}
+\CustomizeMathJax{\newcommand{\iiiintup}{\mathop{\unicode{x2A0C}}\limits}}
\CustomizeMathJax{\let\ointup\oint}
-\CustomizeMathJax{\newcommand{\oiintup}{\mathop{\unicode{x222F}}}}
-\CustomizeMathJax{\newcommand{\oiiintup}{\mathop{\unicode{x2230}}}}
-\CustomizeMathJax{\newcommand{\varointclockwiseup}{\mathop{\unicode{x2232}}}}
-\CustomizeMathJax{\newcommand{\ointctrclockwiseup}{\mathop{\unicode{x2233}}}}
-\CustomizeMathJax{\newcommand{\sumintup}{\mathop{\unicode{x2A0B}}}}
-\CustomizeMathJax{\newcommand{\fintup}{\mathop{\unicode{x2A0F}}}}
-\CustomizeMathJax{\newcommand{\sqintup}{\mathop{\unicode{x2A16}}}}
+\CustomizeMathJax{\newcommand{\oiintup}{\mathop{\unicode{x222F}}\limits}}
+\CustomizeMathJax{\newcommand{\oiiintup}{\mathop{\unicode{x2230}}\limits}}
+\CustomizeMathJax{\newcommand{\varointclockwiseup}{\mathop{\unicode{x2232}}\limits}}
+\CustomizeMathJax{\newcommand{\ointctrclockwiseup}{\mathop{\unicode{x2233}}\limits}}
+\CustomizeMathJax{\newcommand{\sumintup}{\mathop{\unicode{x2A0B}}\limits}}
+\CustomizeMathJax{\newcommand{\fintup}{\mathop{\unicode{x2A0F}}\limits}}
+\CustomizeMathJax{\newcommand{\sqintup}{\mathop{\unicode{x2A16}}\limits}}
%
\CustomizeMathJax{\newcommand{\bigcupdot}{\mathop{\unicode{x2A03}}}}
-\CustomizeMathJax{\newcommand{\bignplus}{%
- \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x22C2}}}%
-}}
-\CustomizeMathJax{\let\bigcapplus\bignplus}
\CustomizeMathJax{\newcommand{\bigcupplus}{\mathop{\unicode{x2A04}}}}
\CustomizeMathJax{\newcommand{\bigsqcap}{\mathop{\unicode{x2A05}}}}
-\CustomizeMathJax{\newcommand{\bigsqcapplus}{%
- \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x2A05}}}
-}}
-\CustomizeMathJax{\newcommand{\bigsqcupplus}{%
- \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x2A06}}}
-}}
+%
+% \end{macrocode}
+% \changes{v0.891}{2020/09/20}{\pkg{lwarp-common-mathjax-newpxtxmath}: Factored non-\brand{Unicode}.}
+% \begin{macrocode}
+%
\CustomizeMathJax{\newcommand{\bigtimes}{\mathop{\unicode{x2A09}}}}
\CustomizeMathJax{\let\varprod\bigtimes}
%
+% \end{macrocode}
+% \changes{v0.891}{2020/09/19}{\pkg{lwarp-common-mathjax-newpxtxmath}: Expanded for \pkg{kpfonts}.}
+% \begin{macrocode}
\CustomizeMathJax{\newcommand{\mappedfrom}{\mathrel{\unicode{x021A4}}}}
+\CustomizeMathJax{\let\mappedfromchar\mappedfrom}
\CustomizeMathJax{\newcommand{\mapsfrom}{\mathrel{\unicode{x021A4}}}}
\CustomizeMathJax{\newcommand{\longmappedfrom}{\mathrel{\unicode{x027FB}}}}
%
\CustomizeMathJax{\newcommand{\Mapsto}{\mathrel{\unicode{x02907}}}}
+\CustomizeMathJax{\let\Mapstochar\Mapsto}
\CustomizeMathJax{\newcommand{\Longmapsto}{\mathrel{\unicode{x027FE}}}}
\CustomizeMathJax{\newcommand{\Mappedfrom}{\mathrel{\unicode{x02906}}}}
+\CustomizeMathJax{\let\Mappedfromchar\Mappedfrom}
\CustomizeMathJax{\newcommand{\Mapsfrom}{\mathrel{\unicode{x02906}}}}
\CustomizeMathJax{\newcommand{\Longmappedfrom}{\mathrel{\unicode{x27FD}}}}
%
-\CustomizeMathJax{\newcommand{\mmapsto}{\mathrel{\unicode{x02905}}}}
-\CustomizeMathJax{\newcommand{\longmmapsto}{\mathrel{\unicode{x02905}}}}
-\CustomizeMathJax{\newcommand{\mmappedfrom}{\mathrel{\unicode{x021A4}}}}% x02B36
-\CustomizeMathJax{\newcommand{\longmmappedfrom}{\mathrel{\unicode{x021A4}}}}% x02B36
-%
-\CustomizeMathJax{\newcommand{\Mmapsto}{\mathrel{\unicode{x02907}}}}
-\CustomizeMathJax{\newcommand{\Longmmapsto}{\mathrel{\unicode{x027FE}}}}
-\CustomizeMathJax{\newcommand{\Mmappedfrom}{\mathrel{\unicode{x02906}}}}
-\CustomizeMathJax{\newcommand{\Longmmappedfrom}{\mathrel{\unicode{x027FD}}}}
-%
+% \end{macrocode}
+% \changes{v0.891}{2020/09/20}{\pkg{lwarp-common-mathjax-newpxtxmath}: Factored non-\brand{Unicode}.}
+% \begin{macrocode}
\CustomizeMathJax{\newcommand{\medcirc}{\mathbin{\unicode{x025CB}}}}
\CustomizeMathJax{\newcommand{\medbullet}{\mathbin{\unicode{x025CF}}}}
\CustomizeMathJax{\newcommand{\varparallel}{\mathrel{\unicode{x02AFD}}}}
@@ -84633,29 +86438,34 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\newcommand{\nvarparallel}{\mathrel{\LWRoverlaysymbols{-}{\unicode{x02AFD}}}}}
\CustomizeMathJax{\newcommand{\nvarparallelinv}{\mathrel{\LWRoverlaysymbols{-}{\unicode{x244A}}}}}
%
-\CustomizeMathJax{\newcommand{\colonapprox}{\mathrel{:\approx}}}
-\CustomizeMathJax{\newcommand{\colonsim}{\mathrel{:\sim}}}
-\CustomizeMathJax{\newcommand{\Colonapprox}{\mathrel{\unicode{x2237}\approx}}}
-\CustomizeMathJax{\newcommand{\Colonsim}{\mathrel{\unicode{x2237}\sim}}}
-%
-\CustomizeMathJax{\newcommand{\multimapinv}{\mathrel{\unicode{x027DC}}}}
-\CustomizeMathJax{\newcommand{\multimapboth}{\mathrel{\unicode{x029DF}}}}
-\CustomizeMathJax{\newcommand{\multimapdot}{{\mathrel{-\!\bullet}}}}
-\CustomizeMathJax{\newcommand{\multimapdotinv}{\mathrel{\bullet\!-}}}
-\CustomizeMathJax{\newcommand{\multimapdotboth}{\mathrel{{\bullet\!\!-\!\!\bullet}}}}
-\CustomizeMathJax{\newcommand{\multimapdotbothA}{\mathrel{\unicode{x022B6}}}}
-\CustomizeMathJax{\newcommand{\multimapdotbothB}{\mathrel{\unicode{x22B7}}}}
+% \end{macrocode}
+% \changes{v0.891}{2020/09/19}{\pkg{lwarp-common-mathjax-newpxtxmath}: Expanded for \pkg{kpfonts}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\coloneq}{\mathrel{\unicode{x02254}}}}
+\CustomizeMathJax{\newcommand{\eqcolon}{\mathrel{\unicode{x02255}}}}
%
\CustomizeMathJax{\newcommand{\VDash}{\mathrel{\unicode{x22AB}}}}
-\CustomizeMathJax{\newcommand{\VvDash}{\mathrel{\unicode{x22AA}}}}
+% \end{macrocode}
+% \changes{v0.891}{2020/09/20}{\pkg{lwarp-common-mathjax-newpxtxmath}: Factored non-\brand{Unicode}.}
+% \begin{macrocode}
%
\CustomizeMathJax{\newcommand{\preceqq}{\mathrel{\unicode{x02AB3}}}}
\CustomizeMathJax{\newcommand{\succeqq}{\mathrel{\unicode{x02AB4}}}}
%
+
\CustomizeMathJax{\newcommand{\nprecsim}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0227E}}}}}
\CustomizeMathJax{\newcommand{\nsuccsim}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0227F}}}}}
\CustomizeMathJax{\newcommand{\nlesssim}{\mathrel{\unicode{x02274}}}}
\CustomizeMathJax{\newcommand{\ngtrsim}{\mathrel{\unicode{x02275}}}}
+%
+% \end{macrocode}
+% \changes{v0.891}{2020/09/19}{\pkg{lwarp-common-mathjax-newpxtxmath}: Expanded for \pkg{kpfonts}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\nsubset}{\mathrel{\unicode{x02284}}}}
+\CustomizeMathJax{\newcommand{\nsupset}{\mathrel{\unicode{x02285}}}}
+\CustomizeMathJax{\newcommand{\notni}{\mathrel{\unicode{x220C}}}}
+\CustomizeMathJax{\let\notowns\notni}
+%
\CustomizeMathJax{\newcommand{\nlessapprox}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02A85}}}}}
\CustomizeMathJax{\newcommand{\ngtrapprox}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02A86}}}}}
%
@@ -84692,7 +86502,6 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\newcommand{\coloneqq}{\mathrel{\unicode{x02254}}}}
\CustomizeMathJax{\newcommand{\eqqcolon}{\mathrel{\unicode{x02255}}}}
\CustomizeMathJax{\newcommand{\Coloneqq}{\mathrel{\unicode{x02A74}}}}
-\CustomizeMathJax{\newcommand{\Eqqcolon}{\mathrel{=\!\unicode{x2237}}}}
\CustomizeMathJax{\newcommand{\Coloneq}{\mathrel{\unicode{x2237}-}}}
\CustomizeMathJax{\newcommand{\Eqcolon}{\mathrel{-\unicode{x2237}}}}
%
@@ -84719,11 +86528,6 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\newcommand{\bulletS}{\mathord{\unicode{x02B24}}}}
\CustomizeMathJax{\newcommand{\primeS}{\prime}}
-\CustomizeMathJax{\newcommand{\strictif}{\mathrel{\unicode{x0297D}}}}% right fish tail
-\CustomizeMathJax{\newcommand{\strictfi}{\mathrel{\unicode{x0297C}}}}% left fish tail
-\CustomizeMathJax{\newcommand{\strictiff}{%
- \mathrel{\unicode{x0297C}\!\!\unicode{x0297D}}%
-}}% left/right fish tails
\CustomizeMathJax{\newcommand{\invamp}{\mathbin{\unicode{x0214B}}}}
\CustomizeMathJax{\newcommand{\lbag}{\mathopen{\unicode{x027C5}}}}
\CustomizeMathJax{\newcommand{\rbag}{\mathclose{\unicode{x027C6}}}}
@@ -84731,28 +86535,20 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\newcommand{\Rbag}{\mathclose{\large\unicode{x027C6}}}}
\CustomizeMathJax{\newcommand{\circledless}{\mathrel{\unicode{x029C0}}}}
\CustomizeMathJax{\newcommand{\circledgtr}{\mathrel{\unicode{x029C1}}}}
-\CustomizeMathJax{\newcommand{\circledwedge}{%
- \mathbin{\LWRoverlaysymbols{\unicode{x025EF}}{\unicode{x02227}}}%
-}}
-\CustomizeMathJax{\newcommand{\circledvee}{%
- \mathbin{\LWRoverlaysymbols{\unicode{x025EF}}{\unicode{0x02228}}}%
-}}
-\CustomizeMathJax{\newcommand{\circledbar}{\mathbin{\unicode{x029B6}}}}
\CustomizeMathJax{\newcommand{\circledbslash}{\mathbin{\unicode{x029B8}}}}
-
+% \end{macrocode}
+% \changes{v0.891}{2020/09/20}{\pkg{lwarp-common-mathjax-newpxtxmath}: Factored non-\brand{Unicode}.}
+% \begin{macrocode}
\CustomizeMathJax{\newcommand{\lJoin}{\mathrel{\unicode{x22C9}}}}
\CustomizeMathJax{\newcommand{\rJoin}{\mathrel{\unicode{x22CA}}}}
\CustomizeMathJax{\newcommand{\lrJoin}{\mathrel{\unicode{x2A1D}}}}
-\CustomizeMathJax{\newcommand{\openJoin}{\mathrel{\unicode{x2AA4}}}}% overlapping ><
\CustomizeMathJax{\newcommand{\lrtimes}{\mathrel{\unicode{x2A1D}}}}
-\CustomizeMathJax{\newcommand{\opentimes}{\mathrel{\unicode{x2AA4}}}}% overlapping ><
\CustomizeMathJax{\newcommand{\Diamondblack}{\mathord{\unicode{x025C6}}}}
\CustomizeMathJax{\newcommand{\nplus}{\mathrel{\LWRoverlaysymbols{+}{\unicode{x02229}}}}}
\CustomizeMathJax{\newcommand{\nsqsubset}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x0228F}}}}}
\CustomizeMathJax{\newcommand{\nsqsupset}{\mathrel{\LWRoverlaysymbols{/}{\unicode{x02290}}}}}
\CustomizeMathJax{\newcommand{\dasharrow}{\mathrel{\unicode{x021E2}}}}
-\CustomizeMathJax{\newcommand{\dashleftrightarrow}{\mathrel{\unicode{x021E0}\!\unicode{x021E2}}}}
\CustomizeMathJax{\newcommand{\leftsquigarrow}{\mathrel{\unicode{x021DC}}}}
\CustomizeMathJax{\newcommand{\ntwoheadrightarrow}{\mathrel{\unicode{x02900}}}}
\CustomizeMathJax{\newcommand{\ntwoheadleftarrow}{\mathrel{\unicode{x02B34}}}}
@@ -84761,12 +86557,6 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\newcommand{\boxbar}{\mathbin{\unicode{x025EB}}}}
\CustomizeMathJax{\newcommand{\boxslash}{\mathbin{\unicode{x029C4}}}}
-\CustomizeMathJax{\newcommand{\Wr}{\mathbin{\unicode{x02240}\!\unicode{x02240}}}}
-
-% defined above:
-% \CustomizeMathJax{\newcommand{\lambdaslash}{\mathord{\unicode{x00023}}}}
-% \CustomizeMathJax{\newcommand{\lambdabar}{\mathord{\unicode{x00023}}}}
-
\CustomizeMathJax{\newcommand{\varclubsuit}{\mathord{\unicode{x02667}}}}
\CustomizeMathJax{\newcommand{\vardiamondsuit}{\mathord{\unicode{x02666}}}}
\CustomizeMathJax{\newcommand{\varheartsuit}{\mathord{\unicode{x02665}}}}
@@ -84784,6 +86574,102 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\newcommand{\sqcupplus}{\mathbin{\LWRoverlaysymbols{+}{\unicode{x02294}}}}}
\CustomizeMathJax{\newcommand{\sqcapplus}{\mathbin{\LWRoverlaysymbols{+}{\unicode{x02293}}}}}
+\CustomizeMathJax{\newcommand{\dlb}{\mathopen{\unicode{x027E6}}}}
+\CustomizeMathJax{\newcommand{\drb}{\mathopen{\unicode{x027E7}}}}
+
+\CustomizeMathJax{\newcommand{\varg}{g}}
+\CustomizeMathJax{\newcommand{\vary}{y}}
+\CustomizeMathJax{\newcommand{\varv}{v}}
+\CustomizeMathJax{\newcommand{\varw}{w}}
+
+\CustomizeMathJax{\newcommand{\nexistsAlt}{\mathord{\unicode{x02204}}}}
+\CustomizeMathJax{\newcommand{\existsAlt}{\mathord{\unicode{x02203}}}}
+\CustomizeMathJax{\newcommand{\forallAlt}{\mathord{\unicode{x02200}}}}
+\CustomizeMathJax{\newcommand{\emptysetAlt}{\mathord{\unicode{x02205}}}}
+
+\CustomizeMathJax{\newcommand{\uppartial}{\mathord{\unicode{x02202}}}}% not upright
+
+\CustomizeMathJax{\let\varmathbb\mathbb}
+\CustomizeMathJax{\let\vmathbb\mathbb}
+\CustomizeMathJax{\let\vvmathbb\mathbb}
+
+\CustomizeMathJax{\let\smallprod\prod}
+\CustomizeMathJax{\let\smallsum\sum}
+\CustomizeMathJax{\let\smallcoprod\coprod}
+
+\CustomizeMathJax{\newcommand{\openbox}{\mathord{\unicode{x25FD}}}}
+\CustomizeMathJax{\let\textsquare\openbox}
+% \end{macrocode}
+% \changes{v0.891}{2020/09/19}{\pkg{lwarp-common-mathjax-newpxtxmath}: Expanded for \pkg{kpfonts}.}
+% \begin{macrocode}
+\CustomizeMathJax{\let\varemptyset\emptyset}
+%
+% for newpxmath:
+\CustomizeMathJax{\newcommand{\mathsterling}{\mathord{\unicode{x000A3}}}}
+\CustomizeMathJax{\newcommand{\mathcent}{\mathord{\unicode{x000A2}}}}
+
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</common-mathjax-newpxtxmath>
+% \fi
+%
+%
+%
+%
+% ^^A *common-mathjax-nonunicode
+% ^^A *nonunicode
+%
+% \iffalse
+%<*common-mathjax-nonunicode>
+% \fi
+%
+% \part{lwarp-common-mathjax-nonunicode.sty}
+%
+% \section{common-mathjax-nonunicode}
+%
+% \credits{Daniel Flipo, Michael Sharpe}
+%
+% \DescribePackage{lwarp-common-mathjax-nonunicode}
+% Common code used by \pkg{newpxmath}, \pkg{newtxmath}, \pkg{newtxsf},
+% \pkg{kpfonts-otf}
+% for \brand{MathJax}.
+% These are symbols not found in \brand{Unicode}.
+%
+% Factored from \pkg{lwarp-common-mathjax-newpxtxmath}.
+%
+% \changes{v0.891}{2020/09/20}{\pkg{lwarp-common-mathjax-nonunicode}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\ProvidesPackage{lwarp-common-mathjax-nonunicode}[2020/09/20]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
+
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\mmapsto}{\mathrel{\unicode{x021A6}}}}
+\CustomizeMathJax{\let\mmapstochar\mmapsto}
+\CustomizeMathJax{\newcommand{\longmmapsto}{\mathrel{\unicode{x021A6}}}}
+\CustomizeMathJax{\newcommand{\mmappedfrom}{\mathrel{\unicode{x021A4}}}}
+\CustomizeMathJax{\let\mmappedfromchar\mmappedfrom}
+\CustomizeMathJax{\newcommand{\longmmappedfrom}{\mathrel{\unicode{x021A4}}}}
+\CustomizeMathJax{\let\mmapsfrom\mmappedfrom}% from kpfonts-otf
+\CustomizeMathJax{\let\longmmapsfrom\longmmappedfrom}% from kpfonts-otf
+
+\CustomizeMathJax{\newcommand{\Mmapsto}{\mathrel{\unicode{x02907}}}}
+\CustomizeMathJax{\let\Mmapstochar\Mmapsto}
+\CustomizeMathJax{\newcommand{\Longmmapsto}{\mathrel{\unicode{x027FE}}}}
+\CustomizeMathJax{\newcommand{\Mmappedfrom}{\mathrel{\unicode{x02906}}}}
+\CustomizeMathJax{\let\Mmappedfromchar\Mmappedfrom}
+\CustomizeMathJax{\newcommand{\Longmmappedfrom}{\mathrel{\unicode{x027FD}}}}
+\CustomizeMathJax{\let\Mmapsfrom\Mmappedfrom}% from kpfonts-otf
+\CustomizeMathJax{\let\Longmmapsfrom\Longmmappedfrom}% from kpfonts-otf
+%
\CustomizeMathJax{\newcommand{\boxright}{\mathrel{\unicode{x025A1}\!\unicode{x02192}}}}
\CustomizeMathJax{\newcommand{\boxleft}{\mathrel{\unicode{x02190}\!\unicode{x025A1}}}}
\CustomizeMathJax{\newcommand{\boxdotright}{\mathrel{\unicode{x022A1}\!\unicode{x02192}}}}
@@ -84812,80 +86698,95 @@ height:\LWR@printlength{\LWR@tempheight}%
\CustomizeMathJax{\let\circleddotright\circledotright}
\CustomizeMathJax{\let\circleddotleft\circledotleft}
+\CustomizeMathJax{\newcommand{\multimapinv}{\mathrel{\unicode{x027DC}}}}
+\CustomizeMathJax{\newcommand{\multimapboth}{\mathrel{\unicode{x029DF}}}}
+\CustomizeMathJax{\newcommand{\multimapdot}{{\mathrel{-\!\bullet}}}}
+\CustomizeMathJax{\newcommand{\multimapdotinv}{\mathrel{\bullet\!-}}}
+\CustomizeMathJax{\newcommand{\multimapdotboth}{\mathrel{{\bullet\!\!-\!\!\bullet}}}}
+\CustomizeMathJax{\newcommand{\multimapdotbothA}{\mathrel{\unicode{x022B6}}}}
+\CustomizeMathJax{\newcommand{\multimapdotbothB}{\mathrel{\unicode{x22B7}}}}
+
\CustomizeMathJax{\newcommand{\multimapbothvert}{%
\mathrel{\overset{\unicode{x025CB}}{\underset{\unicode{x025CB}}{|}}}%
}}
\CustomizeMathJax{\newcommand{\multimapdotbothvert}{%
\mathrel{\overset{\unicode{x025CF}}{\underset{\unicode{x025CF}}{|}}}%
}}
-\CustomizeMathJax{\newcommand{\multimapdotbothBvert}{%
+\CustomizeMathJax{\newcommand{\multimapdotbothBvert}{% bug in kpfonts-otf
\mathrel{\overset{\unicode{x025CF}}{\underset{\unicode{x025CB}}{|}}}%
}}
-\CustomizeMathJax{\newcommand{\multimapdotbothAvert}{%
+\CustomizeMathJax{\newcommand{\multimapdotbothAvert}{% bug in kpfonts-otf
\mathrel{\overset{\unicode{x025CB}}{\underset{\unicode{x025CF}}{|}}}%
}}
-\CustomizeMathJax{\newcommand{\dlb}{\mathopen{\unicode{x027E6}}}}
-\CustomizeMathJax{\newcommand{\drb}{\mathopen{\unicode{x027E7}}}}
+\CustomizeMathJax{\newcommand{\bignplus}{%
+ \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x22C2}}}%
+}}
+\CustomizeMathJax{\let\bigcapplus\bignplus}
+\CustomizeMathJax{\let\capplus\bignplus}% from kpfonts-otf
-% * \marg{2: prefix} \marg{3: postfix} \marg{4: i/u: italic/upright}
-\LWR@mathjax@addgreek@u@up*{}{up}
-\LWR@mathjax@addgreek@u@up*{up}{}
-\LWR@mathjax@addgreek@l@up{up}{}
-\LWR@mathjax@addgreek@l@up{}{up}
-\LWR@mathjax@addgreek@u@it*{}{it}
-\LWR@mathjax@addgreek@l@it{}{it}
+\CustomizeMathJax{\newcommand{\bigsqcapplus}{%
+ \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x2A05}}}
+}}
+\CustomizeMathJax{\let\sqcapplus\bigsqcapplus}% from kpfonts-otf
-% only newtxmath, not newpxmath:
-\LWR@mathjax@addgreek@u@it*{it}{}
-\LWR@mathjax@addgreek@l@it{it}{}
+\CustomizeMathJax{\newcommand{\bigsqcupplus}{%
+ \mathop{\LWRoverlaysymbols{\unicode{xFF0B}}{\unicode{x2A06}}}
+}}
+\CustomizeMathJax{\let\sqcupplus\bigsqcupplus}% from kpfonts-otf
-\CustomizeMathJax{\newcommand{\varg}{g}}
-\CustomizeMathJax{\newcommand{\vary}{y}}
-\CustomizeMathJax{\newcommand{\varv}{v}}
-\CustomizeMathJax{\newcommand{\varw}{w}}
+\CustomizeMathJax{\newcommand{\parallelslant}{\mathrel{\unicode{x02AFD}}}}
+\CustomizeMathJax{\newcommand{\parallelbackslant}{\mathrel{\unicode{x0005C}\!\!\unicode{x0005C}}}}
-\CustomizeMathJax{\newcommand{\nexistsAlt}{\mathord{\unicode{x02204}}}}
-\CustomizeMathJax{\newcommand{\existsAlt}{\mathord{\unicode{x02203}}}}
-\CustomizeMathJax{\newcommand{\forallAlt}{\mathord{\unicode{x02200}}}}
-\CustomizeMathJax{\newcommand{\emptysetAlt}{\mathord{\unicode{x02205}}}}
+\CustomizeMathJax{\newcommand{\Eqqcolon}{\mathrel{=\!\unicode{x2237}}}}
+\CustomizeMathJax{\let\eqqColon\Eqqcolon}% for kpfonts-otf
+\CustomizeMathJax{\newcommand{\dashColon}{\mathrel{-\unicode{x2237}}}}
+\CustomizeMathJax{\newcommand{\Colondash}{\mathrel{\unicode{x2237}-}}}
-\CustomizeMathJax{\newcommand{\uppartial}{\mathord{\unicode{x02202}}}}
+\CustomizeMathJax{\newcommand{\colonapprox}{\mathrel{:\approx}}}
+\CustomizeMathJax{\newcommand{\colonsim}{\mathrel{:\sim}}}
+\CustomizeMathJax{\newcommand{\Colonapprox}{\mathrel{\unicode{x2237}\!\approx}}}
+\CustomizeMathJax{\newcommand{\Colonsim}{\mathrel{\unicode{x2237}\!\sim}}}
-\CustomizeMathJax{\let\varmathbb\mathbb}
-\CustomizeMathJax{\let\vmathbb\mathbb}
-\CustomizeMathJax{\let\vvmathbb\mathbb}
+\CustomizeMathJax{\newcommand{\strictif}{\mathrel{\unicode{x0297D}}}}% right fish tail
+\CustomizeMathJax{\newcommand{\strictfi}{\mathrel{\unicode{x0297C}}}}% left fish tail
+\CustomizeMathJax{\newcommand{\strictiff}{%
+ \mathrel{\unicode{x0297C}\!\!\unicode{x0297D}}%
+}}% left/right fish tails
-\CustomizeMathJax{\let\smallprod\prod}
-\CustomizeMathJax{\let\smallsum\sum}
-\CustomizeMathJax{\let\smallcoprod\coprod}
+\CustomizeMathJax{\newcommand{\circledwedge}{%
+ \mathbin{\LWRoverlaysymbols{\unicode{x025EF}}{\unicode{x02227}}}%
+}}
+\CustomizeMathJax{\newcommand{\circledvee}{%
+ \mathbin{\LWRoverlaysymbols{\unicode{x025EF}}{\unicode{0x02228}}}%
+}}
+\CustomizeMathJax{\newcommand{\circledbar}{\mathbin{\unicode{x029B6}}}}
-\CustomizeMathJax{\newcommand{\openbox}{\mathord{\unicode{x25FD}}}}
-\CustomizeMathJax{\let\textsquare\openbox}
+\CustomizeMathJax{\newcommand{\openJoin}{\mathrel{\unicode{x2AA4}}}}% overlapping ><
+\CustomizeMathJax{\newcommand{\opentimes}{\mathrel{\unicode{x2AA4}}}}% overlapping ><
-% only newtxmath, not newpxmath:
-\ifdef{\iftx@BI}{
- \iftx@BI
- \LWR@mathjax@addlatin@u@bfit{BI}
- \LWR@mathjax@addlatin@l@bfit{BI}
- \fi
-}{}
+\CustomizeMathJax{\newcommand{\VvDash}{\mathrel{\unicode{x22AA}}}}
-% for newpxmath:
-\CustomizeMathJax{\newcommand{\mathsterling}{\mathord{\unicode{x000A3}}}}
-\CustomizeMathJax{\newcommand{\mathcent}{\mathord{\unicode{x000A2}}}}
+\CustomizeMathJax{\newcommand{\lambdabar}{%
+ \mathord{\LWRoverlaysymbols{\raise{.5ex}{-}}{\lambda}}%
+}}
+
+\CustomizeMathJax{\newcommand{\lambdaslash}{\mathord{\unicode{x019B}}}}
+
+\CustomizeMathJax{\newcommand{\Wr}{\mathbin{\unicode{x02240}\!\unicode{x02240}}}}
+
+\CustomizeMathJax{\newcommand{\dashleftrightarrow}{\mathrel{\unicode{x021E0}\!\unicode{x021E2}}}}
+\CustomizeMathJax{\let\leftrightdasharrow\dashleftrightarrow}% for kpfonts-otf
\end{warpMathJax}
% \end{macrocode}
%
% \iffalse
-%</common-mathjax-newpxtxmath>
+%</common-mathjax-nonunicode>
% \fi
%
%
%
-%
-%
% ^^A *common-mathjax-overlaysymbols
%
% \iffalse
diff --git a/macros/latex/contrib/lwarp/lwarp.ins b/macros/latex/contrib/lwarp/lwarp.ins
index c3e4c7d0e6..af15c2f162 100644
--- a/macros/latex/contrib/lwarp/lwarp.ins
+++ b/macros/latex/contrib/lwarp/lwarp.ins
@@ -93,6 +93,7 @@ version 2005/12/01 or later.
\file{lwarp-breakurl.sty}{\from{lwarp.dtx}{breakurl}}
\file{lwarp-breqn.sty}{\from{lwarp.dtx}{breqn}}
\file{lwarp-bsheaders.sty}{\from{lwarp.dtx}{bsheaders}}
+\file{lwarp-bussproofs.sty}{\from{lwarp.dtx}{bussproofs}}
\file{lwarp-bxpapersize.sty}{\from{lwarp.dtx}{bxpapersize}}
\file{lwarp-bytefield.sty}{\from{lwarp.dtx}{bytefield}}
\file{lwarp-cancel.sty}{\from{lwarp.dtx}{cancel}}
@@ -120,6 +121,7 @@ version 2005/12/01 or later.
\file{lwarp-CJKutf8.sty}{\from{lwarp.dtx}{CJKutf8}}
\file{lwarp-cleveref.sty}{\from{lwarp.dtx}{cleveref}}
\file{lwarp-clrdblpg.sty}{\from{lwarp.dtx}{clrdblpg}}
+\file{lwarp-cmbright.sty}{\from{lwarp.dtx}{cmbright}}
\file{lwarp-cmdtrack.sty}{\from{lwarp.dtx}{cmdtrack}}
\file{lwarp-colonequals.sty}{\from{lwarp.dtx}{colonequals}}
\file{lwarp-color.sty}{\from{lwarp.dtx}{color}}
@@ -209,6 +211,7 @@ version 2005/12/01 or later.
\file{lwarp-foreign.sty}{\from{lwarp.dtx}{foreign}}
\file{lwarp-forest.sty}{\from{lwarp.dtx}{forest}}
\file{lwarp-fouridx.sty}{\from{lwarp.dtx}{fouridx}}
+\file{lwarp-fourier.sty}{\from{lwarp.dtx}{fourier}}
\file{lwarp-framed.sty}{\from{lwarp.dtx}{framed}}
\file{lwarp-ftcap.sty}{\from{lwarp.dtx}{ftcap}}
\file{lwarp-ftnright.sty}{\from{lwarp.dtx}{ftnright}}
@@ -251,6 +254,8 @@ version 2005/12/01 or later.
\file{lwarp-jurabib.sty}{\from{lwarp.dtx}{jurabib}}
\file{lwarp-karnaugh-map.sty}{\from{lwarp.dtx}{karnaugh-map}}
\file{lwarp-keyfloat.sty}{\from{lwarp.dtx}{keyfloat}}
+\file{lwarp-kpfonts.sty}{\from{lwarp.dtx}{kpfonts}}
+\file{lwarp-kpfonts-otf.sty}{\from{lwarp.dtx}{kpfonts-otf}}
\file{lwarp-layaureo.sty}{\from{lwarp.dtx}{layaureo}}
\file{lwarp-layout.sty}{\from{lwarp.dtx}{layout}}
\file{lwarp-layouts.sty}{\from{lwarp.dtx}{layouts}}
@@ -258,6 +263,7 @@ version 2005/12/01 or later.
\file{lwarp-leftidx.sty}{\from{lwarp.dtx}{leftidx}}
\file{lwarp-letterspace.sty}{\from{lwarp.dtx}{letterspace}}
\file{lwarp-lettrine.sty}{\from{lwarp.dtx}{lettrine}}
+\file{lwarp-libertinust1math.sty}{\from{lwarp.dtx}{libertinust1math}}
\file{lwarp-lineno.sty}{\from{lwarp.dtx}{lineno}}
\file{lwarp-lips.sty}{\from{lwarp.dtx}{lips}}
\file{lwarp-listings.sty}{\from{lwarp.dtx}{listings}}
@@ -412,6 +418,7 @@ version 2005/12/01 or later.
\file{lwarp-rviewport.sty}{\from{lwarp.dtx}{rviewport}}
\file{lwarp-savetrees.sty}{\from{lwarp.dtx}{savetrees}}
\file{lwarp-scalefnt.sty}{\from{lwarp.dtx}{scalefnt}}
+\file{lwarp-scalerel.sty}{\from{lwarp.dtx}{scalerel}}
\file{lwarp-schemata.sty}{\from{lwarp.dtx}{schemata}}
\file{lwarp-scrextend.sty}{\from{lwarp.dtx}{scrextend}}
\file{lwarp-scrhack.sty}{\from{lwarp.dtx}{scrhack}}
@@ -506,6 +513,7 @@ version 2005/12/01 or later.
\file{lwarp-turnthepage.sty}{\from{lwarp.dtx}{turnthepage}}
\file{lwarp-twoup.sty}{\from{lwarp.dtx}{twoup}}
\file{lwarp-txfonts.sty}{\from{lwarp.dtx}{txfonts}}
+\file{lwarp-txgreeks.sty}{\from{lwarp.dtx}{txgreeks}}
\file{lwarp-typearea.sty}{\from{lwarp.dtx}{typearea}}
\file{lwarp-typicons.sty}{\from{lwarp.dtx}{typicons}}
\file{lwarp-ulem.sty}{\from{lwarp.dtx}{ulem}}
@@ -558,6 +566,7 @@ version 2005/12/01 or later.
\file{lwarp-common-multimedia.sty}{\from{lwarp.dtx}{common-multimedia}}
\file{lwarp-common-mathjax-letters.sty}{\from{lwarp.dtx}{common-mathjax-letters}}
\file{lwarp-common-mathjax-newpxtxmath.sty}{\from{lwarp.dtx}{common-mathjax-newpxtxmath}}
+\file{lwarp-common-mathjax-nonunicode.sty}{\from{lwarp.dtx}{common-mathjax-nonunicode}}
\file{lwarp-common-mathjax-overlaysymbols.sty}{\from{lwarp.dtx}{common-mathjax-overlaysymbols}}
}
\Msg{*********************************************************}
diff --git a/macros/latex/contrib/lwarp/lwarp.pdf b/macros/latex/contrib/lwarp/lwarp.pdf
index dd84ba9fdc..df8c6908b0 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 18c1b40443..11a09285da 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.89"
+printversion = "v0.891"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()