texlive[59329] trunk: lwarp (24may21)

commits+karl at tug.org commits+karl at tug.org
Mon May 24 22:17:39 CEST 2021


Revision: 59329
          http://tug.org/svn/texlive?view=revision&revision=59329
Author:   karl
Date:     2021-05-24 22:17:39 +0200 (Mon, 24 May 2021)
Log Message:
-----------
lwarp (24may21)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
    trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
    trunk/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
    trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
    trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
    trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fixme.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-patch-memoir.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocloft.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-centerlastline.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-decorule.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fancypar.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-froufrou.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pbalance.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx-v2.sty

Modified: trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2021-05-24 20:17:39 UTC (rev 59329)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2021 Brian Dunn
 
-printversion = "v0.896"
+printversion = "v0.897"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()

Modified: trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2021-05-24 20:17:39 UTC (rev 59329)
@@ -1,5 +1,5 @@
 
-LaTeX lwarp package v0.896   README.txt
+LaTeX lwarp package v0.897   README.txt
 
 Files included are:
 

Modified: trunk/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2021-05-24 20:17:39 UTC (rev 59329)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2021 Brian Dunn
 
-printversion = "v0.896"
+printversion = "v0.897"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2021-05-24 20:17:39 UTC (rev 59329)
@@ -16,7 +16,7 @@
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{lwarp}
-%<package>    [2021/04/08 v0.896  Allows LaTeX to directly produce HTML5 output.]
+%<package>    [2021/05/24 v0.897  Allows LaTeX to directly produce HTML5 output.]
 %
 %<*driver>
 \documentclass{ltxdoc}
@@ -1696,7 +1696,29 @@
 }
 
 \newcommand{\limitsgraphics}{%
-\limitsincludegraphicsscale
+Per \cref{tab:includegraphicsfilenames},
+image filenames may be specified either with or without an extension.
+\trouble[case sensitive]{image>not displayed}
+\trouble{image>extension case}
+\trouble{filename>image extension}
+\gindex{image>file names}
+\gindex{graphics>file names}
+\gindex{includegraphics=\cs{includegraphics}>file names}
+\gindex{filename>graphics}
+\gindex{filename>images}
+If an extension is given it will be used as-is, for either print or \HTML\ output.
+If no extension is given, a list of possible extensions is tried, which depends
+on whether print or \HTML\ is being generated.  This allows a \PDF\ file for
+print and a \SVG\ file for \HTML, for example.
+If no extension is given, the automatic search will only return lowercase extensions,
+even if the filename actually has an uppercase extension, and \pkg{lwarp} cannot
+get around this problem, so image file extensions must be lowercase
+to be seen by the \HTML\ browser with \pkg{lwarp}.
+For example, name the image file \filenm{image.pdf} instead of \filenm{image.PDF},
+but refer to it in the source as \filenm{image}, without an extension.
+For images which may be used as-is with either print or \HTML, such as \JPG\ or \PNG,
+you may use a capitalized extension if it is specified in the source, such as
+\filenm{image.JPG}.
 
 For \cs{includegraphics} with \filenm{.pdf} or \filenm{.eps} files,
 \gindex{graphics>file formats}
@@ -1805,6 +1827,8 @@
 an image, and is ignored for print output.  If not assigned, each
 image is given an \attribute{alt} tag according to \cs{ImageAltText}.
 
+\limitsincludegraphicsscale
+
 \cs{rotatebox} accepts the optional \optn{origin} key.
 \margintag{\cs{rotatebox}}
 
@@ -2807,6 +2831,14 @@
 }
 
 \newcommand{\limitssiunitx}{%
+\pkg{sunitx} v3 is not yet supported.  For now, specify version 2:
+\trouble[v3 not yet!]{siunitx=\pkg{siunitx}>v3}
+\begin{sourcedisplay}
+\cs{usepackage}\{siunitx\}\textred{[=v2]}
+\end{sourcedisplay}
+This may be also be necessary before loading other packages which also use \pkg{siunitx},
+such as \pkg{chemmacros}.
+
 Due to \prog{pdftotext} limitations, fraction output is replaced by symbol
 \margintag{fractions}
 output for \optn{per-mode} and \optn{quotient-mode}.
@@ -2969,6 +3001,11 @@
 External layouts (\cs{fxloadlayouts}) are not supported.
 \trouble[external layouts]{fixme=\pkg{fixme}}
 
+Customized layouts are overwritten by \pkg{lwarp}'s versions \cs{AtBeginDocument}
+in order to provide the \HTML\ conversion.  If creating a new layout, see
+\pkg{lwarp}'s changes to provide similar for the new layout,
+inside a \env{warpHTML} environment.
+
 User control is provided for setting the \HTML\ styling of the ``faces''.
 The defaults are as follows, and may be changed in the preamble after
 \pkg{fixme} is loaded:
@@ -3061,7 +3098,7 @@
 %<*package>
 % \fi
 %
-% \CheckSum{54091}
+% \CheckSum{54242}
 %
 % \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
@@ -3199,6 +3236,7 @@
 % \changes{v0.894}{2020/12/24}{\ 2020/12/24}
 % \changes{v0.895}{2021/02/18}{\ 2021/02/18}
 % \changes{v0.896}{2021/04/08}{\ 2021/04/08}
+% \changes{v0.897}{2021/05/24}{\ 2021/05/24}
 
 
 
@@ -3422,6 +3460,22 @@
 %
 % \begin{description}
 % \needspace{2\baselineskip}
+% \item[v0.897:] \pkg{siunitx} rollback.
+%   \begin{itemize}
+%       \item Added a table of file extensions to use with \cs{includegraphics}.
+%           See \cref{tab:includegraphicsfilenames}.
+%           \margintag{docs}
+%       \item Added tests for additional incompatible packages.
+%           \margintag{core}
+%       \item \pkg{siunitx}: Supports rollback to v2.  Does not yet support v3.
+%       \margintag{packages}
+%       \item \pkg{fixme}: Improved to work if the user modifies layouts.
+%       \item \pkg{float}: Improved integration with \pkg{newfloat}, \pkg{keyfloat}.
+%       \item Added \pkg{centerlastline}, \pkg{decorule}, \pkg{fancypar},
+%           \pkg{froufrou}, \pkg{pbalance}.
+%       \item Verified works as-is with \pkg{fnpct}.
+%   \end{itemize}
+% \needspace{2\baselineskip}
 % \item[v0.896:] Back references, accessibility.
 %   \begin{itemize}
 %       \item \textred{Due to changes in cross referencing, \watchout
@@ -5579,9 +5633,10 @@
 % \midrule
 %
 % Page layout: & \ipkg{2in1}, \ipkg{2up}, \ipkg{a4}, \ipkg{a4wide}, \ipkg{a5comb},
-%       \ipkg{addlines}, \ipkg{anysize}, \mpkg{atbegshi},
-%       \ipkg{blowup},  \ipkg{booklet},  \ipkg{bophook}, \ipkg{bounddvi}, \ipkg{bxpapersize},
-%       \ipkg{canoniclayout}, \mpkg{changelayout},
+%       \ipkg{addlines}, \ipkg{anysize}, \mpkg{atbegshi}, \ipkg{balance},
+%       \ipkg{blowup},  \ipkg{booklet},  \ipkg{bophook}, \ipkg{bounddvi},
+%       \ipkg{bxpapersize},
+%       \ipkg{canoniclayout}, \ipkg{centerlastline}, \mpkg{changelayout},
 %       \epkg{changepage}, \ipkg{chngpage}, \ipkg{clrdblpg},
 %       \ipkg{continue}, \ipkg{draftcopy}, \ipkg{draftfigure}, \ipkg{draftwatermark},
 %       \ipkg{ebook}, \ipkg{everyshi},
@@ -5592,6 +5647,7 @@
 %       \ipkg{layaureo}, \ipkg{layout}, \ipkg{layouts}, \ipkg{leading}, \ipkg{lscape},
 %       \ipkg{ltxgrid}, \ipkg{nccfancyhdr}, \ipkg{notespages}, \ipkg{nowidow},
 %       \ipkg{pagegrid}, \ipkg{pagesel}, \epkg{parallel}, \epkg{parcolumns},
+%       \ipkg{pbalance},
 %       \ipkg{pdfcolparallel}, \ipkg{pdfcolparcolumns}, \ipkg{pdfcrypt},
 %       \ipkg{pdflscape}, \ipkg{pdfprivacy},
 %       \ipkg{preview}, \epkg{ragged2e}, \ipkg{returntogrid}, \ipkg{rmpage},
@@ -5608,7 +5664,8 @@
 % Sectioning: & Adds \progcode{FileDepth} for splitting the \HTML\ output.
 % 	Files may be numbered sequentially or named according to section name.
 % 	Common short words and punctuation are removed from the filenames. 
-%   \epkg{anonchap}, \ipkg{bsheaders}, \ipkg{fncychap}, \epkg{hypbmsec},
+%   \epkg{anonchap}, \ipkg{bsheaders}, \mpkg{decorule}, \ipkg{fncychap},
+%   \mpkg{froufrou}, \epkg{hypbmsec},
 %   \epkg{indentfirst}, \epkg{quotchap},
 %	\ipkg{section}, \mpkg{sectionbreak}, \spkg{secdot}, \ipkg{sectsty},
 %   \ipkg{titlesec}, \spkg{tocvsec2}.
@@ -5662,7 +5719,7 @@
 %   \brand{MathJax} emulation for \cs{footnote}, and also as marked in the following:
 %   \epkg{bigfoot}, \ipkg{dblfnote},
 %   \ipkg{endheads}, \mpkg{endnotes}\ejax, \mpkg{enotez}\ejax, \spkg{fixfoot},
-%   \ipkg{fnbreak}, \ipkg{fnpara}, \ipkg{fnpos},
+%   \ipkg{fnbreak}, \ipkg{fnpara}, \spkg{fnpct}, \ipkg{fnpos},
 %   \epkg{footmisc}, \mpkg{footnote}, \ipkg{footnotebackref},
 %   \mpkg{footnoterange}, \ipkg{footnpag}, \epkg{manyfoot},
 %	\epkg{marginnote}\ejax, \spkg{nccfoots}\ejax, \spkg{pagenote}\ejax,
@@ -5794,8 +5851,9 @@
 %
 % Environments: & Standard \LaTeX{} environments. \\
 %
-% \env{minipage}, \cs{parbox}: & Some \HTMLfive-imposed limitations.
-%	Nested minipages are supported. \mpkg{eqparbox}, \mpkg{minibox}, \epkg{pbox},
+% Paragraphs, \env{minipage}, \cs{parbox}: & Some \HTMLfive-imposed limitations.
+%	Nested minipages are supported. \mpkg{eqparbox}, \mpkg{fancypar},
+%   \mpkg{minibox}, \epkg{pbox},
 %   \ipkg{shapepar}. \\
 %
 % Quotations: & \epkg{copyrightbox}, \spkg{csquotes}, \epkg{epigraph},
@@ -10439,6 +10497,34 @@
 %
 % \DescribePackage{graphics}%
 % \DescribePackage{graphicx}%
+%
+% \begin{table}
+% \caption{\cs{includegraphics} and file names}
+% \label{tab:includegraphicsfilenames}
+% \begin{center}
+% \begin{threeparttable}
+% \begin{tabular}{ccl}
+% \toprule
+% Print image file & \HTML\ image file & Command to use \\
+% \midrule
+% \filenm{image.pdf}\tnote{a} & \filenm{image.svg}\tnote{a} & |\includegraphics{image}| \\
+% \filenm{image.eps}\tnote{a} & \filenm{image.svg}\tnote{a} & |\includegraphics{image}| \\
+% \filenm{image.jpg} & ---\tnote{b} & |\includegraphics{image}| \\
+% \filenm{image.png} & ---\tnote{b} & |\includegraphics{image}| \\
+% \filenm{image.JPG} & ---\tnote{b} & |\includegraphics{image.JPG}|\tnote{c} \\
+% \filenm{image.PNG} & ---\tnote{b} & |\includegraphics{image.PNG}|\tnote{c} \\
+% \filenm{image.jpg} & \filenm{image.gif} & |\includegraphics{image}| \\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item[a:] Must be a lowercase file extension.
+% \item[b:] The same file is used for print and \HTML.
+% \item[c:] The uppercase extension must be specified.
+% \end{tablenotes}
+% \end{threeparttable}
+% \end{center}
+% \end{table}
+%
 % \limitsgraphics
 %
 %
@@ -12698,16 +12784,16 @@
 
 
 % \begin{macro}{\LWR at checkloadbefore}
-%   \marg{thispackagename} \marg{packagename}
+%   \marg{packagename}
 %
-% If package names match, error if it is loaded after \pkg{lwarp}.
+% Given \cs{LWR at tempone} is the package name to compare to,
+% if package names match, error if it is loaded after \pkg{lwarp}.
 %
 % \changes{v0.63}{2018/12/02}{Added.}
 %
 %    \begin{macrocode}
-\newcommand*{\LWR at checkloadbefore}[2]{%
-    \edef\LWR at tempone{#1}%
-    \ifdefstring{\LWR at tempone}{#2}{%
+\newcommand*{\LWR at checkloadbefore}[1]{%
+    \ifdefstring{\LWR at tempone}{#1}{%
         \LWR at loadbefore{#1}%
     }{}%
 }
@@ -12718,23 +12804,31 @@
 % \begin{macro}{\LWR at loadnever} \marg{badpackagename} \marg{replacementpkgnames}
 %
 % The first packages is not supported, so tell the user to use the second instead.
+% Factored from \cs{LWR at checkloadnever} and \cs{LWR at earlyloadnever}.
 %
 % \changes{v0.25}{2017/03/16}{Added the ability to prevent conflicting packages.}
+% \changes{v0.897}{2021/05/08}{Replacements now optional.}
 %
 %    \begin{macrocode}
 \newcommand*{\LWR at loadnever}[2]{%
 \PackageError{lwarp}
 {%
-    Package #1 is not supported\MessageBreak
-    by lwarp's HTML conversion.\MessageBreak
-    Package(s)\MessageBreak
-    \space\space#2\MessageBreak
-    may be useful instead%
+    Package #1 is not yet supported\MessageBreak
+    by lwarp's HTML conversion%
+    \ifblank{#2}{}{%
+        .\MessageBreak
+        Package(s)\MessageBreak
+        \space\space#2\MessageBreak
+        may be useful instead%
+    }%
 }
 {%
     Package #1 might conflict with lwarp in some way,\MessageBreak
-    or is superceded by another package.\MessageBreak
-    For a possible alternative, see package(s) #2.
+    or is superceded by another package.%
+    \ifblank{#2}{}{%
+        \MessageBreak
+        For possible alternatives, see package(s) #2.%
+    }%
 }
 }
 %    \end{macrocode}
@@ -12741,18 +12835,20 @@
 % \end{macro}
 %
 %
-% \begin{macro}{\LWR at checkloadnever}
-%       \marg{thispackagename} \marg{badpackagename} \marg{replacementpkgnames}
 %
-% If this package name is the bad packagename, suggest the replacements instead.
+% \begin{macro}{\LWR at afterloadnever}
+%       \marg{badpackagename} \marg{replacementpkgnames}
 %
-% \changes{v0.63}{2018/12/01}{Added.}
+% Given: \cs{LWR at tempone} is set to the package name being tested against,
+% if this package name is the bad packagename, suggest the replacements instead.
+% This is used when loading packages after \pkg{lwarp}.
 %
+% \changes{v0.897}{2021/05/08}{Refactored.}
+%
 %    \begin{macrocode}
-\newcommand*{\LWR at checkloadnever}[3]{%
-    \edef\LWR at tempone{#1}%
-    \ifdefstring{\LWR at tempone}{#2}{%
-        \LWR at loadnever{#2}{#3}%
+\newcommand*{\LWR at afterloadnever}[2]{%
+    \ifdefstring{\LWR at tempone}{#1}{%
+        \LWR at loadnever{#1}{#2}%
     }{}%
 }
 %    \end{macrocode}
@@ -12762,10 +12858,10 @@
 % \begin{macro}{\LWR at earlyloadnever} \marg{badpackagename} \marg{replacementpkgname}
 %
 % The first package is not supported, so tell the user to use the second instead.
-% This version checks immediately for packages which may have been loaded before \pkg{lwarp}.
+% This version checks immediately for packages which
+% may have been loaded before \pkg{lwarp}.
 %
-% \changes{v0.54}{2018/04/06}{Added.}
-% \changes{v0.79}{2020/01/09}{Factored.}
+% \changes{v0.897}{2021/05/08}{Refactored.}
 %
 %    \begin{macrocode}
 \newcommand*{\LWR at earlyloadnever}[2]{%
@@ -12783,6 +12879,7 @@
 % This version checks immediately for classes which may have been loaded before \pkg{lwarp}.
 %
 % \changes{v0.63}{2018/11/25}{Added.}
+% \changes{v0.897}{2021/05/08}{Replacements now optional.}
 %
 %    \begin{macrocode}
 \newcommand*{\LWR at earlyclassloadnever}[2]{%
@@ -12790,13 +12887,19 @@
 \PackageError{lwarp}
 {%
     Class #1 is not supported\MessageBreak
-    by lwarp's HTML conversion.\MessageBreak
-    Class(es) #2 may be useful instead
+    by lwarp's HTML conversion%
+    \ifblank{#2}{}{%
+        .\MessageBreak
+        Class(es) #2 may be useful instead%
+    }%
 }
 {%
     Class #1 might conflict with lwarp in some way,\MessageBreak
-    or is superceded by another class.\MessageBreak
-    For a possible alternative, see class(es) #2.
+    or is superceded by another class.%
+    \ifblank{#2}{}{%
+        \MessageBreak
+        For a possible alternative, see class(es) #2.%
+    }%
 }
 }{\relax}%
 }
@@ -12805,6 +12908,7 @@
 %
 %
 % \subsection{Error for disallowed packages and classes loaded before lwarp}
+%
 % \changes{v0.54}{2018/04/06}{Added early check for disallowed packages.}
 % \changes{v0.54}{2018/09/26}{Never load \pkg{aecompl}.}
 % \changes{v0.62}{2018/11/18}{Added early checks for \pkg{CJK}, \pkg{CJKutf8}.}
@@ -12820,60 +12924,188 @@
 % \changes{v0.893}{2020/11/15}{Allowed \pkg{picinpar}.}
 % \changes{v0.895}{2021/01/19}{Allowed \pkg{epsf}.}
 %
+%
+% \begin{macro}{\LWR at checkloadnevers}
+% Checks against a list of incompatible packages.
+%
+% \changes{v0.897}{2021/05/08}{Refactored.}
+%
 %  ^^A *earlyloadnever *loadnever
 %    \begin{macrocode}
-\LWR at earlyclassloadnever{jarticle}{ujarticle}
-\LWR at earlyclassloadnever{jbook}{ujbook}
-\LWR at earlyclassloadnever{jreport}{ujreport}
-\LWR at earlyclassloadnever{tarticle}{utarticle}
-\LWR at earlyclassloadnever{tbook}{utbook}
-\LWR at earlyclassloadnever{treport}{utreport}
-\LWR at earlyloadnever{ae}{cm-super, lmodern}
-\LWR at earlyloadnever{aecompl}{cm-super, lmodern}
-\LWR at earlyloadnever{aecc}{cm-super, lmodern}
-\LWR at earlyloadnever{alg}{algorithm2e, algorithmicx}
-\LWR at earlyloadnever{algorithmic}{algorithm2e, algorithmicx}
-\LWR at earlyloadnever{bitfield}{bytefield}
-\LWR at earlyloadnever{caption2}{caption}
-% \LWR at earlyloadnever{ccaption}{caption}% might be preloaded by memoir
-\LWR at earlyloadnever{colortab}{colortbl}
-\LWR at earlyloadnever{csvtools}{datatool}
-\LWR at earlyloadnever{doublespace}{setspace}
-\LWR at earlyloadnever{fancyheadings}{fancyhdr}
-\LWR at earlyloadnever{fncylab}{cleveref}
-\LWR at earlyloadnever{formula}{siunitx}
-\LWR at earlyloadnever{glossary}{glossaries}
-\LWR at earlyloadnever{hyper}{hyperref}
-\LWR at earlyloadnever{libgreek}{libertinust1math, newtx}
-\LWR at earlyloadnever{newthm}{ntheorem}
-\LWR at earlyloadnever{pdfcprot}{microtype}
-\LWR at earlyloadnever{picins}{floatflt, wrapfig}
-\LWR at earlyloadnever{rplain}{fancyhdr}
-\LWR at earlyloadnever{si}{siunitx}
-\LWR at earlyloadnever{sistyle}{siunitx}
-\LWR at earlyloadnever{slashbox}{diagbox}
-\LWR at earlyloadnever{statex}{statex2}
-\LWR at earlyloadnever{t1enc}{fontenc, inputenc, inputenx}
-\LWR at earlyloadnever{ucs}{inputenc, inputencx}
-\LWR at earlyloadnever{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
+\newcommand*{\LWR at checkloadnevers}{
+\LWR at checkloadnever{ae}{cm-super, lmodern}
+\LWR at checkloadnever{aecompl}{cm-super, lmodern}
+\LWR at checkloadnever{aecc}{cm-super, lmodern}
+\LWR at checkloadnever{alg}{algorithm2e, algorithmicx}
+\LWR at checkloadnever{algorithmic}{algorithm2e, algorithmicx}
+\LWR at checkloadnever{bitfield}{bytefield}
 %    \end{macrocode}
-% The older \pkg{CJK} and \pkg{CJKutf8} only work with \pkg{xeCJK}:
+% \pkg{bxcjkatype} is based on \pkg{CJK}:
 %    \begin{macrocode}
-\@ifpackageloaded{xeCJK}{}{
-    \LWR at earlyloadnever{CJK}{ctex, xeCJK}
-    \LWR at earlyloadnever{CJKutf8}{ctex, xeCJK}
-}
+\LWR at checkloadnever{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle}
 %    \end{macrocode}
-% \pkg{bxcjkatype} is based on \pkg{CJK}:
 %    \begin{macrocode}
-\LWR at earlyloadnever{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle}
+\LWR at checkloadnever{caption2}{caption}
+% \LWR at checkloadnever{ccaption}{caption}% might be preloaded by memoir
+\LWR at checkloadnever{colortab}{colortbl}
+\LWR at checkloadnever{csvtools}{datatool}
+\LWR at checkloadnever{doublespace}{setspace}
+\LWR at checkloadnever{fancyheadings}{fancyhdr}
+\LWR at checkloadnever{fncylab}{cleveref}
+\LWR at checkloadnever{formula}{siunitx}
+\LWR at checkloadnever{glossary}{glossaries}
 %    \end{macrocode}
 % \pkg{hangul} is not in TeXLive, and is not tested:
 %    \begin{macrocode}
-\LWR at earlyloadnever{hangul}{kotex, xetexko, luatexko}
+\LWR at checkloadnever{hangul}{kotex, xetexko, luatexko}
 %    \end{macrocode}
+%    \begin{macrocode}
+\LWR at checkloadnever{hyper}{hyperref}
+\LWR at checkloadnever{libgreek}{libertinust1math, newtx}
+\LWR at checkloadnever{newthm}{ntheorem}
+\LWR at checkloadnever{pdfcprot}{microtype}
+\LWR at checkloadnever{picins}{floatflt, wrapfig}
+\LWR at checkloadnever{rplain}{fancyhdr}
+\LWR at checkloadnever{si}{siunitx}
+\LWR at checkloadnever{sistyle}{siunitx}
+\LWR at checkloadnever{slashbox}{diagbox}
+\LWR at checkloadnever{statex}{statex2}
+\LWR at checkloadnever{t1enc}{fontenc, inputenc, inputenx}
+\LWR at checkloadnever{ucs}{inputenc, inputencx}
+\LWR at checkloadnever{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
+%    \end{macrocode}
 %
+% The following may one day be supported by lwarp:
 %
+% ^^A *notyet
+%    \begin{macrocode}
+% \LWR at checkloadnever{adjustbox}{}% req'd for menukeys
+\LWR at checkloadnever{animate}{}
+\LWR at checkloadnever{auto-pst-pdf}{}
+\LWR at checkloadnever{auto-pst-pdf-lua}{}
+\LWR at checkloadnever{algorithms}{}
+\LWR at checkloadnever{arraycols}{}
+\LWR at checkloadnever{beamer}{}
+\LWR at checkloadnever{bidi}{}
+\LWR at checkloadnever{cals}{}
+\LWR at checkloadnever{cellspace}{}
+\LWR at checkloadnever{cgloss4e}{}
+\LWR at checkloadnever{colophon}{}
+\LWR at checkloadnever{cooltooltips}{}
+\LWR at checkloadnever{covington}{}
+\LWR at checkloadnever{crbox}{}
+\LWR at checkloadnever{decision-table}{}
+\LWR at checkloadnever{dvgloss}{}
+\LWR at checkloadnever{ednotes}{}
+\LWR at checkloadnever{edfnotes}{}
+\LWR at checkloadnever{eledform}{}
+\LWR at checkloadnever{eledmac}{}
+\LWR at checkloadnever{embedfile}{}
+\LWR at checkloadnever{endnotes-hy}{endnotes}
+\LWR at checkloadnever{expex}{}
+\LWR at checkloadnever{fancytooltips}{}
+\LWR at checkloadnever{fixocgx}{}
+\LWR at checkloadnever{flowfram}{}
+\LWR at checkloadnever{gb4e}{}
+\LWR at checkloadnever{gmverse}{}
+\LWR at checkloadnever{graphbox}{}
+\LWR at checkloadnever{graphicxbox}{}
+\LWR at checkloadnever{hvfloat}{}
+\LWR at checkloadnever{inline-images}{}
+\LWR at checkloadnever{isorot}{rotating}
+\LWR at checkloadnever{ledmac}{}
+\LWR at checkloadnever{linguex}{}
+\LWR at checkloadnever{longdiv}{}
+\LWR at checkloadnever{longfigure}{}
+\LWR at checkloadnever{longtabu}{}
+\LWR at checkloadnever{mdwenv}{}
+\LWR at checkloadnever{mdwlist}{}
+\LWR at checkloadnever{mdwtab}{}
+\LWR at checkloadnever{navigator}{}
+\LWR at checkloadnever{nccpic}{}
+\LWR at checkloadnever{nccsect}{}
+\LWR at checkloadnever{newvbtm}{}
+\LWR at checkloadnever{ocg-p}{}
+\LWR at checkloadnever{ocgtools}{}
+\LWR at checkloadnever{ocgx}{}
+\LWR at checkloadnever{ocgx2}{}
+\LWR at checkloadnever{parrun}{}
+\LWR at checkloadnever{poemscol}{}
+\LWR at checkloadnever{poetry}{}
+\LWR at checkloadnever{program}{}
+\LWR at checkloadnever{proofread}{}
+\LWR at checkloadnever{pst-pdf}{}
+\LWR at checkloadnever{refstyle}{}
+\LWR at checkloadnever{robustindex}{}
+\LWR at checkloadnever{robustglossary}{}
+\LWR at checkloadnever{semioneside}{}
+\LWR at checkloadnever{slemph}{}
+\LWR at checkloadnever{snotez}{sidenotes}
+\LWR at checkloadnever{spacingtricks}{}
+\LWR at checkloadnever{sverb}{verbatim, fancyvrb}
+\LWR at checkloadnever{syntax}{}
+\LWR at checkloadnever{tablists}{}
+\LWR at checkloadnever{tabto}{}
+\LWR at checkloadnever{tabu}{}
+\LWR at checkloadnever{tabularht}{}
+\LWR at checkloadnever{tabularkv}{}
+\LWR at checkloadnever{thumby}{}
+\LWR at checkloadnever{titles}{}
+\LWR at checkloadnever{typehtml}{}
+\LWR at checkloadnever{unicode-bidi}{}
+\LWR at checkloadnever{vcell}{}
+\LWR at checkloadnever{xhfill}{}
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\LWR at checkloadnever} \marg{badpackagename} \marg{replacementpkgname}
+%
+% The first package is not supported, so tell the user to use the second instead.
+%
+% When \pkg{lwarp} is first loaded, this is set to \cs{LWR at earlyloadnever}
+% to check for incompatible packages which were loaded before \pkg{lwarp}.
+% After \pkg{lwarp} is loaded, this is changed to \cs{LWR at afterloadnever} to
+% check for incompatible packages during \cs{usepackage}.
+%
+% \changes{v0.897}{2021/05/08}{Refactored.}
+%
+%    \begin{macrocode}
+\LetLtxMacro\LWR at checkloadnever\LWR at earlyloadnever
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% Now check for incompatible packages which have been loaded before \pkg{lwarp}:
+%    \begin{macrocode}
+\LWR at checkloadnevers
+%    \end{macrocode}
+%
+%
+% The older \pkg{CJK} and \pkg{CJKutf8} only work with \pkg{xeCJK}:
+%    \begin{macrocode}
+\@ifpackageloaded{xeCJK}{}{
+    \LWR at checkloadnever{CJK}{ctex, xeCJK}
+    \LWR at checkloadnever{CJKutf8}{ctex, xeCJK}
+}
+%    \end{macrocode}
+%
+%
+% Some classes do not work with \pkg{lwarp}:
+%    \begin{macrocode}
+\LWR at earlyclassloadnever{jarticle}{ujarticle}
+\LWR at earlyclassloadnever{jbook}{ujbook}
+\LWR at earlyclassloadnever{jreport}{ujreport}
+\LWR at earlyclassloadnever{tarticle}{utarticle}
+\LWR at earlyclassloadnever{tbook}{utbook}
+\LWR at earlyclassloadnever{treport}{utreport}
+\LWR at earlyclassloadnever{novel}{}
+\LWR at earlyclassloadnever{powerdot}{}
+%    \end{macrocode}
+%
+%
+%
 % \subsection{Enforcing package loading after \pkg{lwarp}}
 %
 % Packages which should only be loaded after \pkg{lwarp} are tested
@@ -12961,6 +13193,7 @@
 \LWR at loadafter{cases}
 % catoptions is supported by the lwarp core
 % \LWR at loadafter{ccaption}% may be preloaded by memoir
+\LWR at loadafter{centerlastline}
 % \LWR at loadafter{centernot}% may be preloaded by newtx
 \LWR at loadafter{changebar}
 \LWR at loadafter{changelayout}
@@ -12995,6 +13228,7 @@
 \LWR at loadafter{dblfnote}
 \LWR at notmemoirloadafter{dcolumn}
 \LWR at loadafter{decimal}
+\LWR at loadafter{decorule}
 \LWR at loadafter{diagbox}
 \LWR at loadafter{dingbat}
 \LWR at loadafter{DotArrow}
@@ -13036,6 +13270,7 @@
 \LWR at loadafter{extramarks}
 \LWR at loadafter{fancybox}
 \LWR at loadafter{fancyhdr}
+\LWR at loadafter{fancypar}
 \LWR at loadafter{fancyref}
 \LWR at loadafter{fancytabs}
 \LWR at loadafter{fancyvrb}
@@ -13076,6 +13311,7 @@
 \LWR at loadafter{fouridx}
 % fourier may be loaded before lwarp
 \LWR at loadafter{framed}
+\LWR at loadafter{froufrou}
 \LWR at loadafter{ftcap}
 \LWR at loadafter{ftnright}
 \LWR at loadafter{fullminipage}
@@ -13240,6 +13476,7 @@
 \LWR at loadafter{parcolumns}
 \LWR at loadafter{parnotes}
 \LWR at notmemoirloadafter{parskip}
+\LWR at loadafter{pbalance}
 \LWR at loadafter{pbox}
 \LWR at loadafter{pdfcol}
 \LWR at loadafter{pdfcolfoot}
@@ -13330,6 +13567,7 @@
 \LWR at loadafter{simplebnf}
 \LWR at loadafter{SIunits}
 \LWR at loadafter{siunitx}
+\LWR at loadafter{siunitx-v2}
 \LWR at loadafter{skmath}
 \LWR at loadafter{slantsc}
 \LWR at loadafter{slashed}
@@ -15514,6 +15752,10 @@
 % \section{Loading packages}
 %
 %
+% \cs{RequirePackage} and \cs{usepackage} are modified to error-check
+% for certain packages, and for \HTML\ they load the \pkg{lwarp-} version if
+% it exists.
+%
 % \codeall
 %    \begin{macrocode}
 \begin{warpall}
@@ -15566,10 +15808,18 @@
 }
 %    \end{macrocode}
 % \end{macro}
-% 
-
-
-
+%
+%
+% \begin{macro}{\LWR at checkloadnever} \marg{bad package name} \marg{replacement package names}
+%
+% From now on, check for incompatible packages loaded via \cs{usepackage},
+% instead of packages loaded before \pkg{lwarp}:
+%    \begin{macrocode}
+\LetLtxMacro\LWR at checkloadnever\LWR at afterloadnever
+%    \end{macrocode}
+% \end{macro}
+%
+%
 % \begin{macro}{\LWR at checkloadfilename} \marg{filename}
 % Checks if this filename should be loaded after \pkg{lwarp},
 % or never at all.
@@ -15589,65 +15839,48 @@
 % \changes{v0.893}{2020/11/15}{Allowed \pkg{picinpar}.}
 % \changes{v0.895}{2021/01/19}{Allowed \pkg{epsf}.}
 
-% The following should never be loaded:
 %
-% ^^A *checkload *loadnever
+% ^^A *checkload
 %    \begin{macrocode}
 \newcommand*{\LWR at checkloadfilename}[1]{%
-\LWR at checkloadnever{#1}{ae}{cm-super, lmodern}
-\LWR at checkloadnever{#1}{aecc}{cm-super, lmodern}
-\LWR at checkloadnever{#1}{aecompl}{cm-super, lmodern}
-\LWR at checkloadnever{#1}{alg}{algorithm2e, algorithmicx}
-\LWR at checkloadnever{#1}{algorithmic}{algorithm2e, algorithmicx}
-\LWR at checkloadnever{#1}{bitfield}{bytefield}
-\LWR at checkloadnever{#1}{caption2}{caption}
-\LWR at checkloadnever{#1}{ccaption}{caption}% might be preloaded by memoir
-\LWR at checkloadnever{#1}{colortab}{colortbl}
-\LWR at checkloadnever{#1}{csvtools}{datatool}
-\LWR at checkloadnever{#1}{doublespace}{setspace}
-\LWR at checkloadnever{#1}{fancyheadings}{fancyhdr}
-\LWR at checkloadnever{#1}{fncylab}{cleveref}
-\LWR at checkloadnever{#1}{formula}{siunitx}
-\LWR at checkloadnever{#1}{glossary}{glossaries}
-\LWR at checkloadnever{#1}{hyper}{hyperref}
-\LWR at checkloadnever{#1}{libgreek}{libertinust1math, newtx}
-\LWR at checkloadnever{#1}{newthm}{ntheorem}
-\LWR at checkloadnever{#1}{pdfcprot}{microtype}
-\LWR at checkloadnever{#1}{picins}{floatflt, wrapfig}
-\LWR at checkloadnever{#1}{rplain}{fancyhdr}
-\LWR at checkloadnever{#1}{si}{siunitx}
-\LWR at checkloadnever{#1}{sistyle}{siunitx}
-\LWR at checkloadnever{#1}{slashbox}{diagbox}
-\LWR at checkloadnever{#1}{statex}{statex2}
-\LWR at checkloadnever{#1}{t1enc}{fontenc, inputenc, inputenx}
-\LWR at checkloadnever{#1}{ucs}{inputenc, inputencx}
-\LWR at checkloadnever{#1}{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
-\LWR at checkloadnever{#1}{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle}
-\LWR at checkloadnever{#1}{hangul}{kotex, xetexko, luatexko}
 %    \end{macrocode}
 %
+% Remember the package name to compare with, to be used
+% by \cs{LWR at checkloadnever} and \cs{LWR at checkloadbefore}.
+%    \begin{macrocode}
+    \edef\LWR at tempone{#1}%
+%    \end{macrocode}
+%
+% Check against the list of packages which should never be loaded:
+%
+% \changes{v0.897}{2021/05/08}{Refactored.}
+%    \begin{macrocode}
+    \LWR at checkloadnevers
+%    \end{macrocode}
+%
+%
 % ^^A *loadbefore
 % The following should only be loaded before \pkg{lwarp}:
 % \changes{v0.895}{2021/01/14}{\pkg{kpfonts} load before \pkg{lwarp}.}
 %    \begin{macrocode}
-\LWR at checkloadbefore{#1}{ctex}
-\LWR at checkloadbefore{#1}{fontspec}
-\LWR at checkloadbefore{#1}{inputenc}
-\LWR at checkloadbefore{#1}{inputenx}
-\LWR at checkloadbefore{#1}{nfssext-cfr}
-\LWR at checkloadbefore{#1}{fontaxes}
-\LWR at checkloadbefore{#1}{kotex}
-\LWR at checkloadbefore{#1}{kpfonts}% textcomp option clash
-\LWR at checkloadbefore{#1}{luatexja}
-\LWR at checkloadbefore{#1}{luatexja-fontspec}
-\LWR at checkloadbefore{#1}{luatexko}
-\LWR at checkloadbefore{#1}{morewrites}
-\LWR at checkloadbefore{#1}{newclude}
-\LWR at checkloadbefore{#1}{newunicodechar}
-\LWR at checkloadbefore{#1}{plext}
-\LWR at checkloadbefore{#1}{xeCJK}
-\LWR at checkloadbefore{#1}{xetexko}
-\LWR at checkloadbefore{#1}{zxjatype}
+    \LWR at checkloadbefore{ctex}
+    \LWR at checkloadbefore{fontspec}
+    \LWR at checkloadbefore{inputenc}
+    \LWR at checkloadbefore{inputenx}
+    \LWR at checkloadbefore{nfssext-cfr}
+    \LWR at checkloadbefore{fontaxes}
+    \LWR at checkloadbefore{kotex}
+    \LWR at checkloadbefore{kpfonts}% textcomp option clash
+    \LWR at checkloadbefore{luatexja}
+    \LWR at checkloadbefore{luatexja-fontspec}
+    \LWR at checkloadbefore{luatexko}
+    \LWR at checkloadbefore{morewrites}
+    \LWR at checkloadbefore{newclude}
+    \LWR at checkloadbefore{newunicodechar}
+    \LWR at checkloadbefore{plext}
+    \LWR at checkloadbefore{xeCJK}
+    \LWR at checkloadbefore{xetexko}
+    \LWR at checkloadbefore{zxjatype}
 }
 %    \end{macrocode}
 % \end{macro}
@@ -15772,16 +16005,17 @@
 % Error if braces are used in optional argument.
 % This can cause an error, so tell how to avoid.
 % \changes{v0.896}{2021/03/14}{Warn if package option has braces.}
+% \changes{v0.897}{2021/05/08}{Fixed warning.}
 %    \begin{macrocode}
 \IfSubStr{\detokenize\expandafter{#1}}{\LWRleftbrace}%
     {%
         \PackageError{lwarp}{%
             You used:\MessageBreak
-            \protect\requirepackage[#1]{#2}\MessageBreak
+            \protect\usepackage[#1]{#2}\MessageBreak
             Braces in the package options will fail with Lwarp.\MessageBreak
             Instead, use:\MessageBreak
             \protect\PassOptionsToPackage{#1}{#2}\MessageBreak
-            \protect\requirepackage{#2}\MessageBreak
+            \protect\usepackage{#2}\MessageBreak
             near the line number given below.\MessageBreak
             Enter 'h' for more info%
         }%
@@ -20280,7 +20514,7 @@
 -- Copyright 2016-2021 Brian Dunn
 
 
-printversion = "v0.896"
+printversion = "v0.897"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -33774,7 +34008,7 @@
 
 
 
-% \begin{macro}{\LWR at href} \oarg{options} \marg{URL}
+% \begin{macro}{\LWR at href} \oarg{options} \marg{URL} \marg{text}
 %
 % Create a link with accompanying text:
 %
@@ -34741,19 +34975,22 @@
 % \end{macro}
 
 
-% \subsection{High-level \TOC\ commands}
+% \subsection{\TOC\ commands}
 
 % \label{sec:listof}
-% \begin{macro}{\listof} \marg{type} \marg{title}
+% \begin{macro}{\LWR at listof} \marg{type} \marg{title}
 %
-% Emulate the \cs{listof} command from the \pkg{float} package (\cref{sec:newfloat}).
+% Emulate the \cs{listof} command
+% from the \pkg{float} package (\cref{sec:float}).
 % Used to create lists of custom float types.  Also used to redefine
-% the standard \LaTeX{} \cs{listoffigures} and \cs{listoftables} commands.
+% the standard \LaTeX{} \cs{listoffigures} and \cs{listoftables} commands,
+% and in \pkg{tocloft} and \pkg{memoir}.
 %
 % \changes{v0.57}{2018/05/26}{Fix: Provide \cs{l at name} if not defined.}
 % \changes{v0.61}{2018/09/26}{Fix: \pkg{newfloat} lists.}
+% \changes{v0.897}{2021/05/18}{Improved compatibility with \pkg{newfloat}, \pkg{keyfloat}.}
 %    \begin{macrocode}
-\NewDocumentCommand{\listof}{m +m}{%
+\NewDocumentCommand{\LWR at listof}{m +m}{%
     \@ifundefined{l@#1}{%
         \csdef{l@#1}##1##2{\hypertocfloat{1}{#1}{\@nameuse{ext@#1}}{##1}{##2}}%
     }{}%
@@ -38876,6 +39113,7 @@
 
 % Options for siunitx:
 % \changes{v0.50}{2018/02/24}{\pkg{siunitx}: Improved units.}
+% \changes{v0.897}{2021/05/23}{\pkg{siunitx}: Rollback for v2.}
 %    \begin{macrocode}
 \newrobustcmd{\LWR at siunitx@textcelsius}{\HTMLentity{deg}C}
 \newrobustcmd{\LWR at siunitx@textdegree}{\HTMLentity{deg}}
@@ -38898,7 +39136,7 @@
     text-degree = {\LWR at siunitx@textdegree},
     text-arcminute = {\LWR at siunitx@textprime} ,
     text-arcsecond = {\LWR at siunitx@textdblprime} ,
-}{siunitx}
+}{siunitx-v2}
 %    \end{macrocode}
 
 %    \begin{macrocode}
@@ -41819,7 +42057,7 @@
 % \changes{v0.45}{2017/12/03}{\pkg{memoir}: Added.}
 % \changes{v0.84}{2020/03/31}{\pkg{memoir}: Preloads \pkg{xcolor}.}
 %
-% \codeall
+% \codeprint
 %    \begin{macrocode}
 \begin{warpprint}
 \@ifclassloaded{memoir}{\LWR at origRequirePackage{xcolor}}{}
@@ -47789,8 +48027,36 @@
 %
 %
 %
+% \iffalse
+%<*centerlastline>
+% \fi
 %
+% \part{lwarp-centerlastline.sty}
+%
+% \section{centerlastline}
+%
+% \DescribePackage{centerlastline}
+% \pkg{centerlastline} is ignored.
+%
+% \changes{v0.897}{2021/04/18}{\pkg{centerlastline}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackageDrop{centerlastline}[2020/10/12]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\providecommand{\centerlastline}{}
+\def\endcenterlastline{\par}
+%    \end{macrocode}
+%
 % \iffalse
+%</centerlastline>
+% \fi
+%
+%
+% \iffalse
 %<*centernot>
 % \fi
 %
@@ -51391,6 +51657,45 @@
 %
 %
 % \iffalse
+%<*decorule>
+% \fi
+%
+% \part{lwarp-decorule.sty}
+%
+% \section{decorule}
+%
+% \credits{Peter Flynn}
+%
+% \DescribePackage{decorule}
+% \pkg{decorule} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.897}{2021/05/02}{\pkg{decorule}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{decorule}[2020/04/01]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\xpretocmd{\decorule}
+    {\begin{lateximage}*[decorule]}
+    {}
+    {\LWR at patcherror{decorule}{decorule A}}
+
+\xapptocmd{\decorule}
+    {\end{lateximage}}
+    {}
+    {\LWR at patcherror{decorule}{decorule B}}
+%    \end{macrocode}
+%
+% \iffalse
+%</decorule>
+% \fi
+%
+%
+%
+% \iffalse
 %<*diagbox>
 % \fi
 %
@@ -54276,6 +54581,96 @@
 %
 %
 % \iffalse
+%<*fancypar>
+% \fi
+%
+% \part{lwarp-fancypar.sty}
+%
+% \section{fancypar}
+%
+% \credits{Gonzalo Medina}
+%
+% \DescribePackage{fancypar}
+% \pkg{fancypar} is used as-is for print output,
+% and emulated for \HTML.
+%
+% \cs{NotebookPar} and related are used as-is inside a \env{lateximage},
+% \trouble[\CSS\ classes]{fancypar=\pkg{fancypar}}
+% but for \HTML\ these are emulated as a \element{div} of
+% class \attribute{NotebookPar}, etc.
+% For \HTML, the package options and the macro optional arguments are ignored.
+% The user must provide custom \CSS\ for each if visual effects are required.
+% See \cref{sec:csscustomization}.
+%
+% If using a custom paragraph style,
+% \trouble[custom styles]{fancypar=\pkg{fancypar}}
+% such as \cs{MyStylePar} from the documentation,
+% use the following to generate an \HTML\ \element{div} of class \attribute{MyStylePar}:
+% \begin{sourceverb}
+% ... (existing definiton of \MyStylePar, print version) ...
+% \begin{warpHTML}
+% \AddFancyparClass{MyStyle}
+% \end{warpHTML}
+% \end{sourceverb}
+% \cs{MyStylePar} is then modified to emulate \HTML.
+% An optional argument is allowed, which is ignored.
+%
+% \changes{v0.897}{2021/05/02}{\pkg{fancypar}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{fancypar}[2019/01/18]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\begin{warpHTML}
+\makeatletter
+
+\newcommand{\LWR at fancypar}[2]{%
+    \begin{BlockClass}{#1Par}
+    #2
+    \end{BlockClass}
+}
+
+\newcommand{\LWR at HTML@NotebookPar}[2][]{\LWR at fancypar{Notebook}{#2}}
+\LWR at formatted{NotebookPar}
+
+\newcommand{\LWR at HTML@ZebraPar}[2][]{\LWR at fancypar{Zebra}{#2}}
+\LWR at formatted{ZebraPar}
+
+\newcommand{\LWR at HTML@DashedPar}[2][]{\LWR at fancypar{Dashed}{#2}}
+\LWR at formatted{DashedPar}
+
+\newcommand{\LWR at HTML@MarkedPar}[2][]{\LWR at fancypar{Marked}{#2}}
+\LWR at formatted{MarkedPar}
+
+\newcommand{\LWR at HTML@UnderlinedPar}[2][]{\LWR at fancypar{Underlined}{#2}}
+\LWR at formatted{UnderlinedPar}
+
+
+\newcommand{\LWR at HTML@add at fancy@format}{}
+\LWR at formatted{add at fancy@format}
+
+
+\newcommand{\AddFancyparClass}[1]{%
+    \expandafter\newcommand\csname LWR at HTML@#1Par\endcsname[2][]{%
+        \LWR at fancypar{#1}{##2}%
+    }
+    \LWR at formatted{#1Par}
+}
+
+\makeatother
+\end{warpHTML}
+%    \end{macrocode}
+%
+% \iffalse
+%</fancypar>
+% \fi
+%
+%
+%
+% \iffalse
 %<*fancyref>
 % \fi
 %
@@ -55210,7 +55605,7 @@
 % \codehtml
 %
 %    \begin{macrocode}
-\LWR at ProvidesPackagePass{fixme}[2017/03/05]
+\LWR at ProvidesPackagePass{fixme}[2019/01/03]
 %    \end{macrocode}
 %
 % Restore \pkg{lwarp}'s version of \cs{@wrindex},
@@ -55231,26 +55626,32 @@
 }
 %    \end{macrocode}
 %
-% Other modifications:
+% Other modifications.
+% Done \cs{AtBeginDocument} to hopefully work if the user customizes the layouts.
+% \changes{v0.897}{2021/04/19}{\pkg{fixme}: Modified \cs{AtBeginDocument}.}
 %    \begin{macrocode}
+\AtBeginDocument{
+
 \def\FXFaceInlineHTMLStyle{font-weight:bold}
 
-\renewcommand*\FXLayoutInline[3]{ %
-\InlineClass[\FXFaceInlineHTMLStyle]{fixmeinline}%
-    {\@fxtextstd{#1}{#2}{#3}}%
+\renewcommand*\FXLayoutInline[3]{ % space
+    \InlineClass[\FXFaceInlineHTMLStyle]{fixmeinline}%
+        {\@fxtextstd{#1}{#2}{#3}}%
 }
 
 \def\FXFaceEnvHTMLStyle{font-weight:bold}
 
 \renewcommand*\FXEnvLayoutPlainBegin[2]{%
-\BlockClass[\FXFaceEnvHTMLStyle]{fixmebold}
-\ignorespaces#2 \fxnotename{#1}: \ignorespaces}
+    \BlockClass[\FXFaceEnvHTMLStyle]{fixmebold}
+    \ignorespaces#2 \fxnotename{#1}: \ignorespaces%
+}
 
 \renewcommand*\FXEnvLayoutPlainEnd[2]{\endBlockClass}
 
 \renewcommand*\FXEnvLayoutSignatureBegin[2]{%
-\BlockClass[\FXFaceEnvHTMLStyle]{fixmebold}
-\fxnotename{#1}: \ignorespaces}
+    \BlockClass[\FXFaceEnvHTMLStyle]{fixmebold}
+    \fxnotename{#1}: \ignorespaces%
+}
 
 \renewcommand*\FXEnvLayoutSignatureEnd[2]{\@fxsignature{#2}\endBlockClass}
 
@@ -55257,9 +55658,9 @@
 \def\FXFaceSignatureHTMLStyle{font-style:italic}
 
 \DeclareRobustCommand*\@fxsignature[1]{%
-\ifthenelse{\equal{#1}{}}%
-    {}%
-    { -- {\InlineClass[\FXFaceSignatureHTMLStyle]{fixmesignature}{#1}}}%
+    \ifthenelse{\equal{#1}{}}%
+        {}%
+        { -- {\InlineClass[\FXFaceSignatureHTMLStyle]{fixmesignature}{#1}}}%
 }
 
 
@@ -55268,6 +55669,8 @@
 \renewcommand\FXTargetLayoutPlain[2]{%
     \InlineClass[\FXFaceTargetHTMLStyle]{fixmetarget}{#2}%
 }
+
+}% \AtBeginDocument
 %    \end{macrocode}
 
 % \iffalse
@@ -55410,6 +55813,10 @@
 % |boxed|, or |ruled|, so \CSS\ may be used to format by float style as well.
 % Default formatting by \CSS\ is provided for |ruled| and |boxed| styles.
 %
+% Always declare a \cs{newfloat} before modifying it with \cs{floatname}, etc.
+% \trouble[not seem to be a floating environment]{float>not seem to be a floating environment}
+% \trouble{float=\pkg{float}}
+%
 % \changes{v0.20}{2017/01/22}{\pkg{float}: Improved float caption type handling.}
 %
 % \codehtml
@@ -55417,8 +55824,9 @@
 \LWR at ProvidesPackageDrop{float}[2001/11/08]
 %    \end{macrocode}
 
+
 % \begin{macro}{\LWR at floatstyle}
-% The default float style:
+% The default float style.
 %    \begin{macrocode}
 \newcommand*{\LWR at floatstyle}{plain}
 %    \end{macrocode}
@@ -55437,11 +55845,13 @@
         {\DeclareFloatingEnvironment[fileext=#3,within=#4]{#1}}%
         {\DeclareFloatingEnvironment[fileext=#3]{#1}}%
 %    \end{macrocode}
+%
 % Remember the float style:
 % \changes{v0.57}{2018/05/14}{\pkg{float}: Added float styles.}
 %    \begin{macrocode}
     \csedef{LWR at floatstyle@#1}{\LWR at floatstyle}%
 %    \end{macrocode}
+%
 % \pkg{newfloat} package automatically creates the \cs{listof} command
 % for new floats, but \pkg{float} does not,
 % so remove \cs{listof} here in case it is manually created later.
@@ -55449,6 +55859,7 @@
     \cslet{listof#1s}\relax%
     \cslet{listof#1es}\relax%
 %    \end{macrocode}
+%
 % Likesize, \pkg{newfloat} also creates \cs{l@<type>}, but \pkg{float} does not,
 % so remove it here:
 % \changes{v0.57}{2018/05/26}{\pkg{float}: Fix: Do not pre-define \cs{l at name}.}
@@ -55474,6 +55885,7 @@
 %    \end{macrocode}
 % \end{noindmacro}
 
+
 % \begin{noindmacro}{\floatplacement} \marg{type} \marg{placement}
 %
 % Float placement is ignored.
@@ -55484,6 +55896,7 @@
 %    \end{macrocode}
 % \end{noindmacro}
 
+
 % \begin{noindmacro}{\floatstyle} \marg{style}
 %
 % Remember the style for future floats:
@@ -55490,10 +55903,11 @@
 %    \begin{macrocode}
 \newcommand{\floatstyle}[1]{%
     \def\LWR at floatstyle{#1}%
-}
+}%
 %    \end{macrocode}
 % \end{noindmacro}
 
+
 % \begin{noindmacro}{\restylefloat} * \marg{type}
 %
 % Remember the style for this float:
@@ -55504,8 +55918,13 @@
 %    \end{macrocode}
 % \end{noindmacro}
 
+
 % \begin{noindmacro}{\listof}
-% See \cref{sec:listof} for the \cs{listof} command in the \pkg{lwarp} core.
+% See \cref{sec:listof} for the \cs{LWR at listof} command in the \pkg{lwarp} core.
+% \changes{v0.897}{2021/05/18}{\pkg{float}: Improved compatibility with \pkg{newfloat}, \pkg{keyfloat}.}
+%    \begin{macrocode}
+\newcommand{\listof}{\LWR at listof}
+%    \end{macrocode}
 % \end{noindmacro}
 
 % \iffalse
@@ -57119,8 +57538,56 @@
 %
 %
 %
+% \iffalse
+%<*froufrou>
+% \fi
 %
+% \part{lwarp-froufrou.sty}
+%
+% \section{froufrou}
+%
+% \credits{Nelson Lago}
+%
+% \DescribePackage{froufrou}
+% \pkg{froufrou} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.897}{2021/05/02}{\pkg{froufrou}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{froufrou}[2020/12/22]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ExplSyntaxOn
+\xpretocmd{\setfroufrou}
+    {\edef\LWR at latestfroufrou{\detokenize{#1}}}
+    {}
+    {\LWR at patcherror{froufrou}{setfroufrou}}
+\ExplSyntaxOff
+
+\xpatchcmd{\@realfroufrou}
+    {\@froufrouOrnament}
+    {%
+        \begin{center}
+        \begin{lateximage}*[froufrou][\LWR at latestfroufrou]%
+        \@froufrouOrnament%
+        \end{lateximage}
+        \end{center}
+    }
+    {}
+    {\LWR at patcherror{froufrou}{@realfroufrou}}
+%    \end{macrocode}
+%
 % \iffalse
+%</froufrou>
+% \fi
+%
+%
+%
+%
+% \iffalse
 %<*ftcap>
 % \fi
 %
@@ -58429,9 +58896,9 @@
 
 % \begin{noindmacro}{\LWR at includegraphicsb} * \oarg{2: options} \oarg{3: options} \marg{4: filename}
 %
-% \pkg{graphics} syntax is \cs{includegraphics} * \oarg{llx,lly} \oarg{urx,ury} \marg{file}
+% \pkg{graphics} syntax is \cs{includegraphics} * \oarg{llx,lly} \oarg{urx,ury} \marg{filename}
 %
-% \pkg{graphicx} syntax is \cs{includegraphics} \oarg{key values} \marg{file}
+% \pkg{graphicx} syntax is \cs{includegraphics} \oarg{key values} \marg{filename}
 %
 % If |#3| is empty, only one optional argument was given, thus \pkg{graphicx} syntax.
 %
@@ -58507,6 +58974,10 @@
 %
 % Fully expand and detokenize the filename,
 % changing the file extension to \filenm{.svg} if necessary.
+%
+% Note that uppercase file extensions are detected and reported as lowercase,
+% so \pkg{lwarp} can only report to the browser lowercase extensions,
+% so all images must have lowercase file extensions.
 % \changes{v0.59}{2018/08/28}{\pkg{graphics}: Fix: Expand filename.}
 % \changes{v0.61}{2018/10/01}{\pkg{graphics}: Set keys before using filename, for \pkg{epsfig}.}
 %    \begin{macrocode}
@@ -71852,9 +72323,39 @@
 %
 %
 %
+% \iffalse
+%<*pbalance>
+% \fi
 %
+% \part{lwarp-pbalance.sty}
 %
+% \section{pbalance}
+%
+% \DescribePackage{pbalance}
+% \pkg{pbalance} is ignored.
+%
+% \changes{v0.897}{2021/04/18}{\pkg{pbalance}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\RequirePackage{balance}
+
+\LWR at ProvidesPackageDrop{pbalance}[2020/12/16]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\newcommand\shrinkLastPage[1]{}
+%    \end{macrocode}
+%
 % \iffalse
+%</pbalance>
+% \fi
+%
+%
+%
+%
+% \iffalse
 %<*pbox>
 % \fi
 %
@@ -77113,9 +77614,66 @@
 % \credits{Joseph Wright}
 %
 % \DescribePackage{siunitx}
-% \pkg{siunitx} is patched for use by \pkg{lwarp},
+% \pkg{siunitx-v2} is patched for use by \pkg{lwarp},
 % and is emulated for \brand{MathJax}.
+% Use as:
+% \begin{sourceverb}
+% \usepackage{siunitx}[=v2]
+% \end{sourceverb}
 %
+% \pkg{siunitx} v3 is not yet supported.
+%
+% ^^A \limitssiunitx
+%
+% \changes{v0.897}{2021/05/23}{\pkg{siunitx}: Rollback for v2.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{2}{2010-05-23}{lwarp-siunitx-v2.sty}
+\DeclareRelease{v2}{2010-05-23}{lwarp-siunitx-v2.sty}
+\DeclareCurrentRelease{}{2021-05-17}
+
+\PackageWarningNoLine{lwarp}
+    {%
+        **************\MessageBreak
+        Siunitx version 3 is not yet supported by Lwarp.\MessageBreak
+        V2 emulation is used here.\MessageBreak
+        **************
+    }
+
+\RequirePackage{xcolor}% for \convertcolorspec
+
+% \LWR at ProvidesPackagePass{siunitx}[2021-05-21]
+
+\RequirePackage{siunitx-v2}
+%    \end{macrocode}
+
+% \iffalse
+%</siunitx>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
+%<*siunitx-v2>
+% \fi
+%
+% \part{lwarp-siunitx-v2.sty}
+
+% \section{siunitx-v2}
+%
+% \credits{Joseph Wright}
+%
+% \DescribePackage{siunitx-v2}
+% \pkg{siunitx-v2} is patched for use by \pkg{lwarp},
+% and is emulated for \brand{MathJax}.
+%
 % \limitssiunitx
 %
 % \changes{v0.36}{2017/08/17}{\pkg{siunitx}: Improved symbol support.}
@@ -77122,6 +77680,7 @@
 % \changes{v0.37}{2017/08/17}{\pkg{siunitx}: Improved symbol support.}
 % \changes{v0.38}{2017/08/26}{\pkg{siunitx}: Removed from \pkg{lwarp} core.}
 % \changes{v0.50}{2018/10/23}{\pkg{siunitx}: Fix: Loads \pkg{xcolor}.}
+% \changes{v0.897}{2021/05/23}{\pkg{siunitx-v2}: Rollback for v2.}
 %
 % \codehtml
 %
@@ -77128,18 +77687,18 @@
 %    \begin{macrocode}
 \RequirePackage{xcolor}% for \convertcolorspec
 
-\LWR at ProvidesPackagePass{siunitx}[2018/05/17]
+\LWR at ProvidesPackagePass{siunitx-v2}[2021-04-17]
 %    \end{macrocode}
 
 % \changes{v0.50}{2018/02/24}{\pkg{siunitx}: Improved units.}
 %    \begin{macrocode}
 \AtBeginDocument{% in case textcomp was not loaded
-\DeclareSIUnit\bohr{\textit{a}\textsubscript{0}}
-\DeclareSIUnit\clight{\textit{c}\textsubscript{0}}
-\DeclareSIUnit\elementarycharge{\textit{e}}
-\DeclareSIUnit\electronmass{\textit{m}\textsubscript{e}}
-\DeclareSIUnit\hartree{\textit{E}\textsubscript{h}}
-\DeclareSIUnit\planckbar{\LWR at siunitx@textplanckbar}
+    \DeclareSIUnit\bohr{\textit{a}\textsubscript{0}}
+    \DeclareSIUnit\clight{\textit{c}\textsubscript{0}}
+    \DeclareSIUnit\elementarycharge{\textit{e}}
+    \DeclareSIUnit\electronmass{\textit{m}\textsubscript{e}}
+    \DeclareSIUnit\hartree{\textit{E}\textsubscript{h}}
+    \DeclareSIUnit\planckbar{\LWR at siunitx@textplanckbar}
 }% AtBeginDocument
 %    \end{macrocode}
 %
@@ -77158,44 +77717,53 @@
 % Modified to set set \HTML\ \cs{textcolor} if not black:
 % \changes{v0.48}{2018/02/14}{\pkg{siunitx}: Improved color output.}
 %    \begin{macrocode}
-\cs_undefine:N \__siunitx_print_aux:
-\cs_new_protected:Npn \__siunitx_print_aux:
+\cs_set_protected:Npn \__siunitx_print_aux:
   {
     \text
       {
         \__siunitx_ensure_ltr:n
           {
-            \color at begingroup
+%    \end{macrocode}
+% \cs{color at endgroup} was adding a paragraph break, so use a regular group instead.
+% \changes{v0.897}{2021/05/23}{\pkg{siunitx-v2}: Regular group instead of color group.}
+%    \begin{macrocode}
+%             \color at begingroup
+            \begingroup% lwarp
+%
             \__siunitx_print_color:
             \__siunitx_font_shape:
             \__siunitx_font_weight:
             \use:c
               {
-                @@_ \l__siunitx_print_type_tl _
+                __siunitx_ \l__siunitx_print_type_tl _
                 text \l__siunitx_font_family_tl :
               }
-            \bool_if:NTF \l__siunitx_font_math_mode_bool
-              { \__siunitx_print_math: }
-              {
-                \LWR at findcurrenttextcolor% lwarp
-                \ifdefstring{\LWR at tempcolor}{000000}% lwarp
-                {\__siunitx_print_text:}% lwarp
-                {% lwarp
-                    \LWR at textcurrentcolor{% lwarp
-                        \__siunitx_print_text:
-                    }% lwarp
-                }% lwarp
-              }
-            \color at endgroup
+%    \end{macrocode}
+% \changes{v0.897}{2021/05/23}{\pkg{siunitx-v2}: Do not use math mode.}
+%    \begin{macrocode}
+%             \bool_if:NTF \l__siunitx_font_math_mode_bool
+%               {
+%                     \__siunitx_print_math:
+%               }
+               {
+                    \LWR at findcurrenttextcolor% lwarp
+                    \ifdefstring{\LWR at tempcolor}{000000}% lwarp
+                        {\__siunitx_print_text:}% lwarp
+                        {% lwarp
+                            \LWR at textcurrentcolor{% lwarp
+                                \__siunitx_print_text:
+                            }% lwarp
+                        }% lwarp
+               }
+%             \color at endgroup
+            \endgroup% lwarp
+%
           }
       }
   }
 
-
-\cs_undefine:N \__siunitx_set_math_fam:n
-\cs_new_protected:Npn \__siunitx_set_math_fam:n #1 {
-  \int_new:c { c__siunitx_math #1 _int }
-  \group_begin:% lwarp
+\cs_set_protected:Npn \__siunitx_set_math_fam:n #1 {
+  \group_begin:
     \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
     \LetLtxMacro\mbox\LWR at print@mbox% lwarp
     \hbox_set:Nn \l__siunitx_tmp_box
@@ -77204,15 +77772,15 @@
           {
             \use:c { math #1 }
               {
-                \int_gset:cn { c__siunitx_math #1 _int } { \fam }
+                \int_const:cn { c__siunitx_math #1 _int } { \fam }
               }
           }
       }
-  \group_end:% lwarp
+  \group_end:
 }
 
-\cs_undefine:N \__siunitx_combined_output:n
-\cs_new_protected:Npn \__siunitx_combined_output:n #1 {
+\cs_set_protected:Npn \__siunitx_combined_output:n #1 {
+%
     \group_begin:% lwarp
     \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
     \LetLtxMacro\mbox\LWR at print@mbox% lwarp
@@ -77243,10 +77811,12 @@
         \endgroup%    lwarp
         \__siunitx_unit_output_print:
     }
-    \group_end:% lwarp
+   \group_end:% lwarp
+%
 }
 %    \end{macrocode}
 %
+%
 % For |parse-numbers=false|:
 % \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \brand{MathJax}.}
 %    \begin{macrocode}
@@ -77269,7 +77839,7 @@
                 \LWR at subsingledollar{% lwarp
                     \textbackslash( \LWR at HTMLsanitize{#1} \textbackslash)% lwarp
                 }{siunitx}{%
-                    \__siunitx_print:nn { number } {
+                    \__siunitx_print:nn { number } {%
                         \LWR at origensuredmath{#1}%
                     } % lwarp
                 }% lwarp
@@ -77294,7 +77864,7 @@
                 }{siunitx}{%
                     \__siunitx_print:nn { number } {
                         \LWR at origensuredmath{#1}%
-                    } % lwarp
+                    }% lwarp
                 }% lwarp
         \endgroup%    lwarp
       \__siunitx_unit_output_print:
@@ -77302,11 +77872,11 @@
 }
 %
 %    \end{macrocode}
+%
 % For quotients, the fraction code is replaced by the symbol code:
 % \changes{v0.48}{2018/02/14}{\pkg{siunitx}: Changes fraction to symbol.}
 %    \begin{macrocode}
-\cs_undefine:N \__siunitx_number_output_quotient_fraction:
-\cs_new_protected:Npn \__siunitx_number_output_quotient_fraction: {
+\cs_set_protected:Npn \__siunitx_number_output_quotient_fraction: {
   \bool_set_true:N \l__siunitx_number_compound_bool
   \__siunitx_number_output_quotient_aux_i:
   \tl_set_eq:NN \l__siunitx_number_out_tl
@@ -77317,11 +77887,11 @@
   \__siunitx_number_output_single_aux:
 }
 %    \end{macrocode}
+%
 % For units, the fraction code is replaced by the symbol code:
 % \changes{v0.48}{2018/02/14}{\pkg{siunitx}: Changes fraction to symbol.}
 %    \begin{macrocode}
-\cs_undefine:N \__siunitx_unit_format_fraction_fraction:
-\cs_new_protected:Npn \__siunitx_unit_format_fraction_fraction: {
+\cs_set_protected:Npn \__siunitx_unit_format_fraction_fraction: {
   \__siunitx_unit_format_fraction_symbol_aux:
   \int_compare:nNnT { \l__siunitx_unit_denominator_int } > { 1 }
     {
@@ -77336,10 +77906,10 @@
   \tl_put_right:NV \l__siunitx_unit_tl \l__siunitx_unit_denominator_tl
 }
 %    \end{macrocode}
+%
 % \changes{v0.50}{2018/02/24}{\pkg{siunitx}: Improved units.}
 %    \begin{macrocode}
-\cs_undefine:N \__siunitx_angle_print_astronomy_aux:
-\cs_new_protected:Npn \__siunitx_angle_print_astronomy_aux: {
+\cs_set_protected:Npn \__siunitx_angle_print_astronomy_aux: {
   \prop_get:NnNT \l__siunitx_number_out_prop { mantissa-integer }
     \l__siunitx_tmpa_tl
     { \__siunitx_print:nV { number } \l__siunitx_tmpa_tl }
@@ -77378,8 +77948,7 @@
 %
 % \changes{v0.79}{2020/01/20}{\pkg{siunitx}: Fix: \cs{square}, \cs{cubed}.}
 %    \begin{macrocode}
-\cs_undefine:N \__siunitx_textsuperscript:n
-\cs_new_protected:Npn \__siunitx_textsuperscript:n #1 {\textsuperscript{#1}}
+\cs_set_protected:Npn \__siunitx_textsuperscript:n #1 {\textsuperscript{#1}}
 %    \end{macrocode}
 %
 % \begin{noindmacro}{\num} \oarg{options} \marg{value}
@@ -77447,6 +78016,7 @@
 %    \end{macrocode}
 % \end{noindmacro}
 %
+%
 % \begin{noindmacro}{\SIrange} \oarg{options} \marg{value1} \marg{value2} \marg{unit}
 %    \begin{macrocode}
 \RenewDocumentCommand{\SIrange}{o m m m}
@@ -77938,13 +78508,12 @@
 %    \end{macrocode}
 
 % \iffalse
-%</siunitx>
+%</siunitx-v2>
 % \fi
 %
 %
 %
 %
-%
 % \iffalse
 %<*skmath>
 % \fi
@@ -84384,7 +84953,7 @@
     \@ifundefined{c@#3depth}{\newcounter{#3depth}}{}%
     \setcounter{#3depth}{1}%
     \@namedef{cftmark#3}{}%
-    \@namedef{listof#2}{\listof{#2}{#4}}%
+    \@namedef{listof#2}{\LWR at listof{#2}{#4}}%
     \@namedef{@cftmake#3title}{}%
     \expandafter\newlength\csname cftbefore#3titleskip\endcsname%
     \expandafter\newlength\csname cftafter#3titleskip\endcsname%
@@ -89871,7 +90440,7 @@
     \@ifundefined{c@#3depth}{\newcounter{#3depth}}{}%
     \setcounter{#3depth}{1}%
     \@namedef{#3mark}{}%
-    \@namedef{#2}{\listof{#2}{#4}}%
+    \@namedef{#2}{\LWR at listof{#2}{#4}}%
     \@namedef{@cftmake#3title}{}%
     \@ifundefined{cftbefore#3titleskip}{%
         \expandafter\newlength\csname cftbefore#3titleskip\endcsname%
@@ -90170,6 +90739,7 @@
 \renewcommand*{\epigraphpicture}{}
 %    \end{macrocode}
 %
+%
 % \subsection{Poetry}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2021-05-24 20:17:39 UTC (rev 59329)
@@ -103,6 +103,7 @@
 \file{lwarp-caption.sty}{\from{lwarp.dtx}{caption}}
 \file{lwarp-caption3.sty}{\from{lwarp.dtx}{caption3}}
 \file{lwarp-cases.sty}{\from{lwarp.dtx}{cases}}
+\file{lwarp-centerlastline.sty}{\from{lwarp.dtx}{centerlastline}}
 \file{lwarp-centernot.sty}{\from{lwarp.dtx}{centernot}}
 \file{lwarp-changebar.sty}{\from{lwarp.dtx}{changebar}}
 \file{lwarp-changelayout.sty}{\from{lwarp.dtx}{changelayout}}
@@ -139,6 +140,7 @@
 \file{lwarp-dblfnote.sty}{\from{lwarp.dtx}{dblfnote}}
 \file{lwarp-dcolumn.sty}{\from{lwarp.dtx}{dcolumn}}
 \file{lwarp-decimal.sty}{\from{lwarp.dtx}{decimal}}
+\file{lwarp-decorule.sty}{\from{lwarp.dtx}{decorule}}
 \file{lwarp-diagbox.sty}{\from{lwarp.dtx}{diagbox}}
 \file{lwarp-dingbat.sty}{\from{lwarp.dtx}{dingbat}}
 \file{lwarp-DotArrow.sty}{\from{lwarp.dtx}{DotArrow}}
@@ -180,6 +182,7 @@
 \file{lwarp-extramarks.sty}{\from{lwarp.dtx}{extramarks}}
 \file{lwarp-fancybox.sty}{\from{lwarp.dtx}{fancybox}}
 \file{lwarp-fancyhdr.sty}{\from{lwarp.dtx}{fancyhdr}}
+\file{lwarp-fancypar.sty}{\from{lwarp.dtx}{fancypar}}
 \file{lwarp-fancyref.sty}{\from{lwarp.dtx}{fancyref}}
 \file{lwarp-fancytabs.sty}{\from{lwarp.dtx}{fancytabs}}
 \file{lwarp-fancyvrb.sty}{\from{lwarp.dtx}{fancyvrb}}
@@ -220,6 +223,7 @@
 \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-froufrou.sty}{\from{lwarp.dtx}{froufrou}}
 \file{lwarp-ftcap.sty}{\from{lwarp.dtx}{ftcap}}
 \file{lwarp-ftnright.sty}{\from{lwarp.dtx}{ftnright}}
 \file{lwarp-fullminipage.sty}{\from{lwarp.dtx}{fullminipage}}
@@ -381,6 +385,7 @@
 \file{lwarp-parcolumns.sty}{\from{lwarp.dtx}{parcolumns}}
 \file{lwarp-parnotes.sty}{\from{lwarp.dtx}{parnotes}}
 \file{lwarp-parskip.sty}{\from{lwarp.dtx}{parskip}}
+\file{lwarp-pbalance.sty}{\from{lwarp.dtx}{pbalance}}
 \file{lwarp-pbox.sty}{\from{lwarp.dtx}{pbox}}
 \file{lwarp-pdfcol.sty}{\from{lwarp.dtx}{pdfcol}}
 \file{lwarp-pdfcolfoot.sty}{\from{lwarp.dtx}{pdfcolfoot}}
@@ -472,6 +477,7 @@
 \file{lwarp-simplebnf.sty}{\from{lwarp.dtx}{simplebnf}}
 \file{lwarp-SIunits.sty}{\from{lwarp.dtx}{SIunits}}
 \file{lwarp-siunitx.sty}{\from{lwarp.dtx}{siunitx}}
+\file{lwarp-siunitx-v2.sty}{\from{lwarp.dtx}{siunitx-v2}}
 \file{lwarp-skmath.sty}{\from{lwarp.dtx}{skmath}}
 \file{lwarp-slantsc.sty}{\from{lwarp.dtx}{slantsc}}
 \file{lwarp-slashed.sty}{\from{lwarp.dtx}{slashed}}

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-centerlastline.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-centerlastline.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-centerlastline.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -0,0 +1,23 @@
+%%
+%% This is file `lwarp-centerlastline.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `centerlastline')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackageDrop{centerlastline}[2020/10/12]
+\providecommand{\centerlastline}{}
+\def\endcenterlastline{\par}
+\endinput
+%%
+%% End of file `lwarp-centerlastline.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-centerlastline.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-decorule.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-decorule.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-decorule.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -0,0 +1,30 @@
+%%
+%% This is file `lwarp-decorule.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `decorule')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{decorule}[2020/04/01]
+\xpretocmd{\decorule}
+    {\begin{lateximage}*[decorule]}
+    {}
+    {\LWR at patcherror{decorule}{decorule A}}
+
+\xapptocmd{\decorule}
+    {\end{lateximage}}
+    {}
+    {\LWR at patcherror{decorule}{decorule B}}
+\endinput
+%%
+%% End of file `lwarp-decorule.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-decorule.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fancypar.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fancypar.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fancypar.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -0,0 +1,57 @@
+%%
+%% This is file `lwarp-fancypar.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `fancypar')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{fancypar}[2019/01/18]
+\begin{warpHTML}
+\makeatletter
+
+\newcommand{\LWR at fancypar}[2]{%
+    \begin{BlockClass}{#1Par}
+    #2
+    \end{BlockClass}
+}
+
+\newcommand{\LWR at HTML@NotebookPar}[2][]{\LWR at fancypar{Notebook}{#2}}
+\LWR at formatted{NotebookPar}
+
+\newcommand{\LWR at HTML@ZebraPar}[2][]{\LWR at fancypar{Zebra}{#2}}
+\LWR at formatted{ZebraPar}
+
+\newcommand{\LWR at HTML@DashedPar}[2][]{\LWR at fancypar{Dashed}{#2}}
+\LWR at formatted{DashedPar}
+
+\newcommand{\LWR at HTML@MarkedPar}[2][]{\LWR at fancypar{Marked}{#2}}
+\LWR at formatted{MarkedPar}
+
+\newcommand{\LWR at HTML@UnderlinedPar}[2][]{\LWR at fancypar{Underlined}{#2}}
+\LWR at formatted{UnderlinedPar}
+
+\newcommand{\LWR at HTML@add at fancy@format}{}
+\LWR at formatted{add at fancy@format}
+
+\newcommand{\AddFancyparClass}[1]{%
+    \expandafter\newcommand\csname LWR at HTML@#1Par\endcsname[2][]{%
+        \LWR at fancypar{#1}{##2}%
+    }
+    \LWR at formatted{#1Par}
+}
+
+\makeatother
+\end{warpHTML}
+\endinput
+%%
+%% End of file `lwarp-fancypar.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fancypar.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fixme.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fixme.sty	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fixme.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -16,7 +16,7 @@
 %% and version 1.3 or later is part of all distributions of LaTeX
 %% version 2005/12/01 or later.
 
-\LWR at ProvidesPackagePass{fixme}[2017/03/05]
+\LWR at ProvidesPackagePass{fixme}[2019/01/03]
 \let\@wrindex\LWR at wrindex
 \newcommand{\ext at fixme}{lox}
 
@@ -25,24 +25,28 @@
         {\LWR at nameref{\BaseJobname-autopage-\arabic{LWR at nextautopage}} --- #1}%
         {#2}
 }
+\AtBeginDocument{
+
 \def\FXFaceInlineHTMLStyle{font-weight:bold}
 
-\renewcommand*\FXLayoutInline[3]{ %
-\InlineClass[\FXFaceInlineHTMLStyle]{fixmeinline}%
-    {\@fxtextstd{#1}{#2}{#3}}%
+\renewcommand*\FXLayoutInline[3]{ % space
+    \InlineClass[\FXFaceInlineHTMLStyle]{fixmeinline}%
+        {\@fxtextstd{#1}{#2}{#3}}%
 }
 
 \def\FXFaceEnvHTMLStyle{font-weight:bold}
 
 \renewcommand*\FXEnvLayoutPlainBegin[2]{%
-\BlockClass[\FXFaceEnvHTMLStyle]{fixmebold}
-\ignorespaces#2 \fxnotename{#1}: \ignorespaces}
+    \BlockClass[\FXFaceEnvHTMLStyle]{fixmebold}
+    \ignorespaces#2 \fxnotename{#1}: \ignorespaces%
+}
 
 \renewcommand*\FXEnvLayoutPlainEnd[2]{\endBlockClass}
 
 \renewcommand*\FXEnvLayoutSignatureBegin[2]{%
-\BlockClass[\FXFaceEnvHTMLStyle]{fixmebold}
-\fxnotename{#1}: \ignorespaces}
+    \BlockClass[\FXFaceEnvHTMLStyle]{fixmebold}
+    \fxnotename{#1}: \ignorespaces%
+}
 
 \renewcommand*\FXEnvLayoutSignatureEnd[2]{\@fxsignature{#2}\endBlockClass}
 
@@ -49,9 +53,9 @@
 \def\FXFaceSignatureHTMLStyle{font-style:italic}
 
 \DeclareRobustCommand*\@fxsignature[1]{%
-\ifthenelse{\equal{#1}{}}%
-    {}%
-    { -- {\InlineClass[\FXFaceSignatureHTMLStyle]{fixmesignature}{#1}}}%
+    \ifthenelse{\equal{#1}{}}%
+        {}%
+        { -- {\InlineClass[\FXFaceSignatureHTMLStyle]{fixmesignature}{#1}}}%
 }
 
 \def\FXFaceTargetHTMLStyle{font-style:italic}
@@ -60,6 +64,8 @@
     \InlineClass[\FXFaceTargetHTMLStyle]{fixmetarget}{#2}%
 }
 
+}% \AtBeginDocument
+
 \endinput
 %%
 %% End of file `lwarp-fixme.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -45,12 +45,13 @@
 
 \newcommand{\floatstyle}[1]{%
     \def\LWR at floatstyle{#1}%
-}
+}%
 
 \NewDocumentCommand{\restylefloat}{s m}{%
     \csedef{LWR at floatstyle@#2}{\LWR at floatstyle}%
 }
 
+\newcommand{\listof}{\LWR at listof}
 
 \endinput
 %%

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-froufrou.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-froufrou.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-froufrou.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -0,0 +1,39 @@
+%%
+%% This is file `lwarp-froufrou.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `froufrou')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{froufrou}[2020/12/22]
+\ExplSyntaxOn
+\xpretocmd{\setfroufrou}
+    {\edef\LWR at latestfroufrou{\detokenize{#1}}}
+    {}
+    {\LWR at patcherror{froufrou}{setfroufrou}}
+\ExplSyntaxOff
+
+\xpatchcmd{\@realfroufrou}
+    {\@froufrouOrnament}
+    {%
+        \begin{center}
+        \begin{lateximage}*[froufrou][\LWR at latestfroufrou]%
+        \@froufrouOrnament%
+        \end{lateximage}
+        \end{center}
+    }
+    {}
+    {\LWR at patcherror{froufrou}{@realfroufrou}}
+\endinput
+%%
+%% End of file `lwarp-froufrou.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-froufrou.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-patch-memoir.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-patch-memoir.sty	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-patch-memoir.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -687,7 +687,7 @@
     \@ifundefined{c@#3depth}{\newcounter{#3depth}}{}%
     \setcounter{#3depth}{1}%
     \@namedef{#3mark}{}%
-    \@namedef{#2}{\listof{#2}{#4}}%
+    \@namedef{#2}{\LWR at listof{#2}{#4}}%
     \@namedef{@cftmake#3title}{}%
     \@ifundefined{cftbefore#3titleskip}{%
         \expandafter\newlength\csname cftbefore#3titleskip\endcsname%

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pbalance.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pbalance.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pbalance.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -0,0 +1,24 @@
+%%
+%% This is file `lwarp-pbalance.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `pbalance')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\RequirePackage{balance}
+
+\LWR at ProvidesPackageDrop{pbalance}[2020/12/16]
+\newcommand\shrinkLastPage[1]{}
+\endinput
+%%
+%% End of file `lwarp-pbalance.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pbalance.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx-v2.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx-v2.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx-v2.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -0,0 +1,616 @@
+%%
+%% This is file `lwarp-siunitx-v2.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `siunitx-v2')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\RequirePackage{xcolor}% for \convertcolorspec
+
+\LWR at ProvidesPackagePass{siunitx-v2}[2021-04-17]
+
+\AtBeginDocument{% in case textcomp was not loaded
+    \DeclareSIUnit\bohr{\textit{a}\textsubscript{0}}
+    \DeclareSIUnit\clight{\textit{c}\textsubscript{0}}
+    \DeclareSIUnit\elementarycharge{\textit{e}}
+    \DeclareSIUnit\electronmass{\textit{m}\textsubscript{e}}
+    \DeclareSIUnit\hartree{\textit{E}\textsubscript{h}}
+    \DeclareSIUnit\planckbar{\LWR at siunitx@textplanckbar}
+}% AtBeginDocument
+
+\ExplSyntaxOn
+\cs_set_protected:Npn \__siunitx_print_aux:
+  {
+    \text
+      {
+        \__siunitx_ensure_ltr:n
+          {
+            \begingroup% lwarp
+            \__siunitx_print_color:
+            \__siunitx_font_shape:
+            \__siunitx_font_weight:
+            \use:c
+              {
+                __siunitx_ \l__siunitx_print_type_tl _
+                text \l__siunitx_font_family_tl :
+              }
+               {
+                    \LWR at findcurrenttextcolor% lwarp
+                    \ifdefstring{\LWR at tempcolor}{000000}% lwarp
+                        {\__siunitx_print_text:}% lwarp
+                        {% lwarp
+                            \LWR at textcurrentcolor{% lwarp
+                                \__siunitx_print_text:
+                            }% lwarp
+                        }% lwarp
+               }
+            \endgroup% lwarp
+          }
+      }
+  }
+
+\cs_set_protected:Npn \__siunitx_set_math_fam:n #1 {
+  \group_begin:
+    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
+    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
+    \hbox_set:Nn \l__siunitx_tmp_box
+      {
+        \ensuremath
+          {
+            \use:c { math #1 }
+              {
+                \int_const:cn { c__siunitx_math #1 _int } { \fam }
+              }
+          }
+      }
+  \group_end:
+}
+
+\cs_set_protected:Npn \__siunitx_combined_output:n #1 {
+    \group_begin:% lwarp
+    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
+    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
+  \bool_if:NTF \l__siunitx_number_parse_bool
+    {
+      \tl_clear:N \l__siunitx_number_out_tl
+      \bool_set_false:N \l__siunitx_number_compound_bool
+      \__siunitx_number_output_parse:n {#1}
+    }
+    {
+        \__siunitx_unit_output_pre_print:
+        \begingroup%    lwarp
+            \boolfalse{mathjax}%    lwarp
+            \LWR at subsingledollar{% lwarp
+                \textbackslash( \LWR at HTMLsanitize{#1} \textbackslash)% lwarp
+            }{siunitx}{%
+                \__siunitx_print:nn { number } {%
+                    \LWR at origensuredmath{#1}%
+                }%
+            }% lwarp
+        \endgroup%    lwarp
+        \__siunitx_unit_output_print:
+    }
+   \group_end:% lwarp
+}
+\cs_set_protected:Npn \__siunitx_range_numbers_aux:n #1
+  {
+    \bool_if:NTF \l__siunitx_number_parse_bool
+      {
+        \tl_clear:N \l__siunitx_number_out_tl
+        \tl_clear:N \l__siunitx_number_out_saved_tl
+        \bool_set_false:N \l__siunitx_number_compound_bool
+        \__siunitx_number_output_parse:n {#1}
+        \bool_if:NT \l__siunitx_number_compound_bool
+          { \msg_error:nnx { siunitx } { multi-part-range } {#1} }
+      }
+      {
+        \__siunitx_unit_output_pre_print:
+        \begingroup%    lwarp
+            \boolfalse{mathjax}%    lwarp
+                \LWR at subsingledollar{% lwarp
+                    \textbackslash( \LWR at HTMLsanitize{#1} \textbackslash)% lwarp
+                }{siunitx}{%
+                    \__siunitx_print:nn { number } {%
+                        \LWR at origensuredmath{#1}%
+                    } % lwarp
+                }% lwarp
+        \endgroup%    lwarp
+        \__siunitx_unit_output_print:
+      }
+  }
+\cs_set_protected:Npn \__siunitx_angle_print_direct_aux:nn #1#2 {
+  \tl_if_empty:nF {#1}
+    {
+      \tl_set:Nn \l__siunitx_unit_tl {#2}
+        \begingroup%    lwarp
+            \boolfalse{mathjax}%    lwarp
+                \LWR at subsingledollar{% lwarp
+                    \textbackslash( \LWR at HTMLsanitize{#1} \textbackslash)% lwarp
+                }{siunitx}{%
+                    \__siunitx_print:nn { number } {
+                        \LWR at origensuredmath{#1}%
+                    }% lwarp
+                }% lwarp
+        \endgroup%    lwarp
+      \__siunitx_unit_output_print:
+    }
+}
+\cs_set_protected:Npn \__siunitx_number_output_quotient_fraction: {
+  \bool_set_true:N \l__siunitx_number_compound_bool
+  \__siunitx_number_output_quotient_aux_i:
+  \tl_set_eq:NN \l__siunitx_number_out_tl
+    \l__siunitx_number_numerator_tl
+  \tl_put_right:NV \l__siunitx_number_out_tl \l__siunitx_output_quotient_tl
+  \tl_put_right:NV \l__siunitx_number_out_tl
+    \l__siunitx_number_denominator_tl
+  \__siunitx_number_output_single_aux:
+}
+\cs_set_protected:Npn \__siunitx_unit_format_fraction_fraction: {
+  \__siunitx_unit_format_fraction_symbol_aux:
+  \int_compare:nNnT { \l__siunitx_unit_denominator_int } > { 1 }
+    {
+      \bool_if:NT \l__siunitx_unit_denominator_bracket_bool
+        {
+          \tl_put_left:NV \l__siunitx_unit_denominator_tl \l__siunitx_bracket_open_tl
+          \tl_put_right:NV \l__siunitx_unit_denominator_tl \l__siunitx_bracket_close_tl
+        }
+    }
+  \tl_set_eq:NN \l__siunitx_unit_tl \l__siunitx_unit_numerator_tl
+  \tl_put_right:NV \l__siunitx_unit_tl \l__siunitx_per_symbol_tl
+  \tl_put_right:NV \l__siunitx_unit_tl \l__siunitx_unit_denominator_tl
+}
+\cs_set_protected:Npn \__siunitx_angle_print_astronomy_aux: {
+  \prop_get:NnNT \l__siunitx_number_out_prop { mantissa-integer }
+    \l__siunitx_tmpa_tl
+    { \__siunitx_print:nV { number } \l__siunitx_tmpa_tl }
+ \ifnumcomp{\value{LWR at lateximagedepth}}{>}{0}% lwarp
+ {% lateximage
+  \hbox_set:Nn \l__siunitx_angle_marker_box
+    {
+      \__siunitx_print:nn { number } { { \l__siunitx_output_decimal_tl } }
+    }
+  \hbox_set:Nn \l__siunitx_angle_unit_box
+    {
+      \__siunitx_print:nV { unit } \l__siunitx_unit_tl
+      \skip_horizontal:n { -\scriptspace }
+    }
+  \__siunitx_angle_print_astronomy_aux:n { marker }
+  \__siunitx_angle_print_astronomy_aux:n { unit }
+  \hbox_set:Nn \l__siunitx_angle_marker_box
+    {
+      \box_use:N \l__siunitx_angle_marker_box
+      \box_use:N \l__siunitx_angle_unit_box
+    }
+  \dim_compare:nNnTF
+    { \l__siunitx_angle_marker_dim } > { \l__siunitx_angle_unit_dim }
+    { \__siunitx_angle_print_astronomy_marker: }
+    { \__siunitx_angle_print_astronomy_unit: }
+ }% lateximage
+ {% not a lateximage
+      \__siunitx_print:nV { unit } \l__siunitx_unit_tl
+      \__siunitx_print:nn { number } { { \l__siunitx_output_decimal_tl } }
+ }% not a lateximage
+  \prop_get:NnNT \l__siunitx_number_out_prop { mantissa-decimal }
+    \l__siunitx_tmpa_tl
+    { \__siunitx_print:nV { number } \l__siunitx_tmpa_tl }
+}
+\cs_set_protected:Npn \__siunitx_textsuperscript:n #1 {\textsuperscript{#1}}
+\RenewDocumentCommand \num { o m } {
+  \leavevmode
+  \group_begin:% lwarp
+    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
+    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
+    \bool_set_false:N \l__siunitx_font_set_bool
+    \IfNoValueF {#1}
+      { \keys_set:nn { siunitx } {#1} }
+    \__siunitx_number_output:n {#2}
+  \group_end:% lwarp
+}
+\RenewDocumentCommand \numrange { o m m } {
+  \leavevmode
+  \group_begin:% lwarp
+    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
+    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
+    \bool_set_false:N \l__siunitx_font_set_bool
+    \IfNoValueF {#1}
+      { \keys_set:nn { siunitx } {#1} }
+    \__siunitx_range_numbers:nn {#2} {#3}
+  \group_end:% lwarp
+}
+\RenewDocumentCommand \ang { o > { \SplitArgument { 2 } { ; } } m } {
+  \group_begin:% lwarp
+    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
+    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
+    \IfNoValueF {#1}
+      { \keys_set:nn { siunitx } {#1} }
+    \__siunitx_angle_output:nnn #2
+  \group_end:% lwarp
+}
+\RenewDocumentCommand \si { o m } {
+  \leavevmode
+  \group_begin:% lwarp
+    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
+    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
+    \bool_set_false:N \l__siunitx_font_set_bool
+    \IfNoValueTF {#1}
+      { \__siunitx_unit_output:nn {#2} { } }
+      {
+        \keys_set:nn { siunitx } {#1}
+        \__siunitx_unit_output:nn {#2} {#1}
+      }
+  \group_end:% lwarp
+}
+\RenewDocumentCommand{\SIrange}{o m m m}
+{%
+  \leavevmode
+  \group_begin:% lwarp
+    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
+    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
+    \bool_set_false:N \l__siunitx_font_set_bool
+    \IfNoValueTF {#1}
+      { \__siunitx_range_unit:nnnn {#4} { } {#2} {#3} }
+      {
+        \keys_set:nn { siunitx } {#1}
+        \__siunitx_range_unit:nnnn {#4} {#1} {#2} {#3}
+      }
+  \group_end:% lwarp
+}
+\ExplSyntaxOff
+
+\begin{warpMathJax}
+\LWR at infoprocessingmathjax{siunitx}
+\CustomizeMathJax{\newcommand{\tothe}[1]{^{#1}}}
+\CustomizeMathJax{\newcommand{\raiseto}[2]{{#2}^{#1}}}
+\CustomizeMathJax{\newcommand{\LWRsiunitxEND}{}}
+\CustomizeMathJax{\def\LWRsiunitxang#1;#2;#3;#4\LWRsiunitxEND{%
+    \ifblank{#1}{}{\num{#1}\degree}%
+    \ifblank{#2}{}{\num{#2}^{\unicode{x2032}}}% \prime
+    \ifblank{#3}{}{\num{#3}^{\unicode{x2033}}}% \dblprime
+}}
+\CustomizeMathJax{\newcommand{\ang}[2][]{\LWRsiunitxang#2;;;\LWRsiunitxEND}}
+\CustomizeMathJax{\newcommand{\LWRsiunitxnumscientific}[2]{%
+    \ifblank{#1}%
+        {}%
+        {%
+            \ifstrequal{#1}{-}%
+                {-}%
+                {\LWRsiunitxprintdecimal{#1}\times}%
+        }%
+    10^{\LWRsiunitxprintdecimal{#2}}
+}}
+\ExplSyntaxOn
+\AtBeginDocument{
+\ifdefstring{\l__siunitx_output_decimal_tl}{{,}}
+    {% Use decimal comma
+        \CustomizeMathJax{\def\LWRsiunitxprintdecimalsub#1.#2.#3\LWRsiunitxEND{%
+            \mathrm{#1}%
+            \ifblank{#2}
+                {}%
+                {,\mathrm{#2}}
+        }}
+
+        \CustomizeMathJax{\newcommand{\LWRsiunitxprintdecimal}[1]{%
+            \LWRsiunitxprintdecimalsub#1...\LWRsiunitxEND%
+        }}
+    }
+    {% Use decimal point
+        \CustomizeMathJax{\def\LWRsiunitxprintdecimalsub#1,#2,#3\LWRsiunitxEND{%
+            \mathrm{#1}%
+            \ifblank{#2}
+                {}%
+                {.\mathrm{#2}}
+        }}
+
+        \CustomizeMathJax{\newcommand{\LWRsiunitxprintdecimal}[1]{%
+            \LWRsiunitxprintdecimalsub#1,,,\LWRsiunitxEND%
+        }}
+    }
+}
+\ExplSyntaxOff
+\CustomizeMathJax{\def\LWRsiunitxnumplus#1+#2+#3\LWRsiunitxEND{%
+    \ifblank{#2}
+        {\LWRsiunitxprintdecimal{#1}}% no plus
+        {%
+            \ifblank{#1}%
+                {\LWRsiunitxprintdecimal{#2}}% leading plus, ignore
+                {% a+b
+                    \LWRsiunitxprintdecimal{#1}%
+                    \unicode{x02B}% plus sign
+                    \LWRsiunitxprintdecimal{#2}%
+                }%
+        }%
+}}
+
+\CustomizeMathJax{\def\LWRsiunitxnumminus#1-#2-#3\LWRsiunitxEND{%
+    \ifblank{#2}
+        {\LWRsiunitxnumplus#1+++\LWRsiunitxEND}%
+        {%
+            \LWRsiunitxprintdecimal{#1}%
+            \unicode{x02212}% mathematical minus sign
+            \LWRsiunitxprintdecimal{#2}%
+        }%
+}}
+
+\CustomizeMathJax{\def\LWRsiunitxnumpm#1+-#2+-#3\LWRsiunitxEND{%
+    \ifblank{#2}%
+        {\LWRsiunitxnumminus#1---\LWRsiunitxEND}%
+        {%
+            \LWRsiunitxprintdecimal{#1}%
+            \unicode{x0B1}% \pm
+            \LWRsiunitxprintdecimal{#2}%
+        }%
+}}
+
+\CustomizeMathJax{\def\LWRsiunitxnumx#1x#2x#3x#4\LWRsiunitxEND{%
+    \ifblank{#2}%
+        {\LWRsiunitxnumpm#1+-+-\LWRsiunitxEND}%
+        {%
+            \ifblank{#3}%
+                {%
+                    \LWRsiunitxprintdecimal{#1}%
+                    \times%
+                    \LWRsiunitxprintdecimal{#2}%
+                }%
+                {%
+                    \LWRsiunitxprintdecimal{#1}%
+                    \times%
+                    \LWRsiunitxprintdecimal{#2}%
+                    \times%
+                    \LWRsiunitxprintdecimal{#3}%
+                }%
+        }%
+}}
+
+\CustomizeMathJax{\def\LWRsiunitxnumD#1D#2D#3\LWRsiunitxEND{%
+    \ifblank{#2}%
+        {\LWRsiunitxnumx#1xxxxx\LWRsiunitxEND}%
+        {\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
+}}
+
+\CustomizeMathJax{\def\LWRsiunitxnumd#1d#2d#3\LWRsiunitxEND{%
+    \ifblank{#2}%
+        {\LWRsiunitxnumD#1DDD\LWRsiunitxEND}%
+        {\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
+}}
+
+\CustomizeMathJax{\def\LWRsiunitxnumE#1E#2E#3\LWRsiunitxEND{%
+    \ifblank{#2}%
+        {\LWRsiunitxnumd#1ddd\LWRsiunitxEND}%
+        {\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
+}}
+
+\CustomizeMathJax{\def\LWRsiunitxnume#1e#2e#3\LWRsiunitxEND{%
+    \ifblank{#2}%
+        {\LWRsiunitxnumE#1EEE\LWRsiunitxEND}%
+        {\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
+}}
+
+\CustomizeMathJax{\def\LWRsiunitxnumcomma#1,#2,#3\LWRsiunitxEND{%
+    \ifblank{#2}
+        {\LWRsiunitxnume#1eee\LWRsiunitxEND}
+        {\LWRsiunitxnume#1.#2eee\LWRsiunitxEND}
+}}
+
+\CustomizeMathJax{\newcommand{\num}[2][]{\LWRsiunitxnumcomma#2,,,\LWRsiunitxEND}}
+\CustomizeMathJax{\newcommand{\si}[2][]{\mathrm{#2}}}
+\CustomizeMathJax{\def\LWRsiunitxSIopt#1[#2]#3{%
+    {#2}\num{#1}{#3}%
+}}
+
+\CustomizeMathJax{\newcommand{\LWRsiunitxSI}[2]{%
+    \num{#1}\,{#2}%
+}}
+\CustomizeMathJax{\newcommand{\SI}[2][]{%
+    \ifnextchar[%
+        {\LWRsiunitxSIopt{#2}}%
+        {\LWRsiunitxSI{#2}}%
+}}
+\CustomizeMathJax{\newcommand{\numlist}[2][]{\mathrm{#2}}}
+\CustomizeMathJax{\newcommand{\numrange}[3][]{\num{#2}\,\unicode{x2013}\,\num{#3}}}
+\CustomizeMathJax{\newcommand{\SIlist}[3][]{\mathrm{#2\,#3}}}
+\CustomizeMathJax{\newcommand{\SIrange}[4][]{\num{#2}\,#4\,\unicode{x2013}\,\num{#3}\,#4}}
+\CustomizeMathJax{\newcommand{\tablenum}[2][]{\mathrm{#2}}}
+\CustomizeMathJax{\newcommand{\ampere}{\mathrm{A}}}
+\CustomizeMathJax{\newcommand{\candela}{\mathrm{cd}}}
+\CustomizeMathJax{\newcommand{\kelvin}{\mathrm{K}}}
+\CustomizeMathJax{\newcommand{\kilogram}{\mathrm{kg}}}
+\CustomizeMathJax{\newcommand{\metre}{\mathrm{m}}}
+\CustomizeMathJax{\newcommand{\mole}{\mathrm{mol}}}
+\CustomizeMathJax{\newcommand{\second}{\mathrm{s}}}
+\CustomizeMathJax{\newcommand{\becquerel}{\mathrm{Bq}}}
+\CustomizeMathJax{\newcommand{\degreeCelsius}{\unicode{x2103}}}
+\CustomizeMathJax{\newcommand{\coulomb}{\mathrm{C}}}
+\CustomizeMathJax{\newcommand{\farad}{\mathrm{F}}}
+\CustomizeMathJax{\newcommand{\gray}{\mathrm{Gy}}}
+\CustomizeMathJax{\newcommand{\hertz}{\mathrm{Hz}}}
+\CustomizeMathJax{\newcommand{\henry}{\mathrm{H}}}
+\CustomizeMathJax{\newcommand{\joule}{\mathrm{J}}}
+\CustomizeMathJax{\newcommand{\katal}{\mathrm{kat}}}
+\CustomizeMathJax{\newcommand{\lumen}{\mathrm{lm}}}
+\CustomizeMathJax{\newcommand{\lux}{\mathrm{lx}}}
+\CustomizeMathJax{\newcommand{\newton}{\mathrm{N}}}
+\CustomizeMathJax{\newcommand{\ohm}{\mathrm{\Omega}}}
+\CustomizeMathJax{\newcommand{\pascal}{\mathrm{Pa}}}
+\CustomizeMathJax{\newcommand{\radian}{\mathrm{rad}}}
+\CustomizeMathJax{\newcommand{\siemens}{\mathrm{S}}}
+\CustomizeMathJax{\newcommand{\sievert}{\mathrm{Sv}}}
+\CustomizeMathJax{\newcommand{\steradian}{\mathrm{sr}}}
+\CustomizeMathJax{\newcommand{\tesla}{\mathrm{T}}}
+\CustomizeMathJax{\newcommand{\volt}{\mathrm{V}}}
+\CustomizeMathJax{\newcommand{\watt}{\mathrm{W}}}
+\CustomizeMathJax{\newcommand{\weber}{\mathrm{Wb}}}
+\CustomizeMathJax{\newcommand{\day}{\mathrm{d}}}
+\CustomizeMathJax{\newcommand{\degree}{\mathrm{^\circ}}}
+\CustomizeMathJax{\newcommand{\hectare}{\mathrm{ha}}}
+\CustomizeMathJax{\newcommand{\hour}{\mathrm{h}}}
+\CustomizeMathJax{\newcommand{\litre}{\mathrm{l}}}
+\CustomizeMathJax{\newcommand{\liter}{\mathrm{L}}}
+\CustomizeMathJax{\newcommand{\arcminute}{^\prime}}
+\CustomizeMathJax{\newcommand{\minute}{\mathrm{min}}}
+\CustomizeMathJax{\newcommand{\arcsecond}{^{\prime\prime}}}
+\CustomizeMathJax{\newcommand{\tonne}{\mathrm{t}}}
+\CustomizeMathJax{\newcommand{\astronomicalunit}{au}}
+\CustomizeMathJax{\newcommand{\atomicmassunit}{u}}
+\CustomizeMathJax{\newcommand{\bohr}{\mathit{a}_0}}
+\CustomizeMathJax{\newcommand{\clight}{\mathit{c}_0}}
+\CustomizeMathJax{\newcommand{\dalton}{\mathrm{D}_\mathrm{a}}}
+\CustomizeMathJax{\newcommand{\electronmass}{\mathit{m}_{\mathrm{e}}}}
+\CustomizeMathJax{\newcommand{\electronvolt}{\mathrm{eV}}}
+\CustomizeMathJax{\newcommand{\elementarycharge}{\mathit{e}}}
+\CustomizeMathJax{\newcommand{\hartree}{\mathit{E}_{\mathrm{h}}}}
+\CustomizeMathJax{\newcommand{\planckbar}{\mathit{\unicode{x210F}}}}
+\CustomizeMathJax{\newcommand{\angstrom}{\mathrm{\unicode{x212B}}}}
+\CustomizeMathJax{\let\LWRorigbar\bar}
+\CustomizeMathJax{\newcommand{\bar}{\mathrm{bar}}}
+\CustomizeMathJax{\newcommand{\barn}{\mathrm{b}}}
+\CustomizeMathJax{\newcommand{\bel}{\mathrm{B}}}
+\CustomizeMathJax{\newcommand{\decibel}{\mathrm{dB}}}
+\CustomizeMathJax{\newcommand{\knot}{\mathrm{kn}}}
+\CustomizeMathJax{\newcommand{\mmHg}{\mathrm{mmHg}}}
+\CustomizeMathJax{\newcommand{\nauticalmile}{\mathrm{M}}}
+\CustomizeMathJax{\newcommand{\neper}{\mathrm{Np}}}
+\CustomizeMathJax{\newcommand{\yocto}{\mathrm{y}}}
+\CustomizeMathJax{\newcommand{\zepto}{\mathrm{z}}}
+\CustomizeMathJax{\newcommand{\atto}{\mathrm{a}}}
+\CustomizeMathJax{\newcommand{\femto}{\mathrm{f}}}
+\CustomizeMathJax{\newcommand{\pico}{\mathrm{p}}}
+\CustomizeMathJax{\newcommand{\nano}{\mathrm{n}}}
+\CustomizeMathJax{\newcommand{\micro}{\mathrm{\unicode{x00B5}}}}
+\CustomizeMathJax{\newcommand{\milli}{\mathrm{m}}}
+\CustomizeMathJax{\newcommand{\centi}{\mathrm{c}}}
+\CustomizeMathJax{\newcommand{\deci}{\mathrm{d}}}
+\CustomizeMathJax{\newcommand{\deca}{\mathrm{da}}}
+\CustomizeMathJax{\newcommand{\hecto}{\mathrm{h}}}
+\CustomizeMathJax{\newcommand{\kilo}{\mathrm{k}}}
+\CustomizeMathJax{\newcommand{\mega}{\mathrm{M}}}
+\CustomizeMathJax{\newcommand{\giga}{\mathrm{G}}}
+\CustomizeMathJax{\newcommand{\tera}{\mathrm{T}}}
+\CustomizeMathJax{\newcommand{\peta}{\mathrm{P}}}
+\CustomizeMathJax{\newcommand{\exa}{\mathrm{E}}}
+\CustomizeMathJax{\newcommand{\zetta}{\mathrm{Z}}}
+\CustomizeMathJax{\newcommand{\yotta}{\mathrm{Y}}}
+\CustomizeMathJax{\newcommand{\percent}{\mathrm{\%}}}
+\CustomizeMathJax{\newcommand{\meter}{\mathrm{m}}}
+\CustomizeMathJax{\newcommand{\metre}{\mathrm{m}}}
+\CustomizeMathJax{\newcommand{\gram}{\mathrm{g}}}
+\CustomizeMathJax{\newcommand{\kg}{\kilo\gram}}
+\CustomizeMathJax{\newcommand{\of}[1]{_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\squared}{^2}}
+\CustomizeMathJax{\newcommand{\square}[1]{\mathrm{#1}^2}}
+\CustomizeMathJax{\newcommand{\cubed}{^3}}
+\CustomizeMathJax{\newcommand{\cubic}[1]{\mathrm{#1}^3}}
+\CustomizeMathJax{\newcommand{\per}{/}}
+\CustomizeMathJax{\newcommand{\celsius}{\unicode{x2103}}}
+\CustomizeMathJax{\newcommand{\fg}{\femto\gram}}
+\CustomizeMathJax{\newcommand{\pg}{\pico\gram}}
+\CustomizeMathJax{\newcommand{\ng}{\nano\gram}}
+\CustomizeMathJax{\newcommand{\ug}{\micro\gram}}
+\CustomizeMathJax{\newcommand{\mg}{\milli\gram}}
+\CustomizeMathJax{\newcommand{\g}{\gram}}
+\CustomizeMathJax{\newcommand{\kg}{\kilo\gram}}
+\CustomizeMathJax{\newcommand{\amu}{\mathrm{u}}}
+\CustomizeMathJax{\newcommand{\pm}{\pico\metre}}
+\CustomizeMathJax{\newcommand{\nm}{\nano\metre}}
+\CustomizeMathJax{\newcommand{\um}{\micro\metre}}
+\CustomizeMathJax{\newcommand{\mm}{\milli\metre}}
+\CustomizeMathJax{\newcommand{\cm}{\centi\metre}}
+\CustomizeMathJax{\newcommand{\dm}{\deci\metre}}
+\CustomizeMathJax{\newcommand{\m}{\metre}}
+\CustomizeMathJax{\newcommand{\km}{\kilo\metre}}
+\CustomizeMathJax{\newcommand{\as}{\atto\second}}
+\CustomizeMathJax{\newcommand{\fs}{\femto\second}}
+\CustomizeMathJax{\newcommand{\ps}{\pico\second}}
+\CustomizeMathJax{\newcommand{\ns}{\nano\second}}
+\CustomizeMathJax{\newcommand{\us}{\micro\second}}
+\CustomizeMathJax{\newcommand{\ms}{\milli\second}}
+\CustomizeMathJax{\newcommand{\s}{\second}}
+\CustomizeMathJax{\newcommand{\fmol}{\femto\mol}}
+\CustomizeMathJax{\newcommand{\pmol}{\pico\mol}}
+\CustomizeMathJax{\newcommand{\nmol}{\nano\mol}}
+\CustomizeMathJax{\newcommand{\umol}{\micro\mol}}
+\CustomizeMathJax{\newcommand{\mmol}{\milli\mol}}
+\CustomizeMathJax{\newcommand{\mol}{\mol}}
+\CustomizeMathJax{\newcommand{\kmol}{\kilo\mol}}
+\CustomizeMathJax{\newcommand{\pA}{\pico\ampere}}
+\CustomizeMathJax{\newcommand{\nA}{\nano\ampere}}
+\CustomizeMathJax{\newcommand{\uA}{\micro\ampere}}
+\CustomizeMathJax{\newcommand{\mA}{\milli\ampere}}
+\CustomizeMathJax{\newcommand{\A}{\ampere}}
+\CustomizeMathJax{\newcommand{\kA}{\kilo\ampere}}
+\CustomizeMathJax{\newcommand{\ul}{\micro\litre}}
+\CustomizeMathJax{\newcommand{\ml}{\milli\litre}}
+\CustomizeMathJax{\newcommand{\l}{\litre}}
+\CustomizeMathJax{\newcommand{\hl}{\hecto\litre}}
+\CustomizeMathJax{\newcommand{\uL}{\micro\liter}}
+\CustomizeMathJax{\newcommand{\mL}{\milli\liter}}
+\CustomizeMathJax{\newcommand{\L}{\liter}}
+\CustomizeMathJax{\newcommand{\hL}{\hecto\liter}}
+\CustomizeMathJax{\newcommand{\mHz}{\milli\hertz}}
+\CustomizeMathJax{\newcommand{\Hz}{\hertz}}
+\CustomizeMathJax{\newcommand{\kHz}{\kilo\hertz}}
+\CustomizeMathJax{\newcommand{\MHz}{\mega\hertz}}
+\CustomizeMathJax{\newcommand{\GHz}{\giga\hertz}}
+\CustomizeMathJax{\newcommand{\THz}{\tera\hertz}}
+\CustomizeMathJax{\newcommand{\mN}{\milli\newton}}
+\CustomizeMathJax{\newcommand{\N}{\newton}}
+\CustomizeMathJax{\newcommand{\kN}{\kilo\newton}}
+\CustomizeMathJax{\newcommand{\MN}{\mega\newton}}
+\CustomizeMathJax{\newcommand{\Pa}{\pascal}}
+\CustomizeMathJax{\newcommand{\kPa}{\kilo\pascal}}
+\CustomizeMathJax{\newcommand{\MPa}{\mega\pascal}}
+\CustomizeMathJax{\newcommand{\GPa}{\giga\pascal}}
+\CustomizeMathJax{\newcommand{\mohm}{\milli\ohm}}
+\CustomizeMathJax{\newcommand{\kohm}{\kilo\ohm}}
+\CustomizeMathJax{\newcommand{\Mohm}{\mega\ohm}}
+\CustomizeMathJax{\newcommand{\pV}{\pico\volt}}
+\CustomizeMathJax{\newcommand{\nV}{\nano\volt}}
+\CustomizeMathJax{\newcommand{\uV}{\micro\volt}}
+\CustomizeMathJax{\newcommand{\mV}{\milli\volt}}
+\CustomizeMathJax{\newcommand{\V}{\volt}}
+\CustomizeMathJax{\newcommand{\kV}{\kilo\volt}}
+\CustomizeMathJax{\newcommand{\W}{\watt}}
+\CustomizeMathJax{\newcommand{\uW}{\micro\watt}}
+\CustomizeMathJax{\newcommand{\mW}{\milli\watt}}
+\CustomizeMathJax{\newcommand{\kW}{\kilo\watt}}
+\CustomizeMathJax{\newcommand{\MW}{\mega\watt}}
+\CustomizeMathJax{\newcommand{\GW}{\giga\watt}}
+\CustomizeMathJax{\newcommand{\J}{\joule}}
+\CustomizeMathJax{\newcommand{\uJ}{\micro\joule}}
+\CustomizeMathJax{\newcommand{\mJ}{\milli\joule}}
+\CustomizeMathJax{\newcommand{\kJ}{\kilo\joule}}
+\CustomizeMathJax{\newcommand{\eV}{\electronvolt}}
+\CustomizeMathJax{\newcommand{\meV}{\milli\electronvolt}}
+\CustomizeMathJax{\newcommand{\keV}{\kilo\electronvolt}}
+\CustomizeMathJax{\newcommand{\MeV}{\mega\electronvolt}}
+\CustomizeMathJax{\newcommand{\GeV}{\giga\electronvolt}}
+\CustomizeMathJax{\newcommand{\TeV}{\tera\electronvolt}}
+\CustomizeMathJax{\newcommand{\kWh}{\kilo\watt\hour}}
+\CustomizeMathJax{\newcommand{\F}{\farad}}
+\CustomizeMathJax{\newcommand{\fF}{\femto\farad}}
+\CustomizeMathJax{\newcommand{\pF}{\pico\farad}}
+\CustomizeMathJax{\newcommand{\K}{\mathrm{K}}}
+\CustomizeMathJax{\newcommand{\dB}{\mathrm{dB}}}
+\CustomizeMathJax{\newcommand{\kibi}{\mathrm{Ki}}}
+\CustomizeMathJax{\newcommand{\mebi}{\mathrm{Mi}}}
+\CustomizeMathJax{\newcommand{\gibi}{\mathrm{Gi}}}
+\CustomizeMathJax{\newcommand{\tebi}{\mathrm{Ti}}}
+\CustomizeMathJax{\newcommand{\pebi}{\mathrm{Pi}}}
+\CustomizeMathJax{\newcommand{\exbi}{\mathrm{Ei}}}
+\CustomizeMathJax{\newcommand{\zebi}{\mathrm{Zi}}}
+\CustomizeMathJax{\newcommand{\yobi}{\mathrm{Yi}}}
+\end{warpMathJax}
+
+\endinput
+%%
+%% End of file `lwarp-siunitx-v2.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx-v2.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -16,611 +16,26 @@
 %% and version 1.3 or later is part of all distributions of LaTeX
 %% version 2005/12/01 or later.
 
-\RequirePackage{xcolor}% for \convertcolorspec
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
 
-\LWR at ProvidesPackagePass{siunitx}[2018/05/17]
+\DeclareRelease{2}{2010-05-23}{lwarp-siunitx-v2.sty}
+\DeclareRelease{v2}{2010-05-23}{lwarp-siunitx-v2.sty}
+\DeclareCurrentRelease{}{2021-05-17}
 
-\AtBeginDocument{% in case textcomp was not loaded
-\DeclareSIUnit\bohr{\textit{a}\textsubscript{0}}
-\DeclareSIUnit\clight{\textit{c}\textsubscript{0}}
-\DeclareSIUnit\elementarycharge{\textit{e}}
-\DeclareSIUnit\electronmass{\textit{m}\textsubscript{e}}
-\DeclareSIUnit\hartree{\textit{E}\textsubscript{h}}
-\DeclareSIUnit\planckbar{\LWR at siunitx@textplanckbar}
-}% AtBeginDocument
-
-\ExplSyntaxOn
-\cs_undefine:N \__siunitx_print_aux:
-\cs_new_protected:Npn \__siunitx_print_aux:
-  {
-    \text
-      {
-        \__siunitx_ensure_ltr:n
-          {
-            \color at begingroup
-            \__siunitx_print_color:
-            \__siunitx_font_shape:
-            \__siunitx_font_weight:
-            \use:c
-              {
-                @@_ \l__siunitx_print_type_tl _
-                text \l__siunitx_font_family_tl :
-              }
-            \bool_if:NTF \l__siunitx_font_math_mode_bool
-              { \__siunitx_print_math: }
-              {
-                \LWR at findcurrenttextcolor% lwarp
-                \ifdefstring{\LWR at tempcolor}{000000}% lwarp
-                {\__siunitx_print_text:}% lwarp
-                {% lwarp
-                    \LWR at textcurrentcolor{% lwarp
-                        \__siunitx_print_text:
-                    }% lwarp
-                }% lwarp
-              }
-            \color at endgroup
-          }
-      }
-  }
-
-\cs_undefine:N \__siunitx_set_math_fam:n
-\cs_new_protected:Npn \__siunitx_set_math_fam:n #1 {
-  \int_new:c { c__siunitx_math #1 _int }
-  \group_begin:% lwarp
-    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
-    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
-    \hbox_set:Nn \l__siunitx_tmp_box
-      {
-        \ensuremath
-          {
-            \use:c { math #1 }
-              {
-                \int_gset:cn { c__siunitx_math #1 _int } { \fam }
-              }
-          }
-      }
-  \group_end:% lwarp
-}
-
-\cs_undefine:N \__siunitx_combined_output:n
-\cs_new_protected:Npn \__siunitx_combined_output:n #1 {
-    \group_begin:% lwarp
-    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
-    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
-  \bool_if:NTF \l__siunitx_number_parse_bool
-    {
-      \tl_clear:N \l__siunitx_number_out_tl
-      \bool_set_false:N \l__siunitx_number_compound_bool
-      \__siunitx_number_output_parse:n {#1}
+\PackageWarningNoLine{lwarp}
+    {%
+        **************\MessageBreak
+        Siunitx version 3 is not yet supported by Lwarp.\MessageBreak
+        V2 emulation is used here.\MessageBreak
+        **************
     }
-    {
-        \__siunitx_unit_output_pre_print:
-        \begingroup%    lwarp
-            \boolfalse{mathjax}%    lwarp
-            \LWR at subsingledollar{% lwarp
-                \textbackslash( \LWR at HTMLsanitize{#1} \textbackslash)% lwarp
-            }{siunitx}{%
-                \__siunitx_print:nn { number } {%
-                    \LWR at origensuredmath{#1}%
-                }%
-            }% lwarp
-        \endgroup%    lwarp
-        \__siunitx_unit_output_print:
-    }
-    \group_end:% lwarp
-}
-\cs_set_protected:Npn \__siunitx_range_numbers_aux:n #1
-  {
-    \bool_if:NTF \l__siunitx_number_parse_bool
-      {
-        \tl_clear:N \l__siunitx_number_out_tl
-        \tl_clear:N \l__siunitx_number_out_saved_tl
-        \bool_set_false:N \l__siunitx_number_compound_bool
-        \__siunitx_number_output_parse:n {#1}
-        \bool_if:NT \l__siunitx_number_compound_bool
-          { \msg_error:nnx { siunitx } { multi-part-range } {#1} }
-      }
-      {
-        \__siunitx_unit_output_pre_print:
-        \begingroup%    lwarp
-            \boolfalse{mathjax}%    lwarp
-                \LWR at subsingledollar{% lwarp
-                    \textbackslash( \LWR at HTMLsanitize{#1} \textbackslash)% lwarp
-                }{siunitx}{%
-                    \__siunitx_print:nn { number } {
-                        \LWR at origensuredmath{#1}%
-                    } % lwarp
-                }% lwarp
-        \endgroup%    lwarp
-        \__siunitx_unit_output_print:
-      }
-  }
-\cs_set_protected:Npn \__siunitx_angle_print_direct_aux:nn #1#2 {
-  \tl_if_empty:nF {#1}
-    {
-      \tl_set:Nn \l__siunitx_unit_tl {#2}
-        \begingroup%    lwarp
-            \boolfalse{mathjax}%    lwarp
-                \LWR at subsingledollar{% lwarp
-                    \textbackslash( \LWR at HTMLsanitize{#1} \textbackslash)% lwarp
-                }{siunitx}{%
-                    \__siunitx_print:nn { number } {
-                        \LWR at origensuredmath{#1}%
-                    } % lwarp
-                }% lwarp
-        \endgroup%    lwarp
-      \__siunitx_unit_output_print:
-    }
-}
-\cs_undefine:N \__siunitx_number_output_quotient_fraction:
-\cs_new_protected:Npn \__siunitx_number_output_quotient_fraction: {
-  \bool_set_true:N \l__siunitx_number_compound_bool
-  \__siunitx_number_output_quotient_aux_i:
-  \tl_set_eq:NN \l__siunitx_number_out_tl
-    \l__siunitx_number_numerator_tl
-  \tl_put_right:NV \l__siunitx_number_out_tl \l__siunitx_output_quotient_tl
-  \tl_put_right:NV \l__siunitx_number_out_tl
-    \l__siunitx_number_denominator_tl
-  \__siunitx_number_output_single_aux:
-}
-\cs_undefine:N \__siunitx_unit_format_fraction_fraction:
-\cs_new_protected:Npn \__siunitx_unit_format_fraction_fraction: {
-  \__siunitx_unit_format_fraction_symbol_aux:
-  \int_compare:nNnT { \l__siunitx_unit_denominator_int } > { 1 }
-    {
-      \bool_if:NT \l__siunitx_unit_denominator_bracket_bool
-        {
-          \tl_put_left:NV \l__siunitx_unit_denominator_tl \l__siunitx_bracket_open_tl
-          \tl_put_right:NV \l__siunitx_unit_denominator_tl \l__siunitx_bracket_close_tl
-        }
-    }
-  \tl_set_eq:NN \l__siunitx_unit_tl \l__siunitx_unit_numerator_tl
-  \tl_put_right:NV \l__siunitx_unit_tl \l__siunitx_per_symbol_tl
-  \tl_put_right:NV \l__siunitx_unit_tl \l__siunitx_unit_denominator_tl
-}
-\cs_undefine:N \__siunitx_angle_print_astronomy_aux:
-\cs_new_protected:Npn \__siunitx_angle_print_astronomy_aux: {
-  \prop_get:NnNT \l__siunitx_number_out_prop { mantissa-integer }
-    \l__siunitx_tmpa_tl
-    { \__siunitx_print:nV { number } \l__siunitx_tmpa_tl }
- \ifnumcomp{\value{LWR at lateximagedepth}}{>}{0}% lwarp
- {% lateximage
-  \hbox_set:Nn \l__siunitx_angle_marker_box
-    {
-      \__siunitx_print:nn { number } { { \l__siunitx_output_decimal_tl } }
-    }
-  \hbox_set:Nn \l__siunitx_angle_unit_box
-    {
-      \__siunitx_print:nV { unit } \l__siunitx_unit_tl
-      \skip_horizontal:n { -\scriptspace }
-    }
-  \__siunitx_angle_print_astronomy_aux:n { marker }
-  \__siunitx_angle_print_astronomy_aux:n { unit }
-  \hbox_set:Nn \l__siunitx_angle_marker_box
-    {
-      \box_use:N \l__siunitx_angle_marker_box
-      \box_use:N \l__siunitx_angle_unit_box
-    }
-  \dim_compare:nNnTF
-    { \l__siunitx_angle_marker_dim } > { \l__siunitx_angle_unit_dim }
-    { \__siunitx_angle_print_astronomy_marker: }
-    { \__siunitx_angle_print_astronomy_unit: }
- }% lateximage
- {% not a lateximage
-      \__siunitx_print:nV { unit } \l__siunitx_unit_tl
-      \__siunitx_print:nn { number } { { \l__siunitx_output_decimal_tl } }
- }% not a lateximage
-  \prop_get:NnNT \l__siunitx_number_out_prop { mantissa-decimal }
-    \l__siunitx_tmpa_tl
-    { \__siunitx_print:nV { number } \l__siunitx_tmpa_tl }
-}
-\cs_undefine:N \__siunitx_textsuperscript:n
-\cs_new_protected:Npn \__siunitx_textsuperscript:n #1 {\textsuperscript{#1}}
-\RenewDocumentCommand \num { o m } {
-  \leavevmode
-  \group_begin:% lwarp
-    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
-    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
-    \bool_set_false:N \l__siunitx_font_set_bool
-    \IfNoValueF {#1}
-      { \keys_set:nn { siunitx } {#1} }
-    \__siunitx_number_output:n {#2}
-  \group_end:% lwarp
-}
-\RenewDocumentCommand \numrange { o m m } {
-  \leavevmode
-  \group_begin:% lwarp
-    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
-    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
-    \bool_set_false:N \l__siunitx_font_set_bool
-    \IfNoValueF {#1}
-      { \keys_set:nn { siunitx } {#1} }
-    \__siunitx_range_numbers:nn {#2} {#3}
-  \group_end:% lwarp
-}
-\RenewDocumentCommand \ang { o > { \SplitArgument { 2 } { ; } } m } {
-  \group_begin:% lwarp
-    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
-    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
-    \IfNoValueF {#1}
-      { \keys_set:nn { siunitx } {#1} }
-    \__siunitx_angle_output:nnn #2
-  \group_end:% lwarp
-}
-\RenewDocumentCommand \si { o m } {
-  \leavevmode
-  \group_begin:% lwarp
-    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
-    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
-    \bool_set_false:N \l__siunitx_font_set_bool
-    \IfNoValueTF {#1}
-      { \__siunitx_unit_output:nn {#2} { } }
-      {
-        \keys_set:nn { siunitx } {#1}
-        \__siunitx_unit_output:nn {#2} {#1}
-      }
-  \group_end:% lwarp
-}
-\RenewDocumentCommand{\SIrange}{o m m m}
-{%
-  \leavevmode
-  \group_begin:% lwarp
-    \LetLtxMacro\@ensuredmath\LWR at origensuredmath% lwarp
-    \LetLtxMacro\mbox\LWR at print@mbox% lwarp
-    \bool_set_false:N \l__siunitx_font_set_bool
-    \IfNoValueTF {#1}
-      { \__siunitx_range_unit:nnnn {#4} { } {#2} {#3} }
-      {
-        \keys_set:nn { siunitx } {#1}
-        \__siunitx_range_unit:nnnn {#4} {#1} {#2} {#3}
-      }
-  \group_end:% lwarp
-}
-\ExplSyntaxOff
 
-\begin{warpMathJax}
-\LWR at infoprocessingmathjax{siunitx}
-\CustomizeMathJax{\newcommand{\tothe}[1]{^{#1}}}
-\CustomizeMathJax{\newcommand{\raiseto}[2]{{#2}^{#1}}}
-\CustomizeMathJax{\newcommand{\LWRsiunitxEND}{}}
-\CustomizeMathJax{\def\LWRsiunitxang#1;#2;#3;#4\LWRsiunitxEND{%
-    \ifblank{#1}{}{\num{#1}\degree}%
-    \ifblank{#2}{}{\num{#2}^{\unicode{x2032}}}% \prime
-    \ifblank{#3}{}{\num{#3}^{\unicode{x2033}}}% \dblprime
-}}
-\CustomizeMathJax{\newcommand{\ang}[2][]{\LWRsiunitxang#2;;;\LWRsiunitxEND}}
-\CustomizeMathJax{\newcommand{\LWRsiunitxnumscientific}[2]{%
-    \ifblank{#1}%
-        {}%
-        {%
-            \ifstrequal{#1}{-}%
-                {-}%
-                {\LWRsiunitxprintdecimal{#1}\times}%
-        }%
-    10^{\LWRsiunitxprintdecimal{#2}}
-}}
-\ExplSyntaxOn
-\AtBeginDocument{
-\ifdefstring{\l__siunitx_output_decimal_tl}{{,}}
-    {% Use decimal comma
-        \CustomizeMathJax{\def\LWRsiunitxprintdecimalsub#1.#2.#3\LWRsiunitxEND{%
-            \mathrm{#1}%
-            \ifblank{#2}
-                {}%
-                {,\mathrm{#2}}
-        }}
+\RequirePackage{xcolor}% for \convertcolorspec
 
-        \CustomizeMathJax{\newcommand{\LWRsiunitxprintdecimal}[1]{%
-            \LWRsiunitxprintdecimalsub#1...\LWRsiunitxEND%
-        }}
-    }
-    {% Use decimal point
-        \CustomizeMathJax{\def\LWRsiunitxprintdecimalsub#1,#2,#3\LWRsiunitxEND{%
-            \mathrm{#1}%
-            \ifblank{#2}
-                {}%
-                {.\mathrm{#2}}
-        }}
 
-        \CustomizeMathJax{\newcommand{\LWRsiunitxprintdecimal}[1]{%
-            \LWRsiunitxprintdecimalsub#1,,,\LWRsiunitxEND%
-        }}
-    }
-}
-\ExplSyntaxOff
-\CustomizeMathJax{\def\LWRsiunitxnumplus#1+#2+#3\LWRsiunitxEND{%
-    \ifblank{#2}
-        {\LWRsiunitxprintdecimal{#1}}% no plus
-        {%
-            \ifblank{#1}%
-                {\LWRsiunitxprintdecimal{#2}}% leading plus, ignore
-                {% a+b
-                    \LWRsiunitxprintdecimal{#1}%
-                    \unicode{x02B}% plus sign
-                    \LWRsiunitxprintdecimal{#2}%
-                }%
-        }%
-}}
+\RequirePackage{siunitx-v2}
 
-\CustomizeMathJax{\def\LWRsiunitxnumminus#1-#2-#3\LWRsiunitxEND{%
-    \ifblank{#2}
-        {\LWRsiunitxnumplus#1+++\LWRsiunitxEND}%
-        {%
-            \LWRsiunitxprintdecimal{#1}%
-            \unicode{x02212}% mathematical minus sign
-            \LWRsiunitxprintdecimal{#2}%
-        }%
-}}
-
-\CustomizeMathJax{\def\LWRsiunitxnumpm#1+-#2+-#3\LWRsiunitxEND{%
-    \ifblank{#2}%
-        {\LWRsiunitxnumminus#1---\LWRsiunitxEND}%
-        {%
-            \LWRsiunitxprintdecimal{#1}%
-            \unicode{x0B1}% \pm
-            \LWRsiunitxprintdecimal{#2}%
-        }%
-}}
-
-\CustomizeMathJax{\def\LWRsiunitxnumx#1x#2x#3x#4\LWRsiunitxEND{%
-    \ifblank{#2}%
-        {\LWRsiunitxnumpm#1+-+-\LWRsiunitxEND}%
-        {%
-            \ifblank{#3}%
-                {%
-                    \LWRsiunitxprintdecimal{#1}%
-                    \times%
-                    \LWRsiunitxprintdecimal{#2}%
-                }%
-                {%
-                    \LWRsiunitxprintdecimal{#1}%
-                    \times%
-                    \LWRsiunitxprintdecimal{#2}%
-                    \times%
-                    \LWRsiunitxprintdecimal{#3}%
-                }%
-        }%
-}}
-
-\CustomizeMathJax{\def\LWRsiunitxnumD#1D#2D#3\LWRsiunitxEND{%
-    \ifblank{#2}%
-        {\LWRsiunitxnumx#1xxxxx\LWRsiunitxEND}%
-        {\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
-}}
-
-\CustomizeMathJax{\def\LWRsiunitxnumd#1d#2d#3\LWRsiunitxEND{%
-    \ifblank{#2}%
-        {\LWRsiunitxnumD#1DDD\LWRsiunitxEND}%
-        {\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
-}}
-
-\CustomizeMathJax{\def\LWRsiunitxnumE#1E#2E#3\LWRsiunitxEND{%
-    \ifblank{#2}%
-        {\LWRsiunitxnumd#1ddd\LWRsiunitxEND}%
-        {\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
-}}
-
-\CustomizeMathJax{\def\LWRsiunitxnume#1e#2e#3\LWRsiunitxEND{%
-    \ifblank{#2}%
-        {\LWRsiunitxnumE#1EEE\LWRsiunitxEND}%
-        {\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
-}}
-
-\CustomizeMathJax{\def\LWRsiunitxnumcomma#1,#2,#3\LWRsiunitxEND{%
-    \ifblank{#2}
-        {\LWRsiunitxnume#1eee\LWRsiunitxEND}
-        {\LWRsiunitxnume#1.#2eee\LWRsiunitxEND}
-}}
-
-\CustomizeMathJax{\newcommand{\num}[2][]{\LWRsiunitxnumcomma#2,,,\LWRsiunitxEND}}
-\CustomizeMathJax{\newcommand{\si}[2][]{\mathrm{#2}}}
-\CustomizeMathJax{\def\LWRsiunitxSIopt#1[#2]#3{%
-    {#2}\num{#1}{#3}%
-}}
-
-\CustomizeMathJax{\newcommand{\LWRsiunitxSI}[2]{%
-    \num{#1}\,{#2}%
-}}
-\CustomizeMathJax{\newcommand{\SI}[2][]{%
-    \ifnextchar[%
-        {\LWRsiunitxSIopt{#2}}%
-        {\LWRsiunitxSI{#2}}%
-}}
-\CustomizeMathJax{\newcommand{\numlist}[2][]{\mathrm{#2}}}
-\CustomizeMathJax{\newcommand{\numrange}[3][]{\num{#2}\,\unicode{x2013}\,\num{#3}}}
-\CustomizeMathJax{\newcommand{\SIlist}[3][]{\mathrm{#2\,#3}}}
-\CustomizeMathJax{\newcommand{\SIrange}[4][]{\num{#2}\,#4\,\unicode{x2013}\,\num{#3}\,#4}}
-\CustomizeMathJax{\newcommand{\tablenum}[2][]{\mathrm{#2}}}
-\CustomizeMathJax{\newcommand{\ampere}{\mathrm{A}}}
-\CustomizeMathJax{\newcommand{\candela}{\mathrm{cd}}}
-\CustomizeMathJax{\newcommand{\kelvin}{\mathrm{K}}}
-\CustomizeMathJax{\newcommand{\kilogram}{\mathrm{kg}}}
-\CustomizeMathJax{\newcommand{\metre}{\mathrm{m}}}
-\CustomizeMathJax{\newcommand{\mole}{\mathrm{mol}}}
-\CustomizeMathJax{\newcommand{\second}{\mathrm{s}}}
-\CustomizeMathJax{\newcommand{\becquerel}{\mathrm{Bq}}}
-\CustomizeMathJax{\newcommand{\degreeCelsius}{\unicode{x2103}}}
-\CustomizeMathJax{\newcommand{\coulomb}{\mathrm{C}}}
-\CustomizeMathJax{\newcommand{\farad}{\mathrm{F}}}
-\CustomizeMathJax{\newcommand{\gray}{\mathrm{Gy}}}
-\CustomizeMathJax{\newcommand{\hertz}{\mathrm{Hz}}}
-\CustomizeMathJax{\newcommand{\henry}{\mathrm{H}}}
-\CustomizeMathJax{\newcommand{\joule}{\mathrm{J}}}
-\CustomizeMathJax{\newcommand{\katal}{\mathrm{kat}}}
-\CustomizeMathJax{\newcommand{\lumen}{\mathrm{lm}}}
-\CustomizeMathJax{\newcommand{\lux}{\mathrm{lx}}}
-\CustomizeMathJax{\newcommand{\newton}{\mathrm{N}}}
-\CustomizeMathJax{\newcommand{\ohm}{\mathrm{\Omega}}}
-\CustomizeMathJax{\newcommand{\pascal}{\mathrm{Pa}}}
-\CustomizeMathJax{\newcommand{\radian}{\mathrm{rad}}}
-\CustomizeMathJax{\newcommand{\siemens}{\mathrm{S}}}
-\CustomizeMathJax{\newcommand{\sievert}{\mathrm{Sv}}}
-\CustomizeMathJax{\newcommand{\steradian}{\mathrm{sr}}}
-\CustomizeMathJax{\newcommand{\tesla}{\mathrm{T}}}
-\CustomizeMathJax{\newcommand{\volt}{\mathrm{V}}}
-\CustomizeMathJax{\newcommand{\watt}{\mathrm{W}}}
-\CustomizeMathJax{\newcommand{\weber}{\mathrm{Wb}}}
-\CustomizeMathJax{\newcommand{\day}{\mathrm{d}}}
-\CustomizeMathJax{\newcommand{\degree}{\mathrm{^\circ}}}
-\CustomizeMathJax{\newcommand{\hectare}{\mathrm{ha}}}
-\CustomizeMathJax{\newcommand{\hour}{\mathrm{h}}}
-\CustomizeMathJax{\newcommand{\litre}{\mathrm{l}}}
-\CustomizeMathJax{\newcommand{\liter}{\mathrm{L}}}
-\CustomizeMathJax{\newcommand{\arcminute}{^\prime}}
-\CustomizeMathJax{\newcommand{\minute}{\mathrm{min}}}
-\CustomizeMathJax{\newcommand{\arcsecond}{^{\prime\prime}}}
-\CustomizeMathJax{\newcommand{\tonne}{\mathrm{t}}}
-\CustomizeMathJax{\newcommand{\astronomicalunit}{au}}
-\CustomizeMathJax{\newcommand{\atomicmassunit}{u}}
-\CustomizeMathJax{\newcommand{\bohr}{\mathit{a}_0}}
-\CustomizeMathJax{\newcommand{\clight}{\mathit{c}_0}}
-\CustomizeMathJax{\newcommand{\dalton}{\mathrm{D}_\mathrm{a}}}
-\CustomizeMathJax{\newcommand{\electronmass}{\mathit{m}_{\mathrm{e}}}}
-\CustomizeMathJax{\newcommand{\electronvolt}{\mathrm{eV}}}
-\CustomizeMathJax{\newcommand{\elementarycharge}{\mathit{e}}}
-\CustomizeMathJax{\newcommand{\hartree}{\mathit{E}_{\mathrm{h}}}}
-\CustomizeMathJax{\newcommand{\planckbar}{\mathit{\unicode{x210F}}}}
-\CustomizeMathJax{\newcommand{\angstrom}{\mathrm{\unicode{x212B}}}}
-\CustomizeMathJax{\let\LWRorigbar\bar}
-\CustomizeMathJax{\newcommand{\bar}{\mathrm{bar}}}
-\CustomizeMathJax{\newcommand{\barn}{\mathrm{b}}}
-\CustomizeMathJax{\newcommand{\bel}{\mathrm{B}}}
-\CustomizeMathJax{\newcommand{\decibel}{\mathrm{dB}}}
-\CustomizeMathJax{\newcommand{\knot}{\mathrm{kn}}}
-\CustomizeMathJax{\newcommand{\mmHg}{\mathrm{mmHg}}}
-\CustomizeMathJax{\newcommand{\nauticalmile}{\mathrm{M}}}
-\CustomizeMathJax{\newcommand{\neper}{\mathrm{Np}}}
-\CustomizeMathJax{\newcommand{\yocto}{\mathrm{y}}}
-\CustomizeMathJax{\newcommand{\zepto}{\mathrm{z}}}
-\CustomizeMathJax{\newcommand{\atto}{\mathrm{a}}}
-\CustomizeMathJax{\newcommand{\femto}{\mathrm{f}}}
-\CustomizeMathJax{\newcommand{\pico}{\mathrm{p}}}
-\CustomizeMathJax{\newcommand{\nano}{\mathrm{n}}}
-\CustomizeMathJax{\newcommand{\micro}{\mathrm{\unicode{x00B5}}}}
-\CustomizeMathJax{\newcommand{\milli}{\mathrm{m}}}
-\CustomizeMathJax{\newcommand{\centi}{\mathrm{c}}}
-\CustomizeMathJax{\newcommand{\deci}{\mathrm{d}}}
-\CustomizeMathJax{\newcommand{\deca}{\mathrm{da}}}
-\CustomizeMathJax{\newcommand{\hecto}{\mathrm{h}}}
-\CustomizeMathJax{\newcommand{\kilo}{\mathrm{k}}}
-\CustomizeMathJax{\newcommand{\mega}{\mathrm{M}}}
-\CustomizeMathJax{\newcommand{\giga}{\mathrm{G}}}
-\CustomizeMathJax{\newcommand{\tera}{\mathrm{T}}}
-\CustomizeMathJax{\newcommand{\peta}{\mathrm{P}}}
-\CustomizeMathJax{\newcommand{\exa}{\mathrm{E}}}
-\CustomizeMathJax{\newcommand{\zetta}{\mathrm{Z}}}
-\CustomizeMathJax{\newcommand{\yotta}{\mathrm{Y}}}
-\CustomizeMathJax{\newcommand{\percent}{\mathrm{\%}}}
-\CustomizeMathJax{\newcommand{\meter}{\mathrm{m}}}
-\CustomizeMathJax{\newcommand{\metre}{\mathrm{m}}}
-\CustomizeMathJax{\newcommand{\gram}{\mathrm{g}}}
-\CustomizeMathJax{\newcommand{\kg}{\kilo\gram}}
-\CustomizeMathJax{\newcommand{\of}[1]{_{\mathrm{#1}}}}
-\CustomizeMathJax{\newcommand{\squared}{^2}}
-\CustomizeMathJax{\newcommand{\square}[1]{\mathrm{#1}^2}}
-\CustomizeMathJax{\newcommand{\cubed}{^3}}
-\CustomizeMathJax{\newcommand{\cubic}[1]{\mathrm{#1}^3}}
-\CustomizeMathJax{\newcommand{\per}{/}}
-\CustomizeMathJax{\newcommand{\celsius}{\unicode{x2103}}}
-\CustomizeMathJax{\newcommand{\fg}{\femto\gram}}
-\CustomizeMathJax{\newcommand{\pg}{\pico\gram}}
-\CustomizeMathJax{\newcommand{\ng}{\nano\gram}}
-\CustomizeMathJax{\newcommand{\ug}{\micro\gram}}
-\CustomizeMathJax{\newcommand{\mg}{\milli\gram}}
-\CustomizeMathJax{\newcommand{\g}{\gram}}
-\CustomizeMathJax{\newcommand{\kg}{\kilo\gram}}
-\CustomizeMathJax{\newcommand{\amu}{\mathrm{u}}}
-\CustomizeMathJax{\newcommand{\pm}{\pico\metre}}
-\CustomizeMathJax{\newcommand{\nm}{\nano\metre}}
-\CustomizeMathJax{\newcommand{\um}{\micro\metre}}
-\CustomizeMathJax{\newcommand{\mm}{\milli\metre}}
-\CustomizeMathJax{\newcommand{\cm}{\centi\metre}}
-\CustomizeMathJax{\newcommand{\dm}{\deci\metre}}
-\CustomizeMathJax{\newcommand{\m}{\metre}}
-\CustomizeMathJax{\newcommand{\km}{\kilo\metre}}
-\CustomizeMathJax{\newcommand{\as}{\atto\second}}
-\CustomizeMathJax{\newcommand{\fs}{\femto\second}}
-\CustomizeMathJax{\newcommand{\ps}{\pico\second}}
-\CustomizeMathJax{\newcommand{\ns}{\nano\second}}
-\CustomizeMathJax{\newcommand{\us}{\micro\second}}
-\CustomizeMathJax{\newcommand{\ms}{\milli\second}}
-\CustomizeMathJax{\newcommand{\s}{\second}}
-\CustomizeMathJax{\newcommand{\fmol}{\femto\mol}}
-\CustomizeMathJax{\newcommand{\pmol}{\pico\mol}}
-\CustomizeMathJax{\newcommand{\nmol}{\nano\mol}}
-\CustomizeMathJax{\newcommand{\umol}{\micro\mol}}
-\CustomizeMathJax{\newcommand{\mmol}{\milli\mol}}
-\CustomizeMathJax{\newcommand{\mol}{\mol}}
-\CustomizeMathJax{\newcommand{\kmol}{\kilo\mol}}
-\CustomizeMathJax{\newcommand{\pA}{\pico\ampere}}
-\CustomizeMathJax{\newcommand{\nA}{\nano\ampere}}
-\CustomizeMathJax{\newcommand{\uA}{\micro\ampere}}
-\CustomizeMathJax{\newcommand{\mA}{\milli\ampere}}
-\CustomizeMathJax{\newcommand{\A}{\ampere}}
-\CustomizeMathJax{\newcommand{\kA}{\kilo\ampere}}
-\CustomizeMathJax{\newcommand{\ul}{\micro\litre}}
-\CustomizeMathJax{\newcommand{\ml}{\milli\litre}}
-\CustomizeMathJax{\newcommand{\l}{\litre}}
-\CustomizeMathJax{\newcommand{\hl}{\hecto\litre}}
-\CustomizeMathJax{\newcommand{\uL}{\micro\liter}}
-\CustomizeMathJax{\newcommand{\mL}{\milli\liter}}
-\CustomizeMathJax{\newcommand{\L}{\liter}}
-\CustomizeMathJax{\newcommand{\hL}{\hecto\liter}}
-\CustomizeMathJax{\newcommand{\mHz}{\milli\hertz}}
-\CustomizeMathJax{\newcommand{\Hz}{\hertz}}
-\CustomizeMathJax{\newcommand{\kHz}{\kilo\hertz}}
-\CustomizeMathJax{\newcommand{\MHz}{\mega\hertz}}
-\CustomizeMathJax{\newcommand{\GHz}{\giga\hertz}}
-\CustomizeMathJax{\newcommand{\THz}{\tera\hertz}}
-\CustomizeMathJax{\newcommand{\mN}{\milli\newton}}
-\CustomizeMathJax{\newcommand{\N}{\newton}}
-\CustomizeMathJax{\newcommand{\kN}{\kilo\newton}}
-\CustomizeMathJax{\newcommand{\MN}{\mega\newton}}
-\CustomizeMathJax{\newcommand{\Pa}{\pascal}}
-\CustomizeMathJax{\newcommand{\kPa}{\kilo\pascal}}
-\CustomizeMathJax{\newcommand{\MPa}{\mega\pascal}}
-\CustomizeMathJax{\newcommand{\GPa}{\giga\pascal}}
-\CustomizeMathJax{\newcommand{\mohm}{\milli\ohm}}
-\CustomizeMathJax{\newcommand{\kohm}{\kilo\ohm}}
-\CustomizeMathJax{\newcommand{\Mohm}{\mega\ohm}}
-\CustomizeMathJax{\newcommand{\pV}{\pico\volt}}
-\CustomizeMathJax{\newcommand{\nV}{\nano\volt}}
-\CustomizeMathJax{\newcommand{\uV}{\micro\volt}}
-\CustomizeMathJax{\newcommand{\mV}{\milli\volt}}
-\CustomizeMathJax{\newcommand{\V}{\volt}}
-\CustomizeMathJax{\newcommand{\kV}{\kilo\volt}}
-\CustomizeMathJax{\newcommand{\W}{\watt}}
-\CustomizeMathJax{\newcommand{\uW}{\micro\watt}}
-\CustomizeMathJax{\newcommand{\mW}{\milli\watt}}
-\CustomizeMathJax{\newcommand{\kW}{\kilo\watt}}
-\CustomizeMathJax{\newcommand{\MW}{\mega\watt}}
-\CustomizeMathJax{\newcommand{\GW}{\giga\watt}}
-\CustomizeMathJax{\newcommand{\J}{\joule}}
-\CustomizeMathJax{\newcommand{\uJ}{\micro\joule}}
-\CustomizeMathJax{\newcommand{\mJ}{\milli\joule}}
-\CustomizeMathJax{\newcommand{\kJ}{\kilo\joule}}
-\CustomizeMathJax{\newcommand{\eV}{\electronvolt}}
-\CustomizeMathJax{\newcommand{\meV}{\milli\electronvolt}}
-\CustomizeMathJax{\newcommand{\keV}{\kilo\electronvolt}}
-\CustomizeMathJax{\newcommand{\MeV}{\mega\electronvolt}}
-\CustomizeMathJax{\newcommand{\GeV}{\giga\electronvolt}}
-\CustomizeMathJax{\newcommand{\TeV}{\tera\electronvolt}}
-\CustomizeMathJax{\newcommand{\kWh}{\kilo\watt\hour}}
-\CustomizeMathJax{\newcommand{\F}{\farad}}
-\CustomizeMathJax{\newcommand{\fF}{\femto\farad}}
-\CustomizeMathJax{\newcommand{\pF}{\pico\farad}}
-\CustomizeMathJax{\newcommand{\K}{\mathrm{K}}}
-\CustomizeMathJax{\newcommand{\dB}{\mathrm{dB}}}
-\CustomizeMathJax{\newcommand{\kibi}{\mathrm{Ki}}}
-\CustomizeMathJax{\newcommand{\mebi}{\mathrm{Mi}}}
-\CustomizeMathJax{\newcommand{\gibi}{\mathrm{Gi}}}
-\CustomizeMathJax{\newcommand{\tebi}{\mathrm{Ti}}}
-\CustomizeMathJax{\newcommand{\pebi}{\mathrm{Pi}}}
-\CustomizeMathJax{\newcommand{\exbi}{\mathrm{Ei}}}
-\CustomizeMathJax{\newcommand{\zebi}{\mathrm{Zi}}}
-\CustomizeMathJax{\newcommand{\yobi}{\mathrm{Yi}}}
-\end{warpMathJax}
-
 \endinput
 %%
 %% End of file `lwarp-siunitx.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocloft.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocloft.sty	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocloft.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -246,7 +246,7 @@
     \@ifundefined{c@#3depth}{\newcounter{#3depth}}{}%
     \setcounter{#3depth}{1}%
     \@namedef{cftmark#3}{}%
-    \@namedef{listof#2}{\listof{#2}{#4}}%
+    \@namedef{listof#2}{\LWR at listof{#2}{#4}}%
     \@namedef{@cftmake#3title}{}%
     \expandafter\newlength\csname cftbefore#3titleskip\endcsname%
     \expandafter\newlength\csname cftafter#3titleskip\endcsname%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2021-05-24 20:16:09 UTC (rev 59328)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2021-05-24 20:17:39 UTC (rev 59329)
@@ -17,7 +17,7 @@
 %% version 2005/12/01 or later.
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{lwarp}
-    [2021/04/08 v0.896  Allows LaTeX to directly produce HTML5 output.]
+    [2021/05/24 v0.897  Allows LaTeX to directly produce HTML5 output.]
 
 
 
@@ -97,9 +97,8 @@
 }
 }
 
-\newcommand*{\LWR at checkloadbefore}[2]{%
-    \edef\LWR at tempone{#1}%
-    \ifdefstring{\LWR at tempone}{#2}{%
+\newcommand*{\LWR at checkloadbefore}[1]{%
+    \ifdefstring{\LWR at tempone}{#1}{%
         \LWR at loadbefore{#1}%
     }{}%
 }
@@ -107,22 +106,27 @@
 \newcommand*{\LWR at loadnever}[2]{%
 \PackageError{lwarp}
 {%
-    Package #1 is not supported\MessageBreak
-    by lwarp's HTML conversion.\MessageBreak
-    Package(s)\MessageBreak
-    \space\space#2\MessageBreak
-    may be useful instead%
+    Package #1 is not yet supported\MessageBreak
+    by lwarp's HTML conversion%
+    \ifblank{#2}{}{%
+        .\MessageBreak
+        Package(s)\MessageBreak
+        \space\space#2\MessageBreak
+        may be useful instead%
+    }%
 }
 {%
     Package #1 might conflict with lwarp in some way,\MessageBreak
-    or is superceded by another package.\MessageBreak
-    For a possible alternative, see package(s) #2.
+    or is superceded by another package.%
+    \ifblank{#2}{}{%
+        \MessageBreak
+        For possible alternatives, see package(s) #2.%
+    }%
 }
 }
-\newcommand*{\LWR at checkloadnever}[3]{%
-    \edef\LWR at tempone{#1}%
-    \ifdefstring{\LWR at tempone}{#2}{%
-        \LWR at loadnever{#2}{#3}%
+\newcommand*{\LWR at afterloadnever}[2]{%
+    \ifdefstring{\LWR at tempone}{#1}{%
+        \LWR at loadnever{#1}{#2}%
     }{}%
 }
 \newcommand*{\LWR at earlyloadnever}[2]{%
@@ -135,16 +139,134 @@
 \PackageError{lwarp}
 {%
     Class #1 is not supported\MessageBreak
-    by lwarp's HTML conversion.\MessageBreak
-    Class(es) #2 may be useful instead
+    by lwarp's HTML conversion%
+    \ifblank{#2}{}{%
+        .\MessageBreak
+        Class(es) #2 may be useful instead%
+    }%
 }
 {%
     Class #1 might conflict with lwarp in some way,\MessageBreak
-    or is superceded by another class.\MessageBreak
-    For a possible alternative, see class(es) #2.
+    or is superceded by another class.%
+    \ifblank{#2}{}{%
+        \MessageBreak
+        For a possible alternative, see class(es) #2.%
+    }%
 }
 }{\relax}%
 }
+\newcommand*{\LWR at checkloadnevers}{
+\LWR at checkloadnever{ae}{cm-super, lmodern}
+\LWR at checkloadnever{aecompl}{cm-super, lmodern}
+\LWR at checkloadnever{aecc}{cm-super, lmodern}
+\LWR at checkloadnever{alg}{algorithm2e, algorithmicx}
+\LWR at checkloadnever{algorithmic}{algorithm2e, algorithmicx}
+\LWR at checkloadnever{bitfield}{bytefield}
+\LWR at checkloadnever{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle}
+\LWR at checkloadnever{caption2}{caption}
+\LWR at checkloadnever{colortab}{colortbl}
+\LWR at checkloadnever{csvtools}{datatool}
+\LWR at checkloadnever{doublespace}{setspace}
+\LWR at checkloadnever{fancyheadings}{fancyhdr}
+\LWR at checkloadnever{fncylab}{cleveref}
+\LWR at checkloadnever{formula}{siunitx}
+\LWR at checkloadnever{glossary}{glossaries}
+\LWR at checkloadnever{hangul}{kotex, xetexko, luatexko}
+\LWR at checkloadnever{hyper}{hyperref}
+\LWR at checkloadnever{libgreek}{libertinust1math, newtx}
+\LWR at checkloadnever{newthm}{ntheorem}
+\LWR at checkloadnever{pdfcprot}{microtype}
+\LWR at checkloadnever{picins}{floatflt, wrapfig}
+\LWR at checkloadnever{rplain}{fancyhdr}
+\LWR at checkloadnever{si}{siunitx}
+\LWR at checkloadnever{sistyle}{siunitx}
+\LWR at checkloadnever{slashbox}{diagbox}
+\LWR at checkloadnever{statex}{statex2}
+\LWR at checkloadnever{t1enc}{fontenc, inputenc, inputenx}
+\LWR at checkloadnever{ucs}{inputenc, inputencx}
+\LWR at checkloadnever{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
+\LWR at checkloadnever{animate}{}
+\LWR at checkloadnever{auto-pst-pdf}{}
+\LWR at checkloadnever{auto-pst-pdf-lua}{}
+\LWR at checkloadnever{algorithms}{}
+\LWR at checkloadnever{arraycols}{}
+\LWR at checkloadnever{beamer}{}
+\LWR at checkloadnever{bidi}{}
+\LWR at checkloadnever{cals}{}
+\LWR at checkloadnever{cellspace}{}
+\LWR at checkloadnever{cgloss4e}{}
+\LWR at checkloadnever{colophon}{}
+\LWR at checkloadnever{cooltooltips}{}
+\LWR at checkloadnever{covington}{}
+\LWR at checkloadnever{crbox}{}
+\LWR at checkloadnever{decision-table}{}
+\LWR at checkloadnever{dvgloss}{}
+\LWR at checkloadnever{ednotes}{}
+\LWR at checkloadnever{edfnotes}{}
+\LWR at checkloadnever{eledform}{}
+\LWR at checkloadnever{eledmac}{}
+\LWR at checkloadnever{embedfile}{}
+\LWR at checkloadnever{endnotes-hy}{endnotes}
+\LWR at checkloadnever{expex}{}
+\LWR at checkloadnever{fancytooltips}{}
+\LWR at checkloadnever{fixocgx}{}
+\LWR at checkloadnever{flowfram}{}
+\LWR at checkloadnever{gb4e}{}
+\LWR at checkloadnever{gmverse}{}
+\LWR at checkloadnever{graphbox}{}
+\LWR at checkloadnever{graphicxbox}{}
+\LWR at checkloadnever{hvfloat}{}
+\LWR at checkloadnever{inline-images}{}
+\LWR at checkloadnever{isorot}{rotating}
+\LWR at checkloadnever{ledmac}{}
+\LWR at checkloadnever{linguex}{}
+\LWR at checkloadnever{longdiv}{}
+\LWR at checkloadnever{longfigure}{}
+\LWR at checkloadnever{longtabu}{}
+\LWR at checkloadnever{mdwenv}{}
+\LWR at checkloadnever{mdwlist}{}
+\LWR at checkloadnever{mdwtab}{}
+\LWR at checkloadnever{navigator}{}
+\LWR at checkloadnever{nccpic}{}
+\LWR at checkloadnever{nccsect}{}
+\LWR at checkloadnever{newvbtm}{}
+\LWR at checkloadnever{ocg-p}{}
+\LWR at checkloadnever{ocgtools}{}
+\LWR at checkloadnever{ocgx}{}
+\LWR at checkloadnever{ocgx2}{}
+\LWR at checkloadnever{parrun}{}
+\LWR at checkloadnever{poemscol}{}
+\LWR at checkloadnever{poetry}{}
+\LWR at checkloadnever{program}{}
+\LWR at checkloadnever{proofread}{}
+\LWR at checkloadnever{pst-pdf}{}
+\LWR at checkloadnever{refstyle}{}
+\LWR at checkloadnever{robustindex}{}
+\LWR at checkloadnever{robustglossary}{}
+\LWR at checkloadnever{semioneside}{}
+\LWR at checkloadnever{slemph}{}
+\LWR at checkloadnever{snotez}{sidenotes}
+\LWR at checkloadnever{spacingtricks}{}
+\LWR at checkloadnever{sverb}{verbatim, fancyvrb}
+\LWR at checkloadnever{syntax}{}
+\LWR at checkloadnever{tablists}{}
+\LWR at checkloadnever{tabto}{}
+\LWR at checkloadnever{tabu}{}
+\LWR at checkloadnever{tabularht}{}
+\LWR at checkloadnever{tabularkv}{}
+\LWR at checkloadnever{thumby}{}
+\LWR at checkloadnever{titles}{}
+\LWR at checkloadnever{typehtml}{}
+\LWR at checkloadnever{unicode-bidi}{}
+\LWR at checkloadnever{vcell}{}
+\LWR at checkloadnever{xhfill}{}
+}
+\LetLtxMacro\LWR at checkloadnever\LWR at earlyloadnever
+\LWR at checkloadnevers
+\@ifpackageloaded{xeCJK}{}{
+    \LWR at checkloadnever{CJK}{ctex, xeCJK}
+    \LWR at checkloadnever{CJKutf8}{ctex, xeCJK}
+}
 \LWR at earlyclassloadnever{jarticle}{ujarticle}
 \LWR at earlyclassloadnever{jbook}{ujbook}
 \LWR at earlyclassloadnever{jreport}{ujreport}
@@ -151,39 +273,8 @@
 \LWR at earlyclassloadnever{tarticle}{utarticle}
 \LWR at earlyclassloadnever{tbook}{utbook}
 \LWR at earlyclassloadnever{treport}{utreport}
-\LWR at earlyloadnever{ae}{cm-super, lmodern}
-\LWR at earlyloadnever{aecompl}{cm-super, lmodern}
-\LWR at earlyloadnever{aecc}{cm-super, lmodern}
-\LWR at earlyloadnever{alg}{algorithm2e, algorithmicx}
-\LWR at earlyloadnever{algorithmic}{algorithm2e, algorithmicx}
-\LWR at earlyloadnever{bitfield}{bytefield}
-\LWR at earlyloadnever{caption2}{caption}
-\LWR at earlyloadnever{colortab}{colortbl}
-\LWR at earlyloadnever{csvtools}{datatool}
-\LWR at earlyloadnever{doublespace}{setspace}
-\LWR at earlyloadnever{fancyheadings}{fancyhdr}
-\LWR at earlyloadnever{fncylab}{cleveref}
-\LWR at earlyloadnever{formula}{siunitx}
-\LWR at earlyloadnever{glossary}{glossaries}
-\LWR at earlyloadnever{hyper}{hyperref}
-\LWR at earlyloadnever{libgreek}{libertinust1math, newtx}
-\LWR at earlyloadnever{newthm}{ntheorem}
-\LWR at earlyloadnever{pdfcprot}{microtype}
-\LWR at earlyloadnever{picins}{floatflt, wrapfig}
-\LWR at earlyloadnever{rplain}{fancyhdr}
-\LWR at earlyloadnever{si}{siunitx}
-\LWR at earlyloadnever{sistyle}{siunitx}
-\LWR at earlyloadnever{slashbox}{diagbox}
-\LWR at earlyloadnever{statex}{statex2}
-\LWR at earlyloadnever{t1enc}{fontenc, inputenc, inputenx}
-\LWR at earlyloadnever{ucs}{inputenc, inputencx}
-\LWR at earlyloadnever{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
-\@ifpackageloaded{xeCJK}{}{
-    \LWR at earlyloadnever{CJK}{ctex, xeCJK}
-    \LWR at earlyloadnever{CJKutf8}{ctex, xeCJK}
-}
-\LWR at earlyloadnever{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle}
-\LWR at earlyloadnever{hangul}{kotex, xetexko, luatexko}
+\LWR at earlyclassloadnever{novel}{}
+\LWR at earlyclassloadnever{powerdot}{}
 \LWR at loadafter{2in1}
 \LWR at loadafter{2up}
 \LWR at loadafter{a4}
@@ -251,6 +342,7 @@
 \LWR at loadafter{caption2}
 \LWR at loadafter{caption3}
 \LWR at loadafter{cases}
+\LWR at loadafter{centerlastline}
 \LWR at loadafter{changebar}
 \LWR at loadafter{changelayout}
 \LWR at notmemoirloadafter{changepage}
@@ -282,6 +374,7 @@
 \LWR at loadafter{dblfnote}
 \LWR at notmemoirloadafter{dcolumn}
 \LWR at loadafter{decimal}
+\LWR at loadafter{decorule}
 \LWR at loadafter{diagbox}
 \LWR at loadafter{dingbat}
 \LWR at loadafter{DotArrow}
@@ -322,6 +415,7 @@
 \LWR at loadafter{extramarks}
 \LWR at loadafter{fancybox}
 \LWR at loadafter{fancyhdr}
+\LWR at loadafter{fancypar}
 \LWR at loadafter{fancyref}
 \LWR at loadafter{fancytabs}
 \LWR at loadafter{fancyvrb}
@@ -359,6 +453,7 @@
 \LWR at loadafter{forest}
 \LWR at loadafter{fouridx}
 \LWR at loadafter{framed}
+\LWR at loadafter{froufrou}
 \LWR at loadafter{ftcap}
 \LWR at loadafter{ftnright}
 \LWR at loadafter{fullminipage}
@@ -505,6 +600,7 @@
 \LWR at loadafter{parcolumns}
 \LWR at loadafter{parnotes}
 \LWR at notmemoirloadafter{parskip}
+\LWR at loadafter{pbalance}
 \LWR at loadafter{pbox}
 \LWR at loadafter{pdfcol}
 \LWR at loadafter{pdfcolfoot}
@@ -592,6 +688,7 @@
 \LWR at loadafter{simplebnf}
 \LWR at loadafter{SIunits}
 \LWR at loadafter{siunitx}
+\LWR at loadafter{siunitx-v2}
 \LWR at loadafter{skmath}
 \LWR at loadafter{slantsc}
 \LWR at loadafter{slashed}
@@ -1433,57 +1530,29 @@
 \newcommand*\LWR at findword[3][,]{%
     \StrBetween[#3,\numexpr#3+1]{#1#2#1}{#1}{#1}%
 }
+\LetLtxMacro\LWR at checkloadnever\LWR at afterloadnever
 
-
 \newcommand*{\LWR at checkloadfilename}[1]{%
-\LWR at checkloadnever{#1}{ae}{cm-super, lmodern}
-\LWR at checkloadnever{#1}{aecc}{cm-super, lmodern}
-\LWR at checkloadnever{#1}{aecompl}{cm-super, lmodern}
-\LWR at checkloadnever{#1}{alg}{algorithm2e, algorithmicx}
-\LWR at checkloadnever{#1}{algorithmic}{algorithm2e, algorithmicx}
-\LWR at checkloadnever{#1}{bitfield}{bytefield}
-\LWR at checkloadnever{#1}{caption2}{caption}
-\LWR at checkloadnever{#1}{ccaption}{caption}% might be preloaded by memoir
-\LWR at checkloadnever{#1}{colortab}{colortbl}
-\LWR at checkloadnever{#1}{csvtools}{datatool}
-\LWR at checkloadnever{#1}{doublespace}{setspace}
-\LWR at checkloadnever{#1}{fancyheadings}{fancyhdr}
-\LWR at checkloadnever{#1}{fncylab}{cleveref}
-\LWR at checkloadnever{#1}{formula}{siunitx}
-\LWR at checkloadnever{#1}{glossary}{glossaries}
-\LWR at checkloadnever{#1}{hyper}{hyperref}
-\LWR at checkloadnever{#1}{libgreek}{libertinust1math, newtx}
-\LWR at checkloadnever{#1}{newthm}{ntheorem}
-\LWR at checkloadnever{#1}{pdfcprot}{microtype}
-\LWR at checkloadnever{#1}{picins}{floatflt, wrapfig}
-\LWR at checkloadnever{#1}{rplain}{fancyhdr}
-\LWR at checkloadnever{#1}{si}{siunitx}
-\LWR at checkloadnever{#1}{sistyle}{siunitx}
-\LWR at checkloadnever{#1}{slashbox}{diagbox}
-\LWR at checkloadnever{#1}{statex}{statex2}
-\LWR at checkloadnever{#1}{t1enc}{fontenc, inputenc, inputenx}
-\LWR at checkloadnever{#1}{ucs}{inputenc, inputencx}
-\LWR at checkloadnever{#1}{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
-\LWR at checkloadnever{#1}{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle}
-\LWR at checkloadnever{#1}{hangul}{kotex, xetexko, luatexko}
-\LWR at checkloadbefore{#1}{ctex}
-\LWR at checkloadbefore{#1}{fontspec}
-\LWR at checkloadbefore{#1}{inputenc}
-\LWR at checkloadbefore{#1}{inputenx}
-\LWR at checkloadbefore{#1}{nfssext-cfr}
-\LWR at checkloadbefore{#1}{fontaxes}
-\LWR at checkloadbefore{#1}{kotex}
-\LWR at checkloadbefore{#1}{kpfonts}% textcomp option clash
-\LWR at checkloadbefore{#1}{luatexja}
-\LWR at checkloadbefore{#1}{luatexja-fontspec}
-\LWR at checkloadbefore{#1}{luatexko}
-\LWR at checkloadbefore{#1}{morewrites}
-\LWR at checkloadbefore{#1}{newclude}
-\LWR at checkloadbefore{#1}{newunicodechar}
-\LWR at checkloadbefore{#1}{plext}
-\LWR at checkloadbefore{#1}{xeCJK}
-\LWR at checkloadbefore{#1}{xetexko}
-\LWR at checkloadbefore{#1}{zxjatype}
+    \edef\LWR at tempone{#1}%
+    \LWR at checkloadnevers
+    \LWR at checkloadbefore{ctex}
+    \LWR at checkloadbefore{fontspec}
+    \LWR at checkloadbefore{inputenc}
+    \LWR at checkloadbefore{inputenx}
+    \LWR at checkloadbefore{nfssext-cfr}
+    \LWR at checkloadbefore{fontaxes}
+    \LWR at checkloadbefore{kotex}
+    \LWR at checkloadbefore{kpfonts}% textcomp option clash
+    \LWR at checkloadbefore{luatexja}
+    \LWR at checkloadbefore{luatexja-fontspec}
+    \LWR at checkloadbefore{luatexko}
+    \LWR at checkloadbefore{morewrites}
+    \LWR at checkloadbefore{newclude}
+    \LWR at checkloadbefore{newunicodechar}
+    \LWR at checkloadbefore{plext}
+    \LWR at checkloadbefore{xeCJK}
+    \LWR at checkloadbefore{xetexko}
+    \LWR at checkloadbefore{zxjatype}
 }
 
 \newcommand*{\LWR at lookforpackagename}[1]{%
@@ -1547,11 +1616,11 @@
     {%
         \PackageError{lwarp}{%
             You used:\MessageBreak
-            \protect\requirepackage[#1]{#2}\MessageBreak
+            \protect\usepackage[#1]{#2}\MessageBreak
             Braces in the package options will fail with Lwarp.\MessageBreak
             Instead, use:\MessageBreak
             \protect\PassOptionsToPackage{#1}{#2}\MessageBreak
-            \protect\requirepackage{#2}\MessageBreak
+            \protect\usepackage{#2}\MessageBreak
             near the line number given below.\MessageBreak
             Enter 'h' for more info%
         }%
@@ -4677,7 +4746,7 @@
 
 -- Copyright 2016-2021 Brian Dunn
 
-printversion = "v0.896"
+printversion = "v0.897"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -11168,7 +11237,7 @@
 }
 
 
-\NewDocumentCommand{\listof}{m +m}{%
+\NewDocumentCommand{\LWR at listof}{m +m}{%
     \@ifundefined{l@#1}{%
         \csdef{l@#1}##1##2{\hypertocfloat{1}{#1}{\@nameuse{ext@#1}}{##1}{##2}}%
     }{}%
@@ -12967,7 +13036,7 @@
     text-degree = {\LWR at siunitx@textdegree},
     text-arcminute = {\LWR at siunitx@textprime} ,
     text-arcsecond = {\LWR at siunitx@textdblprime} ,
-}{siunitx}
+}{siunitx-v2}
 
 \end{warpHTML}
 



More information about the tex-live-commits mailing list.