texlive[54546] trunk: lwarp (25mar20)

commits+karl at tug.org commits+karl at tug.org
Wed Mar 25 22:11:36 CET 2020


Revision: 54546
          http://tug.org/svn/texlive?view=revision&revision=54546
Author:   karl
Date:     2020-03-25 22:11:36 +0100 (Wed, 25 Mar 2020)
Log Message:
-----------
lwarp (25mar20)

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-amsmath.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-chemfig.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-draftwatermark.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-endnotes.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginnote.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pagenote.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-patch-memoir.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-soul.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-syntonly.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-xpinyin.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-etoc.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-luatexko.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccfoots.sty

Modified: trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2020-03-25 21:11:36 UTC (rev 54546)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2020 Brian Dunn
 
-printversion = "v0.81"
+printversion = "v0.82"
 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	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2020-03-25 21:11:36 UTC (rev 54546)
@@ -1,5 +1,5 @@
 
-LaTeX lwarp package v0.81   README.txt
+LaTeX lwarp package v0.82   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	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2020-03-25 21:11:36 UTC (rev 54546)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2020 Brian Dunn
 
-printversion = "v0.81"
+printversion = "v0.82"
 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	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2020-03-25 21:11:36 UTC (rev 54546)
@@ -16,7 +16,7 @@
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{lwarp}
-%<package>    [2020/03/04 v0.81  Allows LaTeX to directly produce HTML5 output.]
+%<package>    [2020/03/25 v0.82  Allows LaTeX to directly produce HTML5 output.]
 %
 %<*driver>
 \documentclass{ltxdoc}
@@ -778,6 +778,10 @@
 \cs{ForceHTMLPage} \\
 \cs{theendnotes}
 \end{sourcedisplay}
+
+If using \brand{MathJax}, see \cref{sec:limitsfootnotes}
+\watchout[\cs{endnotemark}]\margintag{numbering}
+regarding the use of \cs{endnotemark} and \cs{endnotetext}.
 }
 
 
@@ -913,6 +917,31 @@
 
 \limitsperpage
 
+If using \brand{MathJax}, after each math expression with a \cs{footnotemark},
+\watchout[MathJax, \cs{footnotemark}]
+adjust the \ctr{footnote} counter by the number of \cs{footnotemark}s:
+\begin{sourcedisplay}
+\cs{[} (math expression with \textgreen{two} instances of \cs{footnotemark}) \cs{]} \\
+\textred{\cs{warpHTMLonly}\{}\cs{addtocounter}\{footnote\}\{\textgreen{2}\}\textred{\}}
+\end{sourcedisplay}
+Similarly for \pkg{endnotes}, but \emph{not} \pkg{sidenotes}.
+
+Also for \brand{MathJax}, \cs{footnotename} is used for a \cs{footnotemark}
+if the actual footnote number is not known.
+To redefine it, provide it before loading \pkg{lwarp}:
+\begin{sourcedisplay}
+\cs{providecommand}\{\cs{footnotename}\}\{something\} \\
+\cs{usepackage}\{lwarp\}
+\end{sourcedisplay}
+Similar for \pkg{sidenotes}.
+For \pkg{endnotes}:
+\begin{sourcedisplay}
+\cs{def}\cs{endnotename}\{something\}\% \cs{def} allows name to start with "end"
+\end{sourcedisplay}
+
+For the \pkg{pagenote} package, there is no \cs{pagenotename} to define,
+since there is no \cs{pagenotemark} command.
+
 The \pkg{footmisc} \optn{stable} option is emulated by \pkg{lwarp}.
 \margintag{\pkg{footmisc}}
 
@@ -1124,7 +1153,7 @@
 Math may be rendered
 \margintag{Math rendering}
 as \SVG\ graphics or using the \brand{MathJax} JavaScript display engine.
-\gindex{JavaScript=\brand{JavaScript}>MathJax=\brand{MathJax}}
+\gindex{JavaScript=\brand{JavaScript}>mathjax=\brand{MathJax}}
 
 Rendering math as images creates a new \SVG\ file for each expression,
 \margintag{\SVG\ files}
@@ -1198,8 +1227,8 @@
 The popular \brand{MathJax} alternative (\url{mathjax.org}) may be used to display math.
 \margintag{\brand{MathJax} math option}
 \DescribeProgram{MathJax}
-\gindex{math>MathJax=\brand{MathJax} summary}
-\gindex{MathJax=\brand{MathJax}>summary}
+\gindex{math>mathjax=\brand{MathJax} summary}
+\gindex{mathjax=\brand{MathJax}>summary}
 
 When \brand{MathJax} is enabled, math is rendered twice:
 \begin{enumerate}
@@ -1214,8 +1243,8 @@
 
 \subsubsection{Customizing \brand{MathJax}}
 \label{sec:limitscustomizemathjax}
-\gindex{MathJax=\brand{MathJax}>custom functions}
-\gindex{math>MathJax=\brand{MathJax} custom functions}
+\gindex{mathjax=\brand{MathJax}>custom functions}
+\gindex{math>mathjax=\brand{MathJax} custom functions}
 \limitscustomizemathjax
 
 \subsubsection{\brand{MathJax} limitations}
@@ -1225,11 +1254,11 @@
 \begin{itemize}
 \item \brand{MathJax} does not support \cs{multicolumn} or \pkg{multirow}.
     \trouble[\cs{multicolumn}, \pkg{multirow}]%
-        {multicolumn=\cs{multicolumn}>MathJax=\brand{MathJax}}
-    \trouble{multirow=\pkg{multirow}>MathJax=\brand{MathJax}}
-    \trouble{array=\env{array}>MathJax=\brand{MathJax}}
-    \trouble{MathJax=\brand{MathJax}>multicolumn=\cs{multicolumn}}
-    \trouble{MathJax=\brand{MathJax}>multirow=\cs{multirow}}
+        {multicolumn=\cs{multicolumn}>mathjax=\brand{MathJax}}
+    \trouble{multirow=\pkg{multirow}>mathjax=\brand{MathJax}}
+    \trouble{array=\env{array}>mathjax=\brand{MathJax}}
+    \trouble{mathjax=\brand{MathJax}>multicolumn=\cs{multicolumn}}
+    \trouble{mathjax=\brand{MathJax}>multirow=\cs{multirow}}
     These may be used in text \env{tabular}s or \SVG\ math,
     but in \brand{MathJax} math \env{array}s they are emulated.
     \cs{multicolumn} only fills a single cell, resulting in a short row.
@@ -1236,19 +1265,22 @@
     \cs{multirow} simply prints its text on the first line.
 
 \item \brand{MathJax} does not support subequations.
-    \trouble[subequations]{MathJax=\brand{MathJax}>subequations}%
+    \trouble[subequations]{mathjax=\brand{MathJax}>subequations}%
     \trouble{math>subequations}%
     This may be improved by parsing the \LaTeX{}
     math expression to manually insert tags, but this has not yet been done.
 
-\item Footnotes inside equations are not yet supported while using \brand{MathJax}.
-    \watchout[footnotes in math]
-    \pkg{lwarp} provides a basic emulation for \brand{MathJax}.
+\item Footnotes are emulated when used inside a \brand{MathJax} expression.
+    \watchout[footnotes]
+    For an equation with a single footnote, the correct footnote number is used.
+    For non-equations, \cs{footnotename} is used instead, since the actual
+    number cannot be tracked.
+    See \cref{sec:limitsfootnotes} regarding the use of footnotes with \brand{MathJax}.
 
 \item Inside a \brand{MathJax} expression,
-    \trouble[references in math]{MathJax=\brand{MathJax}>references}
-    \trouble{cross reference>MathJax=\brand{MathJax}}
-    \trouble{reference>MathJax=\brand{MathJax}}
+    \trouble[references]{mathjax=\brand{MathJax}>references}
+    \trouble{cross reference>mathjax=\brand{MathJax}}
+    \trouble{reference>mathjax=\brand{MathJax}}
     references to equations work within the same \HTML\ web page, but do not
     work when referring to an equation in a different \HTML\ web page.
     Outside of a \brand{MathJax} expression, in the text body, references work
@@ -1274,7 +1306,7 @@
     render the horizontal alignment of the math and text following after on the same line.
 
 \item Other math-related macros and packages are not directly supported by \brand{MathJax},
-    \trouble[other macros and packages]{MathJax=\brand{MathJax}>unsupported packages}
+    \trouble[other macros and packages]{mathjax=\brand{MathJax}>unsupported packages}
     including \cs{ensuremath} and \pkg{bigdelim},
     and occasionally-used macros such as \cs{relax}.
     While using \brand{MathJax}, \pkg{lwarp} provides emulation
@@ -1282,9 +1314,9 @@
     \pkg{nicefrac}, \pkg{siunitx}, and \pkg{units}.
 
 \item Starred macros are generally not supported
-    \trouble[starred macros]{starred macros>MathJax=\brand{MathJax}}
-    \trouble{math>starred macros and MathJax=\brand{MathJax}}
-    \trouble{MathJax=\brand{MathJax}>starred macros}
+    \trouble[starred macros]{starred macros>mathjax=\brand{MathJax}}
+    \trouble{math>starred macros and mathjax=\brand{MathJax}}
+    \trouble{mathjax=\brand{MathJax}>starred macros}
     by MathJax or the \pkg{lwarp} emulations.
 \end{itemize}
 }
@@ -1376,7 +1408,7 @@
 \textred{\cs{end}\{warpMathJax\}}
 \end{sourcedisplay}
 To avoid a slowdown in compile speed, use
-\trouble[slow compilation]{MathJax=\brand{MathJax}>slow compilation}
+\trouble[slow compilation]{mathjax=\brand{MathJax}>slow compilation}
 \trouble{compiling>slow \brand{MathJax}}
 the \env{warpMathJax} environment to prevent its contents from being processed in
 print or \SVG\ math output.
@@ -1463,7 +1495,7 @@
     \watchout[italic correction]
 
     If using \brand{MathJax}:
-    \trouble[\brand{MathJax}]{MathJax=\brand{MathJax}>mathtools=\pkg{mathtools}}
+    \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>mathtools=\pkg{mathtools}}
     \begin{itemize}
     \item Starred macros are not available.  Starred environments do work.
     \item \pkg{mathtools} \optn{disallowspaces} does not work for \brand{MathJax}.
@@ -1502,8 +1534,8 @@
 
 \newcommand{\limitschemformula}{%
 \pkg{chemformula} works best without \brand{MathJax}.
-\trouble[\pkg{chemformula} with \brand{MathJax}]{MathJax=\brand{MathJax}>chemformula=\pkg{chemformula}}
-\trouble{chemformula=\pkg{chemformula}>MathJax=\brand{MathJax}}
+\trouble[\pkg{chemformula} with \brand{MathJax}]{mathjax=\brand{MathJax}>chemformula=\pkg{chemformula}}
+\trouble{chemformula=\pkg{chemformula}>mathjax=\brand{MathJax}}
 If \brand{MathJax} is used,
 \cs{displaymathother} must be used before \env{array}, and then
 \cs{displaymathnormal} may be used after.
@@ -2098,8 +2130,8 @@
         \end{tabular}
         \end{sourcedisplay}
     \item \brand{MathJax} does not support \pkg{multirow}, so it is emulated
-        \trouble[MathJax]{MathJax=\brand{MathJax}>multirow=\cs{multirow}}
-        \trouble{multirow=\pkg{multirow}>MathJax=\brand{MathJax}}
+        \trouble[MathJax]{mathjax=\brand{MathJax}>multirow=\cs{multirow}}
+        \trouble{multirow=\pkg{multirow}>mathjax=\brand{MathJax}}
         to only print its text on the first row.
         \cs{multirow} works as expected in text \env{tabular}s or \SVG\ math.
 \end{itemize}
@@ -2625,8 +2657,8 @@
 For text mode, \pkg{lwarp} uses an emulation which provides a very effective
 \HTML\ interpretation of \pkg{siunitx}.
 For math expressions while using \brand{MathJax},
-\trouble{siunitx=\pkg{siunitx}>MathJax=\brand{MathJax}}
-\trouble[MathJax]{MathJax=\brand{MathJax}>siunitx=\pkg{siunitx}}
+\trouble{siunitx=\pkg{siunitx}>mathjax=\brand{MathJax}}
+\trouble[MathJax]{mathjax=\brand{MathJax}>siunitx=\pkg{siunitx}}
 a limited emulation is used.
 Most functions work reasonably well, but many options cannot be emulated.
 \pkg{siunitx} macros with more than one optional value cannot absorb the second optional
@@ -2893,7 +2925,7 @@
 %<*package>
 % \fi
 %
-% \CheckSum{42916}
+% \CheckSum{43557}
 %
 % \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
@@ -3017,6 +3049,7 @@
 % \changes{v0.79}{2020/02/01}{\ 2020/02/01}
 % \changes{v0.80}{2020/02/19}{\ 2020/02/19}
 % \changes{v0.81}{2020/03/04}{\ 2020/03/04}
+% \changes{v0.82}{2020/03/25}{\ 2020/03/25}
 
 
 
@@ -3239,6 +3272,25 @@
 %
 % \begin{description}
 % \needspace{2\baselineskip}
+% \item[v0.82:] \brand{MathJax} notes, \pkg{xpinyin} improvements, various updates.
+%   \begin{itemize}
+%       \item Improved footnotes with \brand{MathJax}.
+%           \margintag{\brand{MathJax}}
+%       \item Added \brand{MathJax} emulation for \pkg{endnotes}, \pkg{marginnote},
+%           \pkg{nccfoots}, \pkg{pagenote}, \pkg{parnotes}, \pkg{sidenotes}.
+%       \item \pkg{xpinyin}: Added pinyin with modern \HTML.
+%           \margintag{packages}
+%       \item \pkg{luatexko}: Added \cs{dotemph}, \cs{ruby}, \cs{uline}, etc.
+%       \item \pkg{soul}: Fixed \cs{<}.
+%       \item \pkg{chemfig}: Updated to v1.5.
+%       \item \pkg{draftwatermark}: Updated to v2.0.
+%       \item \pkg{ulem}: Fixed: \cs{dashuline}.
+%       \item \pkg{amsmath}: Fixed: \cs{intertext} with \brand{MathJax}.
+%       \item \pkg{endnotes}: Fixed: Marks in print mode.
+%       \item \pkg{tocvsec2}, \pkg{tableof}: Verified to work as-is.
+%       \item Added \pkg{etoc} (nullified).
+%   \end{itemize}
+% \needspace{2\baselineskip}
 % \item[v0.81:] \brand{MathJax} speedup and additional emulations.
 %   \begin{itemize}
 %       \item Improved warning regarding \SVG\ math sizing \Slash baselines and
@@ -4120,590 +4172,590 @@
 %           \pkg{chemfig}, \pkg{chemformula}, \pkg{chemmacros}, \pkg{chemnum}, \pkg{chemgreek},
 %           \pkg{epstopdf-base}, \pkg{grid}, \pkg{ltxgrid}.
 %   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.50:] Improved \SVG\ math.
-%   \begin{itemize}
-%       \item \SVG\ math and other \env{lateximage}s now are
-%           converted to \SVG\ using \margintag{\SVG\ math}
-%           parallel background tasks, utilizing all available \acro{CPU} cores.
-%       \item Inline \SVG\ math image file names now are MD5 hashes made from 
-%           their source \LaTeX\ code.
-%           Identical inline math expressions, such as multiple instance of \$x\$,
-%           now share a single image file.
-%           This reduces the number of images to store, transmit, process, and display.
-%           Each image file is only converted to \SVG\ a single time, and reused if it
-%           already exists.
-%           Display math and other forms of \SVG\ image such as \env{picture} and
-%           \tikz\ still use individual image files which are recreated each time
-%           \cmds{lwarpmk limages} is run.
-%       \item Fixes: SVG math and/or \cs{underline} in a sectioning file name.
-%       \item Improved \SVG\ display math and tags.
-%       \item Improved \SVG\ math and \pkg{siunitx} \attribute{alt} tags.
-%       \item Improved \pkg{siunitx} units.
-%       \item Fix: \cs{ensuremath} with MathJax now creates a \env{lateximage}.
-%       \item Fix: \cs{centering}, etc. in \SVG\ math, \env{lateximage}, \tikz.
-%       \item Fix: Made various macros robust,
-%           additionally fixing \pkg{authblk}.\margintag{misc. fixes}
-%       \item Fix: \pkg{ntheorem} if neither \optn{standard} nor \optn{amsthm} selected.
-%       \item Fix: \pkg{listings}: Improved column alignment.
-%       \item Fix: Load \pkg{fontspec} if necessary.
-%       \item Added \pkg{xy}, \pkg{epstopdf}, \pkg{diagbox}, \pkg{pbox}, \margintag{packages}
-%           \pkg{bytefield}, \pkg{axodraw2}, \pkg{phfqit},
-%           \pkg{schemata},
-%           \pkg{dblfloatfix}, \pkg{nonfloat}, \pkg{morefloats}.
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.49:] \
-%   \begin{itemize}
-%       \item Added \pkg{xcolor} \cs{rowcolors}.\margintag{tabular}
-%       \item Fix: \cs{noalign} inside a \env{tabular}.
-%       \item Fix: \cs{eqref} in a caption.\margintag{math}
-%       \item Fix: Incorrect \PDF\ font size changes
-%           caused occasional \HTML\ corruption.\margintag{misc fixes}
-%       \item Fix: \pkg{printlen} changes are now grouped for \HTML\ output.
-%       \item Added \pkg{vwcol}, \pkg{vertbars}, \pkg{hyphenat}, \margintag{packages}
-%           \pkg{lineno}, \pkg{fnlineno}, \pkg{figsize}, \pkg{hypdestopt}, \pkg{pagegrid},
-%           \pkg{pdfrender}, \pkg{luacolor}, \pkg{resizegather}.
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.48:] \
-%   \begin{itemize}
-%       \item Added some documentation
-%           \margintag{documentation}
-%           regarding converting an existing document.  See \cref{sec:convertexisting}.
-%       \item Updated compatibility for new \pkg{cleveref} v0.21.\margintag{\pkg{cleveref}}
-%       \item Fix: Ignores optional tabular column arguments.\margintag{tabular}
-%       \item Added \cs{leftline}, \cs{centerline},
-%           \cs{rightline}.\margintag{minor updates}
-%       \item Lists have improved font control via \cs{makelabel}.
-%       \item Print-mode \env{lateximage} now boxed to the natural width of its
-%           multiline contents.
-%       \item \env{abstract} now allows an optional name, as required by some classes.
-%       \item Fix: Improved spacing, \cs{mbox}, and font sizes
-%           with \SVG\ math, \tikz.\margintag{math}
-%       \item \pkg{siunitx}: Improved \SVG\ math, fraction compatibility, color output.
-%       \item Fix: LOF/LOT links.\margintag{misc. fixes}
-%       \item Fix: Virtual page size grouping caused excessive \PDF\ page breaks.
-%       \item Fix: Parsing similar package names in a
-%           single \cs{usepackage}.
-%       \item Fix: Adapts to classes without \cs{part}.
-%       \item Fix: \cs{newline} in \cs{title} was causing |<br>| in window title.
-%       \item Fix: \cs{maketitle} with \cs{cr}, \cs{crcr}, \cs{noalign},
-%                   for \pkg{IEEEtran} class.
-%       \item Fix: \pkg{xfrac} neutralized \env{BlockClass} and others.
-%       \item Fix: \pkg{todonotes} and \pkg{luatodonotes}: Improved \cs{todototoc}.
-%       \item Added \pkg{colortbl}, \margintag{packages}
-%                   \pkg{chapterbib}, \pkg{acro}, \pkg{acronym},
-%                   \pkg{hypernat}, \pkg{hypcap}, \pkg{stfloats},
-%                   \pkg{vmargin}, \pkg{fancyheadings}.
-%       \item \pkg{fancyref}: Now directly supported.
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.47:] \
-%   \begin{itemize}
-%       \item Improved \SVG\ math baseline and sizing.\margintag{math}
-%       \item Fixes: \SVG math in captions, subcaptions, \cs{nameref}.
-%       \item Fixes: Line wrap at hyphen in \HTML\ output.
-%       \item Added \pkg{endheads}, \pkg{multitoc}, \pkg{sectionbreak},
-%           \pkg{blowup}, \pkg{xurl}.\margintag{packages}
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.46:] \
-%   \begin{itemize}
-%       \item \cs{PrintStack} changed to \cs{LWRPrintStack}.\watchout[name change]
-%       \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes}
-%       \item Fix: Stack unnesting.
-%       \item Fix: SVG math and \env{lateximage}s in numerous situations.
-%       \item Fix: Spaces in \cs{usepackage}.
-%       \item Fix: Now allows \brand{MathJax} inside \env{verse}.
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.45:] \
-%   \begin{itemize}
-%       \item Improved \prog{MiKTeX} install instructions.
-%           \margintag{documentation}
-%       \item Improved graphics and \pkg{epstopdf} instructions.
-%       \item Updates to the \nameref{sec:introduction}.
-%       \item Added \pkg{memoir}, \pkg{memhfixc}.
-%               See \cref{sec:limitsmemoir}.\margintag{memoir}
-%       \item Fix: Now allows underscores in labels.\margintag{cross-references}
-%       \item Fix: \cs{\_} and |\<blank>| in section/file names.
-%       \item Fix: Now allows \brand{MathJax} inside \env{tabbing}.\margintag{math}
-%       \item Fix: Bibliography \cs{em} names.\margintag{bibliography}
-%       \item Added \pkg{cite}, \pkg{natbib}, \pkg{backref}.
-%               (Also works as-is with \pkg{biblatex}.)
-%       \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes}
-%       \item Fix: ``Improper \cs{prevdepth}'' with minipages, lists.
-%       \item Fix: Incorrect \SVG\ math and |lateximage|s with \pkg{subfig}.
-%       \item Fix: Lateximages from incorrect pages with Mathjax.
-%       \item Fix: Missing sidetoc if using \pkg{listings}.
-%       \item Fix: Added an \pkg{array} emulation package.
-%       \item Added
-%           \pkg{subfigure}, \pkg{prettyref}, \margintag{packages}
-%           \pkg{hanging}, \pkg{midpage},
-%           \pkg{flafter}, \pkg{fltrace}, \pkg{changebar}, \pkg{endfloat},
-%           \pkg{continue}, \pkg{fwlw}, \pkg{turnthepage}, \pkg{footnpag},
-%           \pkg{pagesel}, \pkg{textfit}, \pkg{titleref}.
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.44:] \
-%   \begin{itemize}
-%       \item Added \pkg{koma-script} classes (except \pkg{scrlttr2}, \pkg{scrjura}).
-%       \margintag{\pkg{koma-script}}
-%       \item Added \pkg{scrextend},
-%           \pkg{scrlayer}, \pkg{scrlayer-notecolumn}, \pkg{scrlayer-scrpage},
-%           \pkg{scrhack}, \pkg{tocstyle}, \pkg{tocbasic}.
-%       \item Added \cs{HTMLTitle}.
-%           \margintag{\HTML\ title and author}
-%           Fixed web page title if \cs{HTMLTitle} empty and no \cs{title} given and
-%           not using \pkg{titling} package.
-%       \item Fixed web page author if \cs{HTMLauthor} is empty and \cs{author} is not given.
-%       \item If using \prog{pdflatex}, automatically loads T1 and \UTF-8 encodings.
-%           \margintag{encodings}
-%           (Additional \pkg{fontenc} encodings may be loaded after \pkg{lwarp}.)
-%       \item Added \env{list} and \env{trivlist} environments, \pkg{hang}.\margintag{lists}
-%       \item Fix: \cs{multicolumn} alignment if formatting for a word processor.
-%           \margintag{tabular}
-%       \item Added \pkg{ltxtable}.
-%       \item Fix: \brand{MathJax} combined with \env{lateximage}s.\margintag{math}
-%       \item \pkg{algorithmicx}: Improved comment symbol and floating.
-%       \item Completed \pkg{todonotes} and \pkg{luatodonotes}.
-%           \margintag{\pkg{packages}}
-%       \item Added \pkg{todo}, \pkg{easy-todo}, \pkg{fixmetodonotes}, \pkg{fixme}.
-%       \item Added \pkg{soulutf8}, \pkg{soulpos}, \pkg{cancel}.
-%       \item Added \pkg{section}, \pkg{fancyref}, \pkg{ifoddpage}.
-%       \item Added \pkg{preview}, \pkg{atbegshi}, \pkg{watermark}.
-%       \item Improved \pkg{tocloft} \cs{newlistof} and \cs{newlistentry}.
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.43:] \
-%   \begin{itemize}
-%       \item Docs: Reorganized \HTML\ customization, added an \HTML\ settings table.
-%           See \cref{sec:htmlsettings}.
-%       \item Added \progcode{FootnoteDepth} to control the placement
-%           \margintag{footnotes}
-%           of pending footnotes before section breaks.
-%           By default, pending footnotes are printed before
-%           each \cs{subparagraph} or higher.
-%       \item Fix: Expansion in section name. \margintag{sectioning}
-%       \item Fix: Ignore spaces in tabular column specification.
-%           \margintag{\env{tabular}}
-%       \item Fix: Tabular rules at bottom or when finishing incomplete rows.
-%       \item Fix: \cs{multicolumn} at/bang/before/after specifications, trim,
-%           and vertical rules.
-%       \item Fix: \pkg{supertabular} and \pkg{xtab} column misalignment.
-%       \item Fix: \env{equation*}.
-%           \margintag{math}
-%       \item Fix: \SVG\ math in a section name.
-%       \item Fix: \cs{ref} and \cs{eqref} in \SVG\ math.
-%       \item Added \pkg{todonotes} and \pkg{luatodonotes} (but only |disabled|).
-%           \margintag{packages}
-%       \item Added \pkg{breakurl}.
-%       \item \pkg{hyperref}: Fix: Several macros were made robust, \cs{Gauge} added.
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.42:] \
-%   \begin{itemize}
-%       \item Added \TeX\ development support page.
-%           (See page \pageref{sec:supportinglatex}.)
-%           \margintag{Support \TeX!}
-%       \item Improved assitance for word-processor conversions when
-%           \margintag{word-processor conversion}
-%           boolean |FormatWP| is set |true|.
-%           See \cref{sec:wordprocessorconversion}.
-%           \begin{itemize}
-%           \item \textred{The} \watchout[name change]
-%               \textred{boolean |FormatWordProcessor| has
-%               been renamed |FormatWP|.}
-%           \item \textred{The} \watchout[name change]
-%               \textred{boolean |HTMLMarkFloats| has
-%               been renamed |WPMarkFloats|.}
-%           \item New booleans control whether to place additional
-%               marks around minipages, at the table of contents,
-%               at the \LOF\ and \LOT, and whether to
-%               print math as \LaTeX\ source for copy/paste into the
-%               \prog{LibreOffice Writer TeXMaths} extension.
-%           \item Improved formatting for numerous objects.
-%               See \cref{sec:wordprocessorconversion}.
-%           \end{itemize}
-%       \item Add: \env{tabbing} environment.
-%           \margintag{\env{tabbing}}
-%       \item Add: \pkg{overpic} package.  See \cref{sec:overpic}.
-%           \margintag{\pkg{overpic}}
-%       \item Fix: Text copy/paste of \AmS\ math environment numbers and names.
-%           \margintag{math}
-%       \item Improved \cs{ensuremath}.
-%       \item \brand{MathJax} with \pkg{siunitx}: Updated script and documentation.
-%       \item \pkg{textcomp}: Improved \cs{textinterrobangdown}.
-%           \margintag{symbols}
-%       \item \pkg{realscripts}: Fix for subscripts in a \env{lateximage}.
-%       \item \pkg{morewrites}: Enforces loading before \pkg{lwarp}.
-%           \margintag{load order}
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.41:] \
-%   \begin{itemize}
-%       \item Added tabular vertical rules, subject to some limitations.
-%           \margintag{\env{tabular}}
-%           See the rules section of \cref{sec:limitstabular}.
-%       \item Improved \pkg{booktabs}: Width and trim are honored.
-%       \item Added \cs{mcolrowcell} for empty cells inside a \cs{multicolumnrow}.
-%           \watchout[new syntax]
-%           \textred{Use \cs{mcolrowcell} instead of \cs{mrowcell} for two-dimensional
-%           cells created by \cs{multicolumnrow}.}
-%           Continue to use \cs{mrowcell} for empty cells in a \cs{multirow}.
-%           See \cref{sec:multicolumnmultirow} on \cpageref{sec:multicolumnmultirow}.
-%       \item Fix: Unfinished tabular rows are automatically filled.
-%       \item Fix for tabular column specifiers while using \pkg{babel-french}.
-%           (\cs{NoAutoSpacing} is activated then nullified inside the tabular,
-%           due to a conflict with the tabular column parsing code.)
-%   \end{itemize}
-% \item[v0.40:] \
-%   \begin{itemize}
-%       \item \pkg{graphics} and \pkg{graphicx} have been moved from the
-%           \margintag{\pkg{graphics}, \pkg{graphicx}}
-%           \pkg{lwarp} core, and are only loaded if requested with \cs{usepackage}.
-%       \item Improved \pkg{graphics} \cs{graphicspath} support.
-%           \margintag{\cs{includegraphics} path}
-%           Multiple image directories may now be used.
-%           \textred{Refer to |.pdf| files without a file extension}
-%           \watchout[image file extensions]
-%           to allow the \HTML\ version
-%           to use a |.svg|, |.png|, |.jpg|, or |.gif| version instead.
-%           See \cref{sec:limitsgraphics}.
-%       \item \pkg{grffile} is now directly supported instead of emulated.
-%       \item Fix for \pkg{bigdelim}, and improved documentation.
-%           \margintag{\pkg{bigdelim}}
-%           See \cref{sec:bigdelim}.
-%       \item Improved \LaTeX\ and \pkg{textcomp} symbols.\margintag{\pkg{symbols}}
-%       \item Fix for \LaTeX\ logos and \cs{InlineClass}, etc. inside a \env{lateximage}.
-%           \margintag{\pkg{fixes}}
-%       \item Fix for \pkg{xltxtra} with \XeLaTeX.
-%       \item Fixes for \pkg{tocbibind} with \cs{simplechapter}, etc.
-%		\item Fixes for \cs{multicolumnrow} and \cs{nullfonts} with older versions
-%			of \pkg{multirow} and \pkg{xparse}.
-%       \item Added \cs{underline}.
-%       \item Added \pkg{adjmulticol}.\margintag{margins}
-%       \item Added \pkg{cuted}, \pkg{midfloat}.\margintag{columns}
-%       \item Added \pkg{pfnote}, \pkg{fnpos}, \pkg{dblfnote}.\margintag{footnotes}
-%       \item Added \pkg{stabular}, \pkg{tabls}.\margintag{tabular}
-%       \item Added \pkg{sectsty}, \pkg{anonchap}, \pkg{quotchap}.\margintag{sectioning}
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.39:] \
-%   \begin{itemize}
-%       \item Improved the titlepage \HTML\ code, \cs{thanks} notes,
-%           \margintag{title pages}
-%           and \cs{maketitle}.
-%           \pkg{titling} is no longer required, but is still supported.
-%           The \cs{published} and \cs{subtitle} fields are no longer provided,
-%           \watchout[\cs{published} and \cs{subtitle}]
-%           but \cs{AddSubtitlePublished} replicates them using \pkg{titling}.
-%           See \cref{sec:publishedsubtitle}.
-%           \pkg{authblk} is added, and should be loaded before \pkg{titling}.
-%           \watchout[load order]
-%           See \cref{sec:titles}.
-%       \item \cs{multirow} now supports the new optional |vpos| argument.
-%           \margintag{tabular}
-%       \item Added \cs{multicolumnrow} for combined
-%           \margintag{multi column/row cell}
-%           \cs{multicolumn} and \cs{multirow}.
-%           See \cref{sec:multicolumnmultirow}.
-%       \item Tabular special cases:
-%       \begin{itemize}
-%            \item Added \cs{TabularMacro} to mark custom macros
-%                \watchout[macros inside tabular]
-%                inside tabular data cells, avoiding row corruption.
-%                See \cref{sec:limitstabular}.
-%            \item Added \cs{ResumeTabular} for use when a \env{tabular} environment
-%                \watchout[tabular defined inside another environment]
-%                is defined inside another environment.
-%                See \cref{sec:limitstabular}.
-%       \end{itemize}
-%       \item Added \pkg{supertabular}, \pkg{xtab}, \pkg{bigstrut}, \pkg{bigdelim}.
-%           \margintag{tabular}
-%       \item Added \pkg{fullwidth}.\margintag{margins}
-%       \item Added \pkg{addlines}, \pkg{anysize}, \pkg{a4}, \pkg{a4wide}, \pkg{a5comb},
-%           \margintag{page layout}
-%           \pkg{textarea}, \pkg{zwpagelayout}, \pkg{typearea}, \pkg{ebook}.
-%   \end{itemize}
-% \item[v0.38:] \
-%   \begin{itemize}
-%   \item Added \cmds{lwarpmk print1} and \cmds{lwarpmk html1} actions to
-%       \margintag{forced single-pass compile}
-%       force a compile of the project a single time.
-%       Useful when multiple passes are not needed,
-%       or changes were not detected.
-%   \item Added \cs{ForceHTMLPage} and \cs{ForceHTMLTOC} to force
-%       \margintag{starred sections}
-%       a starred sectional unit onto its own \HTML\ page
-%       and with its own \TOC\ entry.
-%       See \cref{sec:forcesectionstar}.
-%   \item Modified the tutorial to use the new \cs{ForceHTMLPage}
-%       \margintag{updated tutorial}
-%       and \cs{ForceHTMLTOC} macros.
-%   \item Added \pkg{appendix}, \pkg{tocbibind}, \pkg{fncychap}, \pkg{fix2col}.
-%       \margintag{packages}
-%   \item Added \pkg{relsize}, \pkg{scalefnt}.\margintag{font size}
-%   \item Added \pkg{realscripts}, \pkg{metalogo}, \pkg{xltxtra}.
-%   \item Added \pkg{grffile}, \pkg{romanbar}.
-%   \item Added \pkg{arabicfront}, \pkg{chappg}, \pkg{nonumonpart}, \pkg{nopageno},
-%       \margintag{page numbering}
-%       \pkg{romanbarpagenumber}.
-%   \item Docs: Improved description of the use of front/back matter.
-%       \margintag{front \& back matter}
-%       See \cref{sec:frontbackmatter}.
-%   \item Fix: \pkg{color} requests \pkg{xcolor}.
-%   \item Fix: \cs{part} for \pkg{article} class.
-%   \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.37:] \
-%   \begin{itemize}
-%   \item \cs{include} now maintains independent |.aux| files
-%       \margintag{\cs{include} for \HTML}
-%       for \HTML\ versions.
-%   \item \pkg{comment}, used by \pkg{lwarp}, now maintains
-%       \margintag{\prog{latexmk}}
-%       independent cut files for print and \HTML\ versions, helping \prog{latexmk} to
-%       better know whether to recompile.
-%   \item Improved support for \LaTeX\ accents,
-%       \margintag{accents and symbols}
-%       \pkg{textcomp}, \pkg{siunitx} symbols.
-%   \item Improved \pkg{babel-french} handling for
-%       \margintag{\pkg{babel-french}}
-%       load order and \textasciitilde\ tilde.
-%   \end{itemize}
-% \item[v0.36:] \
-%	\begin{itemize}
-%	\item Recorganized the documentation section regarding special cases and limitations.
-%		(\Cref{sec:limitations})
-%   \item Improved source formatting.
-%	\item \cs{fbox} and related now use \cs{fboxsep} and \cs{fboxrule}.
-%       \margintag{boxes and frames}
-%	\item \cs{makebox} and \cs{framebox} now use width and position.
-%	\item \cs{fcolorbox} and related now work inside a \env{lateximage}.
-%   \item \pkg{babel-french}: Improvements for French variants, load order,
-%       \margintag{\pkg{babel-french}}
-%       footnotes, ellipses.
-%   \item Improved footnote numbering.
-%       \margintag{footnotes}
-%       \env{lateximage} footnotes now appear as regular footnotes to match
-%       the numbering of the print version.
-%       Also fixed a regression with \brand{MathJax}.
-%   \item Improved \pkg{siunitx} units.
-%       \margintag{\pkg{siunitx}}
-%   \item Fix for filenames while using \brand{MathJax}.
-%   \item Fix for \cs{rule} when \pkg{xcolor} is not loaded.
-%	\item Added \pkg{transparent}, \pkg{upref}.
-%	\end{itemize}
-% \item[v0.35:] Fix: \cs{textbf} and related.
-% \item[v0.34:] \
-%	\begin{itemize}
-%	\item \env{BlockClass}'s optional argument has been moved
-%		\watchout[Optional arguments]
-%		in front of the mandatory argument:
-%		\begin{sourcedisplay}
-%		|BlockClass[style]{class}| \quad \textrm{(NEW)}
-%		\end{sourcedisplay}
-%		instead of:
-%		\begin{sourcedisplay}
-%		|BlockClass{class}[style]| \quad \textrm{(OLD)}
-%		\end{sourcedisplay}
-%		This change makes it more consistent with \LaTeX\ standards,
-%		and avoids problems with space between arguments.
-%	\item Likewise, \cs{InlineClass}'s optional argument now
-%		\watchout[Optional arguments]
-%		comes before the mandatory arguments:
-%		\begin{sourcedisplay}
-%		|\InlineClass[style]{class}{text}|
-%		\end{sourcedisplay}
-%	\item Improved compatibility between spans, minipages, lists,
-%		\margintag{spans with minipages}
-%		frames, and math.
-%		Handles minipages and lists inside an \HTML\ span,
-%		such as an \cs{fbox} containing a minipage,
-%		although with minimal \HTML\ fomatting.
-%		See \cref{sec:minipages}.
-%		\cs{fboxBlock} is added to frame minipages, tables,
-%		\margintag{framing minipages}
-%		and lists with full \HTML\ formatting
-%		but no longer inline, and behaves as \cs{fbox} for print output.
-%		The \env{fminipage} environment is added for framed minipages,
-%		as an environment with full \HTML\ formatting,
-%		and draws a framed minipage in print output.
-%		See \cref{sec:framedminipages}.
-%		\cs{fbox} and minipages now often work in \SVG\ math and \env{lateximage}s.
-%		\brand{MathJax} supports \cs{fbox}, but not \cs{fboxBlock} nor \env{fminipage}.
-%	\item Improved compatibility between \env{lateximage} and
-%		\margintag{\env{lateximage}, \SVG\ math, \env{tabular}}
-%		\env{minipage}, \cs{parbox}, \cs{makebox}, \cs{fbox}, \cs{framebox},
-%		\cs{raisebox}, \cs{scalebox}, \cs{reflectbox}, \env{tabular}, \pkg{booktabs}.
-%	\item Improved font control for \env{lateximage}es and \SVG\ math.
-%	\item Added the \env{eqnarray} environments.\margintag{\env{eqnarray}}
-%	\item \pkg{fancyvrb} is no longer required (preloaded),
-%		\margintag{verbatim packages}
-%		but is still supported.
-%	\item Added \pkg{verbatim} and \pkg{moreverb}.
-%	\item Added \pkg{fancybox}, \pkg{boxedminipage2e} and \pkg{shadow}.
-%		\margintag{framing packages}
-%	\item \pkg{enumitem} is no longer required, but is still supported.
-%		\margintag{list packages}
-%	\item Added \pkg{enumerate} and \pkg{paralist}.
-%	\item \pkg{titleps} is no longer required, but is still supported.
-%	\item Added \pkg{crop}.
-%	\item Added \pkg{rotfloat}, \pkg{marginfit},
-%		and several minor packages; see the change log.
-%	\item Adds fixed-width \HTML\ spaces around punctuation
-%		\margintag{\pkg{babel-french}}
-%		when using \pkg{babel-french}.
-%       \LuaTeX\ does not yet use the extra punctuation spacing.
-%	\end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.33:] \
-%	\begin{itemize}
-%	\item Tabular |@| and |!| columns now havetheir own \HTML\ columns.
-%	\item |&| catcode changes are localized, perhaps causing errors
-%		about the tab alignment character |&|,
-%		so any definitions of macros or environments
-%		which themselves contain \env{tabular} and |&| must be enclosed within \cs{StartDefiningTabulars}
-%		and \cs{StopDefiningTabulars} (previously called \cs{EndDefiningTabulars}.
-%       See \cref{sec:localizingcatcodes}.
-%		This change is not required for the routine use of tables,
-%		but only when a table is defined inside another macro or environment,
-%		and while also using the |&| character inside the definition.
-%		This may include the use inside conditional expressions.
-%	\item   Several math environments were incorrectly placed inline.
-%		Also, for \pkg{amsmath} with \SVG\ math, the \optn{fleqn} option has been removed,
-%		resulting in improved spacing for aligned equations.
-%	\item Bug fixes; see the changelog.
-%	\end{itemize}
-% \item[v0.32:] Bug fixes; no source changes needed:
-%	\begin{itemize}
-%	\item \prog{lwarpmk} has been adjusted to work with the latest \prog{luatex}.
-%	\item Spaces in the \cs{usepackage} and \cs{RequirePackage} package lists are now accepted and ignored.
-%	\item Fix for the \pkg{glossaries} package and \cs{glo at name}.
-%	\end{itemize}
-% \item[v0.31:] Bug fix; no source changes needed:
-%	\begin{itemize}
-%	\item Improved compatibility with \pkg{keyfloat},
-%		including the new \env{keywrap} environment.
-%	\end{itemize}
-%	\needspace{2\baselineskip}
-% \item[v0.30:] \
-%	\begin{itemize}
-%	\item \pkg{lwarp-newproject} has been removed, and its functions
-%		\watchout[\pkg{lwarp-newproject}]
-%		have been combined with \pkg{lwarp}.
-%
-%		To modify existing documents, remove from the document source:
-%		\begin{sourceverb}
-%		\usepackage{lwarp-newproject}
-%		\end{sourceverb}
-%
-%		The \pkg{lwarp} package now produces the configuration files during
-%		print output, and also accepts the option \optn{lwarpmk} if desired.
-%
-%	\item A number of macros
-%		\watchout[HTML setup changes.]
-%		related to \HTML\ settings have been converted to options, and
-%		other macros and options have been renamed to create a consistent syntax:
-%		\begin{center}
-%		\begin{tabular}{cc}
-%		\toprule
-%		Old Macro & New Package Option \\ \midrule
-%		\cs{HomeHTMLFileName} & |HomeHTMLFilename| \\
-%		\cs{HTMLFileName} & |HTMLFilename| \\
-%		\cs{useLatexmk} & |latexmk| \\
-%		\cs{warpOSwindows} & |OSWindows| \\[2.5ex] \toprule
-%		Old Package Option & New Package Option \\ \midrule
-%		\optn{lwarpmklang} & \optn{xindyLanguage} \\
-%		(new) & \optn{xindyStyle} \\[2.5ex] \toprule
-%		Old Macro & New Macro \\ \midrule
-%		\cs{MetaLanguage} & \cs{HTMLLanguage} \\
-%		\cs{HTMLauthor} & \cs{HTMLAuthor} \\
-%		\cs{NewHTMLdescription} & \cs{HTMLDescription} \\
-%		\cs{SetFirstPageTop} & \cs{HTMLFirstPageTop} \\
-%		\cs{SetPageTop} & \cs{HTMLPageTop} \\
-%		\cs{SetPageBottom} & \cs{HTMLPageBottom} \\
-%		\cs{NewCSS} & \cs{CSSFilename} \\
-%		\bottomrule
-%		\end{tabular}
-%		\end{center}
-%
-%	\needspace{2\baselineskip}
-%	\item Per the above changes, in existing documents,
-%		modify the package load of \pkg{lwarp}, such as:
-%       \begin{sourceverb}
-%		\usepackage[
-%			HomeHTMLFilename=index,
-%			HTMLFilename={},
-%			xindyLanguage=english
-%		]{lwarp}
-%		\end{sourceverb}
-%
-%	\item The file |lwarp_html.xdy| has been renamed |lwarp.xdy|.
-%		To update each document's project:
-%		\begin{enumerate}
-%		\item Make the changes shown above.
-%		\item Recompile the document in print mode.
-%			This updates the project's configuration files, and also generates the
-%			new file |lwarp.xdy|.
-%		\item The old file |lwarp_html.xdy| may be deleted.
-%		\end{enumerate}
-%
-%	\item The new \pkg{lwarp} package option \optn{xindyStyle} may be used to tell
-%	\prog{lwarpmk} to use a custom |.xdy| file instead of |lwarp.xdy|.
-%	See \cref{sec:modifyxindy}.
-%
-%	\item Improvements in index processing:
-%		\begin{itemize}
-%		\item \prog{xindy}'s language is now used for index processing
-%			as well as glossary.
-%		\item Print mode without \prog{latexmk} now uses \prog{xindy} instead of \prog{makeindex}.
-%		\item \prog{texindy}/\prog{xindy} usage depends on \prog{pdflatex} vs \prog{xelatex}, \prog{lualatex}.
-%		\item For \prog{pdflatex} and \prog{texindy}, the \optn{-C utf8} option is used.  This is
-%			supported in modern distributions, but a customized \filenm{lwarpmk.lua} may
-%			need to be created for use with older distributions.
-%		\end{itemize}
-%
-%	\end{itemize}
-%
-% \needspace{2\baselineskip}
-%
-% \item[v0.29:] \
-%	\begin{itemize}
-%	\item Add: \optn{lwarpmklang} option for \pkg{lwarp-newproject} and \pkg{lwarp}.
-%		Sets the language to use while processing the glossary.
-%		(As of v0.30, this has been changed to the \optn{IndexLanguage} option.)
-%       (As of v0.54, this has been changed to the \optn{xindyLanguage} option.)
-%	\item Fix: \cs{includegraphics} when no optional arguments.
-%	\end{itemize}
-% \item[v0.28:] \
-%	\begin{itemize}
-%	\item \cs{HTMLAuthor} \marg{name} assigns \HTML\ meta author if non-empty.
-%		Defaults to \cs{theauthor}.
-%	\item Booean |HTMLDebugComments| controls whether \HTML\ comments are
-%		added for closing \element{div}s, opening and closing sections, etc.
-%	\item Boolean |FormatEPUB| changes \HTML\ output for easy \EPUB\ conversion
-%		via an external program.
-%		Removes per-file headers, footers, and nav.  Adds footnotes per chapter/section.
-%	\item Boolean |FormatWordProcessor| changes \HTML\ output for easier conversion
-%		by a word processor.  Removes headers and nav, prints footnotes per section,
-%		and also forces single-file output and turns off \HTML\ debug comments.
-%       Name changed to |FormatWP| as of v0.42.
-%	\item Boolean |HTMLMarkFloats| adds text marks around floats only if the boolean
-%		|FormatWordProcessor| is |true|.
-%       These make it easier to identify float boundaries,
-%		which are to be manually converted to word-processor frames.
-%       Name changed to |WPMarkFloats| as of v0.42.
-%	\item Updated for the new \brand{MathJax} \acro{CDN} repository.
-%	\item Adds \pkg{tabulary}.
-%	\item Supports the options syntax for \pkg{graphics}.
-%	\item Improved index references, now pointing exactly to their target.
-%	\item Adds \pkg{glossaries}.
-%		\prog{lwarpmk} is modified to add |printglosssary| and |htmlglossary| actions.
-%	\end{itemize}
-%
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.50:] Improved \SVG\ math.
+% ^^A    \begin{itemize}
+% ^^A        \item \SVG\ math and other \env{lateximage}s now are
+% ^^A            converted to \SVG\ using \margintag{\SVG\ math}
+% ^^A            parallel background tasks, utilizing all available \acro{CPU} cores.
+% ^^A        \item Inline \SVG\ math image file names now are MD5 hashes made from 
+% ^^A            their source \LaTeX\ code.
+% ^^A            Identical inline math expressions, such as multiple instance of \$x\$,
+% ^^A            now share a single image file.
+% ^^A            This reduces the number of images to store, transmit, process, and display.
+% ^^A            Each image file is only converted to \SVG\ a single time, and reused if it
+% ^^A            already exists.
+% ^^A            Display math and other forms of \SVG\ image such as \env{picture} and
+% ^^A            \tikz\ still use individual image files which are recreated each time
+% ^^A            \cmds{lwarpmk limages} is run.
+% ^^A        \item Fixes: SVG math and/or \cs{underline} in a sectioning file name.
+% ^^A        \item Improved \SVG\ display math and tags.
+% ^^A        \item Improved \SVG\ math and \pkg{siunitx} \attribute{alt} tags.
+% ^^A        \item Improved \pkg{siunitx} units.
+% ^^A        \item Fix: \cs{ensuremath} with MathJax now creates a \env{lateximage}.
+% ^^A        \item Fix: \cs{centering}, etc. in \SVG\ math, \env{lateximage}, \tikz.
+% ^^A        \item Fix: Made various macros robust,
+% ^^A            additionally fixing \pkg{authblk}.\margintag{misc. fixes}
+% ^^A        \item Fix: \pkg{ntheorem} if neither \optn{standard} nor \optn{amsthm} selected.
+% ^^A        \item Fix: \pkg{listings}: Improved column alignment.
+% ^^A        \item Fix: Load \pkg{fontspec} if necessary.
+% ^^A        \item Added \pkg{xy}, \pkg{epstopdf}, \pkg{diagbox}, \pkg{pbox}, \margintag{packages}
+% ^^A            \pkg{bytefield}, \pkg{axodraw2}, \pkg{phfqit},
+% ^^A            \pkg{schemata},
+% ^^A            \pkg{dblfloatfix}, \pkg{nonfloat}, \pkg{morefloats}.
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.49:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Added \pkg{xcolor} \cs{rowcolors}.\margintag{tabular}
+% ^^A        \item Fix: \cs{noalign} inside a \env{tabular}.
+% ^^A        \item Fix: \cs{eqref} in a caption.\margintag{math}
+% ^^A        \item Fix: Incorrect \PDF\ font size changes
+% ^^A            caused occasional \HTML\ corruption.\margintag{misc fixes}
+% ^^A        \item Fix: \pkg{printlen} changes are now grouped for \HTML\ output.
+% ^^A        \item Added \pkg{vwcol}, \pkg{vertbars}, \pkg{hyphenat}, \margintag{packages}
+% ^^A            \pkg{lineno}, \pkg{fnlineno}, \pkg{figsize}, \pkg{hypdestopt}, \pkg{pagegrid},
+% ^^A            \pkg{pdfrender}, \pkg{luacolor}, \pkg{resizegather}.
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.48:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Added some documentation
+% ^^A            \margintag{documentation}
+% ^^A            regarding converting an existing document.  See \cref{sec:convertexisting}.
+% ^^A        \item Updated compatibility for new \pkg{cleveref} v0.21.\margintag{\pkg{cleveref}}
+% ^^A        \item Fix: Ignores optional tabular column arguments.\margintag{tabular}
+% ^^A        \item Added \cs{leftline}, \cs{centerline},
+% ^^A            \cs{rightline}.\margintag{minor updates}
+% ^^A        \item Lists have improved font control via \cs{makelabel}.
+% ^^A        \item Print-mode \env{lateximage} now boxed to the natural width of its
+% ^^A            multiline contents.
+% ^^A        \item \env{abstract} now allows an optional name, as required by some classes.
+% ^^A        \item Fix: Improved spacing, \cs{mbox}, and font sizes
+% ^^A            with \SVG\ math, \tikz.\margintag{math}
+% ^^A        \item \pkg{siunitx}: Improved \SVG\ math, fraction compatibility, color output.
+% ^^A        \item Fix: LOF/LOT links.\margintag{misc. fixes}
+% ^^A        \item Fix: Virtual page size grouping caused excessive \PDF\ page breaks.
+% ^^A        \item Fix: Parsing similar package names in a
+% ^^A            single \cs{usepackage}.
+% ^^A        \item Fix: Adapts to classes without \cs{part}.
+% ^^A        \item Fix: \cs{newline} in \cs{title} was causing |<br>| in window title.
+% ^^A        \item Fix: \cs{maketitle} with \cs{cr}, \cs{crcr}, \cs{noalign},
+% ^^A                    for \pkg{IEEEtran} class.
+% ^^A        \item Fix: \pkg{xfrac} neutralized \env{BlockClass} and others.
+% ^^A        \item Fix: \pkg{todonotes} and \pkg{luatodonotes}: Improved \cs{todototoc}.
+% ^^A        \item Added \pkg{colortbl}, \margintag{packages}
+% ^^A                    \pkg{chapterbib}, \pkg{acro}, \pkg{acronym},
+% ^^A                    \pkg{hypernat}, \pkg{hypcap}, \pkg{stfloats},
+% ^^A                    \pkg{vmargin}, \pkg{fancyheadings}.
+% ^^A        \item \pkg{fancyref}: Now directly supported.
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.47:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Improved \SVG\ math baseline and sizing.\margintag{math}
+% ^^A        \item Fixes: \SVG math in captions, subcaptions, \cs{nameref}.
+% ^^A        \item Fixes: Line wrap at hyphen in \HTML\ output.
+% ^^A        \item Added \pkg{endheads}, \pkg{multitoc}, \pkg{sectionbreak},
+% ^^A            \pkg{blowup}, \pkg{xurl}.\margintag{packages}
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.46:] \
+% ^^A    \begin{itemize}
+% ^^A        \item \cs{PrintStack} changed to \cs{LWRPrintStack}.\watchout[name change]
+% ^^A        \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes}
+% ^^A        \item Fix: Stack unnesting.
+% ^^A        \item Fix: SVG math and \env{lateximage}s in numerous situations.
+% ^^A        \item Fix: Spaces in \cs{usepackage}.
+% ^^A        \item Fix: Now allows \brand{MathJax} inside \env{verse}.
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.45:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Improved \prog{MiKTeX} install instructions.
+% ^^A            \margintag{documentation}
+% ^^A        \item Improved graphics and \pkg{epstopdf} instructions.
+% ^^A        \item Updates to the \nameref{sec:introduction}.
+% ^^A        \item Added \pkg{memoir}, \pkg{memhfixc}.
+% ^^A                See \cref{sec:limitsmemoir}.\margintag{memoir}
+% ^^A        \item Fix: Now allows underscores in labels.\margintag{cross-references}
+% ^^A        \item Fix: \cs{\_} and |\<blank>| in section/file names.
+% ^^A        \item Fix: Now allows \brand{MathJax} inside \env{tabbing}.\margintag{math}
+% ^^A        \item Fix: Bibliography \cs{em} names.\margintag{bibliography}
+% ^^A        \item Added \pkg{cite}, \pkg{natbib}, \pkg{backref}.
+% ^^A                (Also works as-is with \pkg{biblatex}.)
+% ^^A        \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes}
+% ^^A        \item Fix: ``Improper \cs{prevdepth}'' with minipages, lists.
+% ^^A        \item Fix: Incorrect \SVG\ math and |lateximage|s with \pkg{subfig}.
+% ^^A        \item Fix: Lateximages from incorrect pages with Mathjax.
+% ^^A        \item Fix: Missing sidetoc if using \pkg{listings}.
+% ^^A        \item Fix: Added an \pkg{array} emulation package.
+% ^^A        \item Added
+% ^^A            \pkg{subfigure}, \pkg{prettyref}, \margintag{packages}
+% ^^A            \pkg{hanging}, \pkg{midpage},
+% ^^A            \pkg{flafter}, \pkg{fltrace}, \pkg{changebar}, \pkg{endfloat},
+% ^^A            \pkg{continue}, \pkg{fwlw}, \pkg{turnthepage}, \pkg{footnpag},
+% ^^A            \pkg{pagesel}, \pkg{textfit}, \pkg{titleref}.
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.44:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Added \pkg{koma-script} classes (except \pkg{scrlttr2}, \pkg{scrjura}).
+% ^^A        \margintag{\pkg{koma-script}}
+% ^^A        \item Added \pkg{scrextend},
+% ^^A            \pkg{scrlayer}, \pkg{scrlayer-notecolumn}, \pkg{scrlayer-scrpage},
+% ^^A            \pkg{scrhack}, \pkg{tocstyle}, \pkg{tocbasic}.
+% ^^A        \item Added \cs{HTMLTitle}.
+% ^^A            \margintag{\HTML\ title and author}
+% ^^A            Fixed web page title if \cs{HTMLTitle} empty and no \cs{title} given and
+% ^^A            not using \pkg{titling} package.
+% ^^A        \item Fixed web page author if \cs{HTMLauthor} is empty and \cs{author} is not given.
+% ^^A        \item If using \prog{pdflatex}, automatically loads T1 and \UTF-8 encodings.
+% ^^A            \margintag{encodings}
+% ^^A            (Additional \pkg{fontenc} encodings may be loaded after \pkg{lwarp}.)
+% ^^A        \item Added \env{list} and \env{trivlist} environments, \pkg{hang}.\margintag{lists}
+% ^^A        \item Fix: \cs{multicolumn} alignment if formatting for a word processor.
+% ^^A            \margintag{tabular}
+% ^^A        \item Added \pkg{ltxtable}.
+% ^^A        \item Fix: \brand{MathJax} combined with \env{lateximage}s.\margintag{math}
+% ^^A        \item \pkg{algorithmicx}: Improved comment symbol and floating.
+% ^^A        \item Completed \pkg{todonotes} and \pkg{luatodonotes}.
+% ^^A            \margintag{\pkg{packages}}
+% ^^A        \item Added \pkg{todo}, \pkg{easy-todo}, \pkg{fixmetodonotes}, \pkg{fixme}.
+% ^^A        \item Added \pkg{soulutf8}, \pkg{soulpos}, \pkg{cancel}.
+% ^^A        \item Added \pkg{section}, \pkg{fancyref}, \pkg{ifoddpage}.
+% ^^A        \item Added \pkg{preview}, \pkg{atbegshi}, \pkg{watermark}.
+% ^^A        \item Improved \pkg{tocloft} \cs{newlistof} and \cs{newlistentry}.
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.43:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Docs: Reorganized \HTML\ customization, added an \HTML\ settings table.
+% ^^A            See \cref{sec:htmlsettings}.
+% ^^A        \item Added \progcode{FootnoteDepth} to control the placement
+% ^^A            \margintag{footnotes}
+% ^^A            of pending footnotes before section breaks.
+% ^^A            By default, pending footnotes are printed before
+% ^^A            each \cs{subparagraph} or higher.
+% ^^A        \item Fix: Expansion in section name. \margintag{sectioning}
+% ^^A        \item Fix: Ignore spaces in tabular column specification.
+% ^^A            \margintag{\env{tabular}}
+% ^^A        \item Fix: Tabular rules at bottom or when finishing incomplete rows.
+% ^^A        \item Fix: \cs{multicolumn} at/bang/before/after specifications, trim,
+% ^^A            and vertical rules.
+% ^^A        \item Fix: \pkg{supertabular} and \pkg{xtab} column misalignment.
+% ^^A        \item Fix: \env{equation*}.
+% ^^A            \margintag{math}
+% ^^A        \item Fix: \SVG\ math in a section name.
+% ^^A        \item Fix: \cs{ref} and \cs{eqref} in \SVG\ math.
+% ^^A        \item Added \pkg{todonotes} and \pkg{luatodonotes} (but only |disabled|).
+% ^^A            \margintag{packages}
+% ^^A        \item Added \pkg{breakurl}.
+% ^^A        \item \pkg{hyperref}: Fix: Several macros were made robust, \cs{Gauge} added.
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.42:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Added \TeX\ development support page.
+% ^^A            (See page \pageref{sec:supportinglatex}.)
+% ^^A            \margintag{Support \TeX!}
+% ^^A        \item Improved assitance for word-processor conversions when
+% ^^A            \margintag{word-processor conversion}
+% ^^A            boolean |FormatWP| is set |true|.
+% ^^A            See \cref{sec:wordprocessorconversion}.
+% ^^A            \begin{itemize}
+% ^^A            \item \textred{The} \watchout[name change]
+% ^^A                \textred{boolean |FormatWordProcessor| has
+% ^^A                been renamed |FormatWP|.}
+% ^^A            \item \textred{The} \watchout[name change]
+% ^^A                \textred{boolean |HTMLMarkFloats| has
+% ^^A                been renamed |WPMarkFloats|.}
+% ^^A            \item New booleans control whether to place additional
+% ^^A                marks around minipages, at the table of contents,
+% ^^A                at the \LOF\ and \LOT, and whether to
+% ^^A                print math as \LaTeX\ source for copy/paste into the
+% ^^A                \prog{LibreOffice Writer TeXMaths} extension.
+% ^^A            \item Improved formatting for numerous objects.
+% ^^A                See \cref{sec:wordprocessorconversion}.
+% ^^A            \end{itemize}
+% ^^A        \item Add: \env{tabbing} environment.
+% ^^A            \margintag{\env{tabbing}}
+% ^^A        \item Add: \pkg{overpic} package.  See \cref{sec:overpic}.
+% ^^A            \margintag{\pkg{overpic}}
+% ^^A        \item Fix: Text copy/paste of \AmS\ math environment numbers and names.
+% ^^A            \margintag{math}
+% ^^A        \item Improved \cs{ensuremath}.
+% ^^A        \item \brand{MathJax} with \pkg{siunitx}: Updated script and documentation.
+% ^^A        \item \pkg{textcomp}: Improved \cs{textinterrobangdown}.
+% ^^A            \margintag{symbols}
+% ^^A        \item \pkg{realscripts}: Fix for subscripts in a \env{lateximage}.
+% ^^A        \item \pkg{morewrites}: Enforces loading before \pkg{lwarp}.
+% ^^A            \margintag{load order}
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.41:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Added tabular vertical rules, subject to some limitations.
+% ^^A            \margintag{\env{tabular}}
+% ^^A            See the rules section of \cref{sec:limitstabular}.
+% ^^A        \item Improved \pkg{booktabs}: Width and trim are honored.
+% ^^A        \item Added \cs{mcolrowcell} for empty cells inside a \cs{multicolumnrow}.
+% ^^A            \watchout[new syntax]
+% ^^A            \textred{Use \cs{mcolrowcell} instead of \cs{mrowcell} for two-dimensional
+% ^^A            cells created by \cs{multicolumnrow}.}
+% ^^A            Continue to use \cs{mrowcell} for empty cells in a \cs{multirow}.
+% ^^A            See \cref{sec:multicolumnmultirow} on \cpageref{sec:multicolumnmultirow}.
+% ^^A        \item Fix: Unfinished tabular rows are automatically filled.
+% ^^A        \item Fix for tabular column specifiers while using \pkg{babel-french}.
+% ^^A            (\cs{NoAutoSpacing} is activated then nullified inside the tabular,
+% ^^A            due to a conflict with the tabular column parsing code.)
+% ^^A    \end{itemize}
+% ^^A  \item[v0.40:] \
+% ^^A    \begin{itemize}
+% ^^A        \item \pkg{graphics} and \pkg{graphicx} have been moved from the
+% ^^A            \margintag{\pkg{graphics}, \pkg{graphicx}}
+% ^^A            \pkg{lwarp} core, and are only loaded if requested with \cs{usepackage}.
+% ^^A        \item Improved \pkg{graphics} \cs{graphicspath} support.
+% ^^A            \margintag{\cs{includegraphics} path}
+% ^^A            Multiple image directories may now be used.
+% ^^A            \textred{Refer to |.pdf| files without a file extension}
+% ^^A            \watchout[image file extensions]
+% ^^A            to allow the \HTML\ version
+% ^^A            to use a |.svg|, |.png|, |.jpg|, or |.gif| version instead.
+% ^^A            See \cref{sec:limitsgraphics}.
+% ^^A        \item \pkg{grffile} is now directly supported instead of emulated.
+% ^^A        \item Fix for \pkg{bigdelim}, and improved documentation.
+% ^^A            \margintag{\pkg{bigdelim}}
+% ^^A            See \cref{sec:bigdelim}.
+% ^^A        \item Improved \LaTeX\ and \pkg{textcomp} symbols.\margintag{\pkg{symbols}}
+% ^^A        \item Fix for \LaTeX\ logos and \cs{InlineClass}, etc. inside a \env{lateximage}.
+% ^^A            \margintag{\pkg{fixes}}
+% ^^A        \item Fix for \pkg{xltxtra} with \XeLaTeX.
+% ^^A        \item Fixes for \pkg{tocbibind} with \cs{simplechapter}, etc.
+% ^^A 		\item Fixes for \cs{multicolumnrow} and \cs{nullfonts} with older versions
+% ^^A 			of \pkg{multirow} and \pkg{xparse}.
+% ^^A        \item Added \cs{underline}.
+% ^^A        \item Added \pkg{adjmulticol}.\margintag{margins}
+% ^^A        \item Added \pkg{cuted}, \pkg{midfloat}.\margintag{columns}
+% ^^A        \item Added \pkg{pfnote}, \pkg{fnpos}, \pkg{dblfnote}.\margintag{footnotes}
+% ^^A        \item Added \pkg{stabular}, \pkg{tabls}.\margintag{tabular}
+% ^^A        \item Added \pkg{sectsty}, \pkg{anonchap}, \pkg{quotchap}.\margintag{sectioning}
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.39:] \
+% ^^A    \begin{itemize}
+% ^^A        \item Improved the titlepage \HTML\ code, \cs{thanks} notes,
+% ^^A            \margintag{title pages}
+% ^^A            and \cs{maketitle}.
+% ^^A            \pkg{titling} is no longer required, but is still supported.
+% ^^A            The \cs{published} and \cs{subtitle} fields are no longer provided,
+% ^^A            \watchout[\cs{published} and \cs{subtitle}]
+% ^^A            but \cs{AddSubtitlePublished} replicates them using \pkg{titling}.
+% ^^A            See \cref{sec:publishedsubtitle}.
+% ^^A            \pkg{authblk} is added, and should be loaded before \pkg{titling}.
+% ^^A            \watchout[load order]
+% ^^A            See \cref{sec:titles}.
+% ^^A        \item \cs{multirow} now supports the new optional |vpos| argument.
+% ^^A            \margintag{tabular}
+% ^^A        \item Added \cs{multicolumnrow} for combined
+% ^^A            \margintag{multi column/row cell}
+% ^^A            \cs{multicolumn} and \cs{multirow}.
+% ^^A            See \cref{sec:multicolumnmultirow}.
+% ^^A        \item Tabular special cases:
+% ^^A        \begin{itemize}
+% ^^A             \item Added \cs{TabularMacro} to mark custom macros
+% ^^A                 \watchout[macros inside tabular]
+% ^^A                 inside tabular data cells, avoiding row corruption.
+% ^^A                 See \cref{sec:limitstabular}.
+% ^^A             \item Added \cs{ResumeTabular} for use when a \env{tabular} environment
+% ^^A                 \watchout[tabular defined inside another environment]
+% ^^A                 is defined inside another environment.
+% ^^A                 See \cref{sec:limitstabular}.
+% ^^A        \end{itemize}
+% ^^A        \item Added \pkg{supertabular}, \pkg{xtab}, \pkg{bigstrut}, \pkg{bigdelim}.
+% ^^A            \margintag{tabular}
+% ^^A        \item Added \pkg{fullwidth}.\margintag{margins}
+% ^^A        \item Added \pkg{addlines}, \pkg{anysize}, \pkg{a4}, \pkg{a4wide}, \pkg{a5comb},
+% ^^A            \margintag{page layout}
+% ^^A            \pkg{textarea}, \pkg{zwpagelayout}, \pkg{typearea}, \pkg{ebook}.
+% ^^A    \end{itemize}
+% ^^A  \item[v0.38:] \
+% ^^A    \begin{itemize}
+% ^^A    \item Added \cmds{lwarpmk print1} and \cmds{lwarpmk html1} actions to
+% ^^A        \margintag{forced single-pass compile}
+% ^^A        force a compile of the project a single time.
+% ^^A        Useful when multiple passes are not needed,
+% ^^A        or changes were not detected.
+% ^^A    \item Added \cs{ForceHTMLPage} and \cs{ForceHTMLTOC} to force
+% ^^A        \margintag{starred sections}
+% ^^A        a starred sectional unit onto its own \HTML\ page
+% ^^A        and with its own \TOC\ entry.
+% ^^A        See \cref{sec:forcesectionstar}.
+% ^^A    \item Modified the tutorial to use the new \cs{ForceHTMLPage}
+% ^^A        \margintag{updated tutorial}
+% ^^A        and \cs{ForceHTMLTOC} macros.
+% ^^A    \item Added \pkg{appendix}, \pkg{tocbibind}, \pkg{fncychap}, \pkg{fix2col}.
+% ^^A        \margintag{packages}
+% ^^A    \item Added \pkg{relsize}, \pkg{scalefnt}.\margintag{font size}
+% ^^A    \item Added \pkg{realscripts}, \pkg{metalogo}, \pkg{xltxtra}.
+% ^^A    \item Added \pkg{grffile}, \pkg{romanbar}.
+% ^^A    \item Added \pkg{arabicfront}, \pkg{chappg}, \pkg{nonumonpart}, \pkg{nopageno},
+% ^^A        \margintag{page numbering}
+% ^^A        \pkg{romanbarpagenumber}.
+% ^^A    \item Docs: Improved description of the use of front/back matter.
+% ^^A        \margintag{front \& back matter}
+% ^^A        See \cref{sec:frontbackmatter}.
+% ^^A    \item Fix: \pkg{color} requests \pkg{xcolor}.
+% ^^A    \item Fix: \cs{part} for \pkg{article} class.
+% ^^A    \end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.37:] \
+% ^^A    \begin{itemize}
+% ^^A    \item \cs{include} now maintains independent |.aux| files
+% ^^A        \margintag{\cs{include} for \HTML}
+% ^^A        for \HTML\ versions.
+% ^^A    \item \pkg{comment}, used by \pkg{lwarp}, now maintains
+% ^^A        \margintag{\prog{latexmk}}
+% ^^A        independent cut files for print and \HTML\ versions, helping \prog{latexmk} to
+% ^^A        better know whether to recompile.
+% ^^A    \item Improved support for \LaTeX\ accents,
+% ^^A        \margintag{accents and symbols}
+% ^^A        \pkg{textcomp}, \pkg{siunitx} symbols.
+% ^^A    \item Improved \pkg{babel-french} handling for
+% ^^A        \margintag{\pkg{babel-french}}
+% ^^A        load order and \textasciitilde\ tilde.
+% ^^A    \end{itemize}
+% ^^A  \item[v0.36:] \
+% ^^A 	\begin{itemize}
+% ^^A 	\item Recorganized the documentation section regarding special cases and limitations.
+% ^^A 		(\Cref{sec:limitations})
+% ^^A    \item Improved source formatting.
+% ^^A 	\item \cs{fbox} and related now use \cs{fboxsep} and \cs{fboxrule}.
+% ^^A        \margintag{boxes and frames}
+% ^^A 	\item \cs{makebox} and \cs{framebox} now use width and position.
+% ^^A 	\item \cs{fcolorbox} and related now work inside a \env{lateximage}.
+% ^^A    \item \pkg{babel-french}: Improvements for French variants, load order,
+% ^^A        \margintag{\pkg{babel-french}}
+% ^^A        footnotes, ellipses.
+% ^^A    \item Improved footnote numbering.
+% ^^A        \margintag{footnotes}
+% ^^A        \env{lateximage} footnotes now appear as regular footnotes to match
+% ^^A        the numbering of the print version.
+% ^^A        Also fixed a regression with \brand{MathJax}.
+% ^^A    \item Improved \pkg{siunitx} units.
+% ^^A        \margintag{\pkg{siunitx}}
+% ^^A    \item Fix for filenames while using \brand{MathJax}.
+% ^^A    \item Fix for \cs{rule} when \pkg{xcolor} is not loaded.
+% ^^A 	\item Added \pkg{transparent}, \pkg{upref}.
+% ^^A 	\end{itemize}
+% ^^A  \item[v0.35:] Fix: \cs{textbf} and related.
+% ^^A  \item[v0.34:] \
+% ^^A 	\begin{itemize}
+% ^^A 	\item \env{BlockClass}'s optional argument has been moved
+% ^^A 		\watchout[Optional arguments]
+% ^^A 		in front of the mandatory argument:
+% ^^A 		\begin{sourcedisplay}
+% ^^A 		|BlockClass[style]{class}| \quad \textrm{(NEW)}
+% ^^A 		\end{sourcedisplay}
+% ^^A 		instead of:
+% ^^A 		\begin{sourcedisplay}
+% ^^A 		|BlockClass{class}[style]| \quad \textrm{(OLD)}
+% ^^A 		\end{sourcedisplay}
+% ^^A 		This change makes it more consistent with \LaTeX\ standards,
+% ^^A 		and avoids problems with space between arguments.
+% ^^A 	\item Likewise, \cs{InlineClass}'s optional argument now
+% ^^A 		\watchout[Optional arguments]
+% ^^A 		comes before the mandatory arguments:
+% ^^A 		\begin{sourcedisplay}
+% ^^A 		|\InlineClass[style]{class}{text}|
+% ^^A 		\end{sourcedisplay}
+% ^^A 	\item Improved compatibility between spans, minipages, lists,
+% ^^A 		\margintag{spans with minipages}
+% ^^A 		frames, and math.
+% ^^A 		Handles minipages and lists inside an \HTML\ span,
+% ^^A 		such as an \cs{fbox} containing a minipage,
+% ^^A 		although with minimal \HTML\ fomatting.
+% ^^A 		See \cref{sec:minipages}.
+% ^^A 		\cs{fboxBlock} is added to frame minipages, tables,
+% ^^A 		\margintag{framing minipages}
+% ^^A 		and lists with full \HTML\ formatting
+% ^^A 		but no longer inline, and behaves as \cs{fbox} for print output.
+% ^^A 		The \env{fminipage} environment is added for framed minipages,
+% ^^A 		as an environment with full \HTML\ formatting,
+% ^^A 		and draws a framed minipage in print output.
+% ^^A 		See \cref{sec:framedminipages}.
+% ^^A 		\cs{fbox} and minipages now often work in \SVG\ math and \env{lateximage}s.
+% ^^A 		\brand{MathJax} supports \cs{fbox}, but not \cs{fboxBlock} nor \env{fminipage}.
+% ^^A 	\item Improved compatibility between \env{lateximage} and
+% ^^A 		\margintag{\env{lateximage}, \SVG\ math, \env{tabular}}
+% ^^A 		\env{minipage}, \cs{parbox}, \cs{makebox}, \cs{fbox}, \cs{framebox},
+% ^^A 		\cs{raisebox}, \cs{scalebox}, \cs{reflectbox}, \env{tabular}, \pkg{booktabs}.
+% ^^A 	\item Improved font control for \env{lateximage}es and \SVG\ math.
+% ^^A 	\item Added the \env{eqnarray} environments.\margintag{\env{eqnarray}}
+% ^^A 	\item \pkg{fancyvrb} is no longer required (preloaded),
+% ^^A 		\margintag{verbatim packages}
+% ^^A 		but is still supported.
+% ^^A 	\item Added \pkg{verbatim} and \pkg{moreverb}.
+% ^^A 	\item Added \pkg{fancybox}, \pkg{boxedminipage2e} and \pkg{shadow}.
+% ^^A 		\margintag{framing packages}
+% ^^A 	\item \pkg{enumitem} is no longer required, but is still supported.
+% ^^A 		\margintag{list packages}
+% ^^A 	\item Added \pkg{enumerate} and \pkg{paralist}.
+% ^^A 	\item \pkg{titleps} is no longer required, but is still supported.
+% ^^A 	\item Added \pkg{crop}.
+% ^^A 	\item Added \pkg{rotfloat}, \pkg{marginfit},
+% ^^A 		and several minor packages; see the change log.
+% ^^A 	\item Adds fixed-width \HTML\ spaces around punctuation
+% ^^A 		\margintag{\pkg{babel-french}}
+% ^^A 		when using \pkg{babel-french}.
+% ^^A        \LuaTeX\ does not yet use the extra punctuation spacing.
+% ^^A 	\end{itemize}
+% ^^A  \needspace{2\baselineskip}
+% ^^A  \item[v0.33:] \
+% ^^A 	\begin{itemize}
+% ^^A 	\item Tabular |@| and |!| columns now havetheir own \HTML\ columns.
+% ^^A 	\item |&| catcode changes are localized, perhaps causing errors
+% ^^A 		about the tab alignment character |&|,
+% ^^A 		so any definitions of macros or environments
+% ^^A 		which themselves contain \env{tabular} and |&| must be enclosed within \cs{StartDefiningTabulars}
+% ^^A 		and \cs{StopDefiningTabulars} (previously called \cs{EndDefiningTabulars}.
+% ^^A        See \cref{sec:localizingcatcodes}.
+% ^^A 		This change is not required for the routine use of tables,
+% ^^A 		but only when a table is defined inside another macro or environment,
+% ^^A 		and while also using the |&| character inside the definition.
+% ^^A 		This may include the use inside conditional expressions.
+% ^^A 	\item   Several math environments were incorrectly placed inline.
+% ^^A 		Also, for \pkg{amsmath} with \SVG\ math, the \optn{fleqn} option has been removed,
+% ^^A 		resulting in improved spacing for aligned equations.
+% ^^A 	\item Bug fixes; see the changelog.
+% ^^A 	\end{itemize}
+% ^^A  \item[v0.32:] Bug fixes; no source changes needed:
+% ^^A 	\begin{itemize}
+% ^^A 	\item \prog{lwarpmk} has been adjusted to work with the latest \prog{luatex}.
+% ^^A 	\item Spaces in the \cs{usepackage} and \cs{RequirePackage} package lists are now accepted and ignored.
+% ^^A 	\item Fix for the \pkg{glossaries} package and \cs{glo at name}.
+% ^^A 	\end{itemize}
+% ^^A  \item[v0.31:] Bug fix; no source changes needed:
+% ^^A 	\begin{itemize}
+% ^^A 	\item Improved compatibility with \pkg{keyfloat},
+% ^^A 		including the new \env{keywrap} environment.
+% ^^A 	\end{itemize}
+% ^^A 	\needspace{2\baselineskip}
+% ^^A  \item[v0.30:] \
+% ^^A 	\begin{itemize}
+% ^^A 	\item \pkg{lwarp-newproject} has been removed, and its functions
+% ^^A 		\watchout[\pkg{lwarp-newproject}]
+% ^^A 		have been combined with \pkg{lwarp}.
+% ^^A 
+% ^^A 		To modify existing documents, remove from the document source:
+% ^^A 		\begin{sourceverb}
+% ^^A 		\usepackage{lwarp-newproject}
+% ^^A 		\end{sourceverb}
+% ^^A 
+% ^^A 		The \pkg{lwarp} package now produces the configuration files during
+% ^^A 		print output, and also accepts the option \optn{lwarpmk} if desired.
+% ^^A 
+% ^^A 	\item A number of macros
+% ^^A 		\watchout[HTML setup changes.]
+% ^^A 		related to \HTML\ settings have been converted to options, and
+% ^^A 		other macros and options have been renamed to create a consistent syntax:
+% ^^A 		\begin{center}
+% ^^A 		\begin{tabular}{cc}
+% ^^A 		\toprule
+% ^^A 		Old Macro & New Package Option \\ \midrule
+% ^^A 		\cs{HomeHTMLFileName} & |HomeHTMLFilename| \\
+% ^^A 		\cs{HTMLFileName} & |HTMLFilename| \\
+% ^^A 		\cs{useLatexmk} & |latexmk| \\
+% ^^A 		\cs{warpOSwindows} & |OSWindows| \\[2.5ex] \toprule
+% ^^A 		Old Package Option & New Package Option \\ \midrule
+% ^^A 		\optn{lwarpmklang} & \optn{xindyLanguage} \\
+% ^^A 		(new) & \optn{xindyStyle} \\[2.5ex] \toprule
+% ^^A 		Old Macro & New Macro \\ \midrule
+% ^^A 		\cs{MetaLanguage} & \cs{HTMLLanguage} \\
+% ^^A 		\cs{HTMLauthor} & \cs{HTMLAuthor} \\
+% ^^A 		\cs{NewHTMLdescription} & \cs{HTMLDescription} \\
+% ^^A 		\cs{SetFirstPageTop} & \cs{HTMLFirstPageTop} \\
+% ^^A 		\cs{SetPageTop} & \cs{HTMLPageTop} \\
+% ^^A 		\cs{SetPageBottom} & \cs{HTMLPageBottom} \\
+% ^^A 		\cs{NewCSS} & \cs{CSSFilename} \\
+% ^^A 		\bottomrule
+% ^^A 		\end{tabular}
+% ^^A 		\end{center}
+% ^^A 
+% ^^A 	\needspace{2\baselineskip}
+% ^^A 	\item Per the above changes, in existing documents,
+% ^^A 		modify the package load of \pkg{lwarp}, such as:
+% ^^A        \begin{sourceverb}
+% ^^A 		\usepackage[
+% ^^A 			HomeHTMLFilename=index,
+% ^^A 			HTMLFilename={},
+% ^^A 			xindyLanguage=english
+% ^^A 		]{lwarp}
+% ^^A 		\end{sourceverb}
+% ^^A 
+% ^^A 	\item The file |lwarp_html.xdy| has been renamed |lwarp.xdy|.
+% ^^A 		To update each document's project:
+% ^^A 		\begin{enumerate}
+% ^^A 		\item Make the changes shown above.
+% ^^A 		\item Recompile the document in print mode.
+% ^^A 			This updates the project's configuration files, and also generates the
+% ^^A 			new file |lwarp.xdy|.
+% ^^A 		\item The old file |lwarp_html.xdy| may be deleted.
+% ^^A 		\end{enumerate}
+% ^^A 
+% ^^A 	\item The new \pkg{lwarp} package option \optn{xindyStyle} may be used to tell
+% ^^A 	\prog{lwarpmk} to use a custom |.xdy| file instead of |lwarp.xdy|.
+% ^^A 	See \cref{sec:modifyxindy}.
+% ^^A 
+% ^^A 	\item Improvements in index processing:
+% ^^A 		\begin{itemize}
+% ^^A 		\item \prog{xindy}'s language is now used for index processing
+% ^^A 			as well as glossary.
+% ^^A 		\item Print mode without \prog{latexmk} now uses \prog{xindy} instead of \prog{makeindex}.
+% ^^A 		\item \prog{texindy}/\prog{xindy} usage depends on \prog{pdflatex} vs \prog{xelatex}, \prog{lualatex}.
+% ^^A 		\item For \prog{pdflatex} and \prog{texindy}, the \optn{-C utf8} option is used.  This is
+% ^^A 			supported in modern distributions, but a customized \filenm{lwarpmk.lua} may
+% ^^A 			need to be created for use with older distributions.
+% ^^A 		\end{itemize}
+% ^^A 
+% ^^A 	\end{itemize}
+% ^^A 
+% ^^A  \needspace{2\baselineskip}
+% ^^A 
+% ^^A  \item[v0.29:] \
+% ^^A 	\begin{itemize}
+% ^^A 	\item Add: \optn{lwarpmklang} option for \pkg{lwarp-newproject} and \pkg{lwarp}.
+% ^^A 		Sets the language to use while processing the glossary.
+% ^^A 		(As of v0.30, this has been changed to the \optn{IndexLanguage} option.)
+% ^^A        (As of v0.54, this has been changed to the \optn{xindyLanguage} option.)
+% ^^A 	\item Fix: \cs{includegraphics} when no optional arguments.
+% ^^A 	\end{itemize}
+% ^^A  \item[v0.28:] \
+% ^^A 	\begin{itemize}
+% ^^A 	\item \cs{HTMLAuthor} \marg{name} assigns \HTML\ meta author if non-empty.
+% ^^A 		Defaults to \cs{theauthor}.
+% ^^A 	\item Booean |HTMLDebugComments| controls whether \HTML\ comments are
+% ^^A 		added for closing \element{div}s, opening and closing sections, etc.
+% ^^A 	\item Boolean |FormatEPUB| changes \HTML\ output for easy \EPUB\ conversion
+% ^^A 		via an external program.
+% ^^A 		Removes per-file headers, footers, and nav.  Adds footnotes per chapter/section.
+% ^^A 	\item Boolean |FormatWordProcessor| changes \HTML\ output for easier conversion
+% ^^A 		by a word processor.  Removes headers and nav, prints footnotes per section,
+% ^^A 		and also forces single-file output and turns off \HTML\ debug comments.
+% ^^A        Name changed to |FormatWP| as of v0.42.
+% ^^A 	\item Boolean |HTMLMarkFloats| adds text marks around floats only if the boolean
+% ^^A 		|FormatWordProcessor| is |true|.
+% ^^A        These make it easier to identify float boundaries,
+% ^^A 		which are to be manually converted to word-processor frames.
+% ^^A        Name changed to |WPMarkFloats| as of v0.42.
+% ^^A 	\item Updated for the new \brand{MathJax} \acro{CDN} repository.
+% ^^A 	\item Adds \pkg{tabulary}.
+% ^^A 	\item Supports the options syntax for \pkg{graphics}.
+% ^^A 	\item Improved index references, now pointing exactly to their target.
+% ^^A 	\item Adds \pkg{glossaries}.
+% ^^A 		\prog{lwarpmk} is modified to add |printglosssary| and |htmlglossary| actions.
+% ^^A 	\end{itemize}
+% ^^A 
 % ^^A	\needspace{2\baselineskip}
 % ^^A  \item[v0.27:] \
 % ^^A 	\begin{itemize}
@@ -5078,7 +5130,7 @@
 %       \spkg{ujarticle} and related,
 %       \spkg{utarticle} and related. \\
 %
-% Korean: & \spkg{kotex}, \spkg{luatexko}, \spkg{xetexko}. \\
+% Korean: & \spkg{kotex}, \mpkg{luatexko}, \spkg{xetexko}. \\
 %
 % \midrule
 %
@@ -5113,13 +5165,15 @@
 % 	Common short words and punctuation are removed from the filenames. 
 %   \epkg{anonchap}, \ipkg{bsheaders}, \ipkg{fncychap}, \epkg{hypbmsec},
 %   \epkg{indentfirst}, \epkg{quotchap},
-%	\ipkg{section}, \mpkg{sectionbreak}, \spkg{secdot}, \ipkg{sectsty}, \ipkg{titlesec}.
+%	\ipkg{section}, \mpkg{sectionbreak}, \spkg{secdot}, \ipkg{sectsty},
+%   \ipkg{titlesec}, \spkg{tocvsec2}.
 %   \\
 %
 % Table of contents, figures, tables: & Supported, with hyperlinks.
-%   \ipkg{minitoc}, \ipkg{multitoc}, \spkg{shorttoc}, \ipkg{titletoc},
+%   \ipkg{etoc}, \ipkg{minitoc}, \ipkg{multitoc}, \spkg{shorttoc},
+%   \spkg{tableof}, \ipkg{titletoc},
 %	\ipkg{tocbasic}, \mpkg{tocbibind}, \mpkg{tocdata},
-%   \ipkg{tocloft}, \ipkg{tocstyle}. \\
+%   \ipkg{tocloft}, \ipkg{tocstyle}, \spkg{tocvsec2}. \\
 %
 % Title page: & \cs{maketitle}, \env{titlepage}, \mpkg{authblk}, \mpkg{titling}. \\
 %
@@ -5153,14 +5207,15 @@
 %   \epkg{scrlayer-notecolumn}, \epkg{versonotes}. \\
 %
 % Footnotes: & Adds \progcode{FootnoteDepth} to print footnotes at section breaks.
+%   \brand{MathJax} emulation for \cs{footnote}, and also as marked in the following:
 %   \epkg{bigfoot}, \ipkg{dblfnote},
-%   \ipkg{endheads}, \mpkg{endnotes}, \spkg{fixfoot},
+%   \ipkg{endheads}, \mpkg{endnotes}\ejax, \spkg{fixfoot},
 %   \ipkg{fnbreak}, \ipkg{fnpara}, \ipkg{fnpos},
 %   \epkg{footmisc}, \mpkg{footnote}, \ipkg{footnotebackref},
 %   \mpkg{footnoterange}, \ipkg{footnpag}, \epkg{manyfoot},
-%	\epkg{marginnote}, \spkg{nccfoots}, \spkg{pagenote},
-%   \mpkg{parnotes}, \ipkg{pdfcolfoot}, \ipkg{pfnote}, \spkg{sepfootnotes},
-%   \mpkg{sidenotes}, \ipkg{tablefootnote}.
+%	\epkg{marginnote}\ejax, \spkg{nccfoots}\ejax, \spkg{pagenote}\ejax,
+%   \mpkg{parnotes}\ejax, \ipkg{pdfcolfoot}, \ipkg{pfnote}, \spkg{sepfootnotes},
+%   \mpkg{sidenotes}\ejax, \ipkg{tablefootnote}.
 %   \\
 %
 % \midrule
@@ -6761,7 +6816,7 @@
 % \gindex{HTML>alt text=\attribute{alt} text}
 % \gindex{image>alt text=\attribute{alt} text}
 % \gindex{math>alt text=\attribute{alt} text}
-% \gindex{MathJax=\brand{MathJax}>accessibility}
+% \gindex{mathjax=\brand{MathJax}>accessibility}
 % \gindex{link>title=\attribute{title} text}
 % \gindex{hyperref=\pkg{hyperref}>title=\attribute{title} text}
 % \gindex{settings>accessibility}
@@ -8544,12 +8599,17 @@
 % \limitshyperlinks
 %
 %
-% \subsubsection{Footnotes and page notes}
+% \subsubsection{Footnotes, endnotes, and page notes}
 % \label{sec:limitsfootnotes}
 %
 % \trouble{footnote>numbering}
 % \gindex{footnotes>numbering}
+% \gindex{footnotes>mathjax=\brand{MathJax}}
 % \trouble{footnote>in sectioning command}
+% \trouble{mathjax=\brand{MathJax}>footnotes}
+% \trouble{math>footnote>mathjax=\brand{MathJax}}
+% \trouble{footnote>mathjax=\brand{MathJax}}
+% \trouble{sidenotes=\pkg{sidenotes}>numbering}
 %
 % \limitsfootnotes
 %
@@ -8597,11 +8657,12 @@
 % \changes{v0.38}{2017/08/24}{Docs: Starred sections.}
 %
 % The following describes \cs{ForceHTMLPage} and \cs{ForceHTMLTOC},
+% \margintag{\HTML\ page and \TOC}
 % which may be used for \pkg{endnotes}, \pkg{glossaries}, \pkg{tocbibind},
 % bibliographies, and the index.
 % See the following sections where applicable.
 % Continue here if interested in the reason for adding these commands to \pkg{lwarp}.
-% \trouble{endnotes>HTML=\HTML\ page and \TOC}
+% \trouble{endnotes=\pkg{endnotes}>HTML=\HTML\ page and \TOC}
 % \trouble{glossaries=\pkg{glossaries}>HTML=\HTML\ page and \TOC}
 % \trouble{bibliography>HTML=\HTML\ page and \TOC}
 % \trouble{index>HTML=\HTML\ page and \TOC}
@@ -8680,6 +8741,7 @@
 % \subsubsection{\pkg{endnotes} package}
 %
 % \DescribePackage{endnotes}
+% \trouble{endnotes=\pkg{endnotes}>numbering}
 % \limitsendnotes
 %
 %
@@ -9412,7 +9474,7 @@
 % \gindex{dynamic math}
 % \trouble{math>tikz=\tikz}
 % \trouble{tikz>in math}
-% \trouble{MathJax=\brand{MathJax}>errors}
+% \trouble{mathjax=\brand{MathJax}>errors}
 % \trouble{HTML>alt tags}
 % \trouble{alt tags}
 %
@@ -9448,8 +9510,8 @@
 % \subsubsection{\pkg{physics} package}
 % \label{sec:limitsphysics}
 %
-% \trouble{MathJax=\brand{MathJax}>physics=\pkg{physics}}
-% \trouble{physics=\pkg{physics}>MathJax=\brand{MathJax}}
+% \trouble{mathjax=\brand{MathJax}>physics=\pkg{physics}}
+% \trouble{physics=\pkg{physics}>mathjax=\brand{MathJax}}
 %
 % \DescribePackage{physics}
 % \limitsphysics
@@ -11035,8 +11097,8 @@
 %
 % \needspace{3\baselineskip}
 % \item [Incorrect \brand{MathJax}:] Some objects do not convert to \brand{Mathjax}.
-%   \trouble[\brand{MathJax}]{MathJax=\brand{MathJax}>errors}
-%   \trouble{MathJax=\brand{MathJax}>unsupported packages}
+%   \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>errors}
+%   \trouble{mathjax=\brand{MathJax}>unsupported packages}
 %   Use \cs{displaymathother} before these objects, then \cs{displaymathnormal} to return
 %   to ``normal'' display math.
 %   See \cref{sec:displaymathother}.
@@ -11599,9 +11661,9 @@
 \@ifpackageloaded{#1}
 {}
 {
-\PackageError{lwarp}
-{Package #1 must be loaded before lwarp}
-{Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.}
+    \PackageError{lwarp}
+    {Package #1 must be loaded before lwarp}
+    {Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.}
 }
 }
 %    \end{macrocode}
@@ -11788,6 +11850,7 @@
 %   \LuaLaTeX\ to preload graphics and graphicx.}
 % \changes{v0.45}{2017/12/03}{Allows \pkg{memoir}'s preloaded packages.}
 % \changes{v0.58}{2018/06/21}{Fix: \pkg{memoir} and \pkg{ccaption}.}
+% \changes{v0.82}{2020/03/17}{\pkg{syntonly}: Added to \cs{LWR at loadafter}.}
 %
 % The following packages must be loaded after \pkg{lwarp}:
 % ^^A *loadafter
@@ -11916,6 +11979,7 @@
 \LWR at loadafter{eqparbox}
 \LWR at loadafter{errata}
 \LWR at loadafter{eso-pic}
+\LWR at loadafter{etoc}
 \LWR at loadafter{eurosym}
 \LWR at loadafter{everypage}
 \LWR at loadafter{everyshi}
@@ -12064,6 +12128,7 @@
 \LWR at loadafter{nameref}
 \LWR at loadafter{natbib}
 \LWR at notmemoirloadafter{nccfancyhdr}
+\LWR at loadafter{nccfoots}
 \LWR at loadafter{nccmath}
 \LWR at notmemoirloadafter{needspace}
 % newclude must be loaded before lwarp
@@ -12195,6 +12260,7 @@
 \LWR at loadafter{subsupscripts}
 \LWR at loadafter{supertabular}
 \LWR at loadafter{svg}
+\LWR at loadafter{syntonly}
 \LWR at loadafter{t1inc}
 \LWR at loadafter{tabfigures}
 \LWR at loadafter{tabls}
@@ -12552,6 +12618,16 @@
 % \end{macro}
 %
 %
+% \begin{macro}{\LWR at disablepinyin} Disable \pkg{xpinyin} during
+% file, side\acro{TOC}, and footnote generation.
+% Set by \pkg{xpinyin}.
+% \changes{v0.82}{2020/03/25}{Added.}
+%    \begin{macrocode}
+\newcommand*{\LWR at disablepinyin}{}
+%    \end{macrocode}
+% \end{macro}
+%
+%
 % \subsection{Inserting vertical space}
 %
 % \begin{macro}{\LWR at forceemptyline} Extra vertical space in the \HTML\ output.
@@ -12925,7 +13001,7 @@
 % \DescribeOption{mathjax}
 % Option \optn{mathjax} selects \brand{MathJax} math display:
 % \gindex{math>mathjax=\optn{mathjax} option}
-% \gindex{MathJax=\brand{MathJax}>mathjax=\optn{mathjax} option}
+% \gindex{mathjax=\brand{MathJax}>mathjax=\optn{mathjax} option}
 % If the \optn{mathjax} option is given, boolean |mathjax| is true, may be used for \cs{ifbool} tests.
 %    \begin{macrocode}
 \DeclareVoidOption{mathjax}{%
@@ -14785,6 +14861,7 @@
 % then redefines \cs{name} to use either the print or \HTML\ version depending
 % on which mode \pkg{lwarp} is using.  \pkg{xparse} may be used to
 % define the new \HTML\ version, even if the original did not use \pkg{xparse}.
+% \pkg{expl3} syntax may be used as well.
 
 % \item[For a preexisiting environment, not defined with \pkg{xparse}:] The process
 % is similar.  Note the use of \cs{LWR at formattedenv} instead of \cs{LWR at formatted}.
@@ -14828,6 +14905,7 @@
 % The plain \cs{name} or environment \env{name} is used for the printed
 % version, and is placed inside \env{warpall}.
 % \pkg{xparse} may be used for the \cs{LWR at HTML@<name>} version.
+% \pkg{expl3} syntax may be used for the print and \HTML\ versions.
 %
 % \item [For a new macro or environment, using \pkg{xparse}:]
 %   It is possible to use \pkg{xparse} for an entirely new macro or environment
@@ -18261,8 +18339,8 @@
 % but do not need to be present when distributing
 % the resulting \HTML\ files.
 %
-% \gindex{MathJax=\brand{MathJax}>custom script}
-% \trouble{MathJax=\brand{MathJax}>custom script}
+% \gindex{mathjax=\brand{MathJax}>custom script}
+% \trouble{mathjax=\brand{MathJax}>custom script}
 % To generate a custom script, such as to use a local repository,
 % \margintag{custom script}
 % copy \filenm{lwarp_mathjax.txt} to a new file,
@@ -18527,7 +18605,7 @@
 -- Copyright 2016-2020 Brian Dunn
 
 
-printversion = "v0.81"
+printversion = "v0.82"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -19811,7 +19889,7 @@
 % \gindex{SVG>dynamic math}
 % \trouble{math>incorrect}
 % \trouble{math>dynamic}
-% \trouble{MathJax=\brand{MathJax}>errors}
+% \trouble{mathjax=\brand{MathJax}>errors}
 % \gindex{math>dynamic}
 % \gindex{dynamic math expressions}
 %
@@ -20043,7 +20121,14 @@
 %    \begin{macrocode}
 \newcommand*{\LWR at htmlsectionfilename}[1]{%
 \LWR at traceinfo{LWR at htmlsectionfilename A !\detokenize{#1}!}%
+\begingroup%
 %    \end{macrocode}
+%
+% Disable CJK \pkg{xpinyin} while generating file names.
+%    \begin{macrocode}
+\LWR at disablepinyin%
+%    \end{macrocode}
+%
 % Section 0 or empty is given the home filename.
 % The filename must be detokenized for underscores.
 %    \begin{macrocode}
@@ -20086,6 +20171,7 @@
     }%
 }%
 \LWR at traceinfo{LWR at htmlsectionfilename Z}%
+\endgroup%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -21967,11 +22053,19 @@
 %    \begin{macrocode}
     \color at begingroup%
 %    \end{macrocode}
-% Use \HTML\ superscripts in the footnote even inside a \env{lateximage}:
+%
+% Disable CJK \pkg{xpinyin} while generating footnotes.
+%    \begin{macrocode}
+    \LWR at disablepinyin%
+%    \end{macrocode}
+%
+% Use \HTML\ superscripts in the footnote even when the main text is
+% inside a \env{lateximage}, because the footnote will be in \HTML:
 % \changes{v0.50}{2018/02/20}{Robustify macros.}
 %    \begin{macrocode}
     \renewrobustcmd{\textsuperscript}[1]{\LWR at htmlspan{sup}{##1}}%
 %    \end{macrocode}
+%
 % Use paragraph tags if in a tabular data cell or a \env{lateximage}:
 % \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
 %    \begin{macrocode}
@@ -22830,15 +22924,54 @@
 
 %
 % Default customizations:
+% \margintag{defaults}
 %
-% \changes{v0.51}{2018/03/18}{MathJax: Nullifies \cs{ensuremath}.}
-% \changes{v0.57}{2018/05/24}{MathJax: Supports \cs{footnote}, \cs{footnotemark}.}
+% In the \brand{MathJax} code, footnotes are only referenced.
+% For equations, they are also generated
+% in the \HTML\ when the \LaTeX\ math is generated inside the \HTML\ comment.
+% For other math environments, the \cs{footnotemark} \Slash \cs{footnotetext}
+% method must be used. See \cref{sec:limitsfootnotes} regarding \cs{footnotemark}.
+% \watchout[\cs{footnotemark}]
+%
+% \changes{v0.51}{2018/03/18}{\brand{MathJax}: Nullifies \cs{ensuremath}.}
+% \changes{v0.57}{2018/05/24}{\brand{MathJax}: Supports \cs{footnote}, \cs{footnotemark}.}
 % \changes{v0.79}{2020/01/24}{\brand{MathJax}: Additional macros.}
+%
+% For footnotes, \cs{footnotename} is used in most cases, however
+% for \env{equation} the footnote is picked up from \LaTeX in \cs{LWR at doendequation}.
+%
+% First, \cs{footnotename} for \brand{MathJax} is copied from \LaTeX.
+% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
 %    \begin{macrocode}
+\providecommand{\footnotename}{footnote}
+
+% due to warpMathJax:
+\end{warpHTML}
+
 \begin{warpMathJax}
+\xdef\LWR at customizedMathJax{\LWR at customizedMathJax%
+    \LWRbackslash(%
+    \LWRbackslash{}newcommand%
+    \{\LWRbackslash{}footnotename\}%
+    \{\footnotename\}%
+    \LWRbackslash)\par%
+}
+\end{warpMathJax}
+%    \end{macrocode}
+
+% \cs{LWRfootnote} is set per \env{equation} if a footnote is detected in the
+% equation's math expression, otherwise it defaults to \cs{footnotename}.
+%    \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\def\LWRfootnote{1}}
+\CustomizeMathJax{\newcommand{\footnote}[2][\LWRfootnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\footnotemark}[1][\LWRfootnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+%    \end{macrocode}
+
+%    \begin{macrocode}
+\begin{warpMathJax}
 \CustomizeMathJax{\newcommand\ensuremath[1]{#1}}
-\CustomizeMathJax{\newcommand\footnote[2][]{\text{( Footnote #1 )}}}
-\CustomizeMathJax{\newcommand\footnotemark[1][]{\text{( Footnote #1 )}}}
 \CustomizeMathJax{% absorb two optional arguments
     \newcommand{\LWRframebox}[2][]{\fbox{#2}}
     \newcommand{\framebox}[1][]{\LWRframebox}
@@ -22851,6 +22984,8 @@
 \CustomizeMathJax{\newcommand{\directlua}[1]{\text{(directlua)}}}
 \CustomizeMathJax{\newcommand{\luatexdirectlua}[1]{\text{(directlua)}}}
 \end{warpMathJax}
+
+\begin{warpHTML}% due to warpMathJax
 %    \end{macrocode}
 
 
@@ -31633,7 +31768,7 @@
 % Only if the file exists:
 %    \begin{macrocode}
     \IfFileExists{\jobname.#1}{%
-    \LWR at traceinfo{LWR at myshorttoc: loading}%
+        \LWR at traceinfo{LWR at myshorttoc: loading}%
 %    \end{macrocode}
 %
 % Many of the commands in the file will have |@| characters in them, so |@|
@@ -31640,13 +31775,19 @@
 % \watchout
 % must be made a regular letter.
 %    \begin{macrocode}
-    \begingroup%
-    \makeatletter%
+        \begingroup%
+        \makeatletter%
 %    \end{macrocode}
+%
+% Disable CJK \pkg{xpinyin} while generating the side\TOC.
+%    \begin{macrocode}
+        \LWR at disablepinyin%
+%    \end{macrocode}
+%
 % Read in the \TOC\ file:
 %    \begin{macrocode}
-    \@input{\jobname.#1}%
-    \endgroup%
+        \@input{\jobname.#1}%
+        \endgroup%
     }%
     {}%
     \LWR at traceinfo{LWR at myshorttoc: done}%
@@ -33296,7 +33437,11 @@
 %    \begin{macrocode}
         {%
             \LWR at traceinfo{LWR at subsingledollar: Mathjax}%
-            {\textbackslash(\LWR at HTMLsanitize{#4}\textbackslash)}%
+            {%
+                \textbackslash(%
+                \LWR at HTMLsanitize{#4}%
+                \textbackslash)%
+            }%
         }% mathjax
 %    \end{macrocode}
 % For SVG, print the math inside a \env{lateximage},
@@ -33632,13 +33777,16 @@
 %    \end{macrocode}
 % If using chapters, place the chapter number in front of the equation.
 % Otherwise, use the simple equation number.
+% \changes{v0.82}{2020/03/09}{Removed \element{par} tags.}
 %    \begin{macrocode}
     \ifcsdef{thechapter}{
+        \LWR at stoppars%
         \InlineClass{hidden}{
             \textbackslash(
             \textbackslash{}seteqsection \{\thechapter\}
             \textbackslash)
         }
+        \LWR at startpars%
     }
     {}% not using chapters
 %    \end{macrocode}
@@ -33655,12 +33803,15 @@
 %    \end{macrocode}
 % Place the \brand{MathJax} command inside ``\cs{(}'' and ``\cs{)}'' characters,
 % to be printed to \HTML, not interpreted by \LaTeX.
+% \changes{v0.82}{2020/03/09}{Removed \element{par} tags.}
 %    \begin{macrocode}
+        \LWR at stoppars%
         \InlineClass{hidden}{
             \textbackslash(
             \textbackslash{}seteqnumber \{\arabic{LWR at nextequation}\}
             \textbackslash)
         }
+        \LWR at startpars%
     }{}% not eq > 0
 }
 %    \end{macrocode}
@@ -33786,7 +33937,7 @@
 % Print commands to syncronize \brand{MathJax}'s equation number and format
 % to the current \LaTeX\ chapter/section and equation number:
 %    \begin{macrocode}
-        \LWR at syncmathjax
+        \LWR at syncmathjax%
 %    \end{macrocode}
 % Print the \LaTeX\ math inside an \HTML\ comment:
 %    \begin{macrocode}
@@ -33849,14 +34000,22 @@
 }
 %    \end{macrocode}
 %
-%
 % After the environment, if \brand{MathJax}, print the math to the \HTML\ output
-% for \brand{MathJax} processing:
+% for \brand{MathJax} processing.
+% If a footnote is used, sync the \ctr{footnote} counter before,
+% then unsync after for non-equation environments, as defined next.
+% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
 %    \begin{macrocode}
 \newcommand*{\LWR at doendequation}[1]{%
     \ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
     {%
-        \LWR at addmathjax{#1}{\BODY}%
+        \IfSubStr{\detokenize\expandafter{\BODY}}{\detokenize{note}}{%
+            \InlineClass{hidden}{\LWR at syncnotenumbers}%
+            \LWR at addmathjax{#1}{\BODY}%
+            \InlineClass{hidden}{\LWR at syncnotenames}%
+        }{%
+            \LWR at addmathjax{#1}{\BODY}%
+        }%
     }{}%
 
 %    \end{macrocode}
@@ -33869,6 +34028,51 @@
 % \end{macro}
 
 
+% The following are used to syncronize footnote marks and related to
+% \brand{MathJax} if |*note*| is used inside the \brand{MathJax} expression.
+% The counter is read from \LaTeX\ then defined into \brand{MathJax} for use during
+% the following equation.  After the equation, the \brand{MathJax} value is
+% returned to the text from \cs{footnotename}.  Other notes may be added by
+% appending to \cs{LWR at syncnotenumbers} and \cs{LWR at syncnotenames}.
+%
+% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
+%
+% \begin{macro}{\LWR at synconenotenumber} \marg{\brand{MathJax} variable} \marg{mark}
+%    \begin{macrocode}
+\newcommand*{\LWR at synconenotenumber}[2]{%
+    \textbackslash(
+    \textbackslash{}def\textbackslash{}#1\{#2\}
+    \textbackslash)
+}
+%    \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR at syncnotenumbers} Assignments to make.
+%    \begin{macrocode}
+\newcommand*{\LWR at syncnotenumbers}{\LWR at synconenotenumber{LWRfootnote}{\thefootnote}}
+%    \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR at synconenotename} \marg{\brand{MathJax} variable} \marg{text}
+%    \begin{macrocode}
+\newcommand*{\LWR at synconenotename}[2]{%
+    \textbackslash(
+    \textbackslash{}def\textbackslash{}#1\{#2\}
+    \textbackslash)
+}
+%    \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR at syncnotenames} Assignments to make.
+%    \begin{macrocode}
+\newcommand*{\LWR at syncnotenames}{\LWR at synconenotename{LWRfootnote}{\footnotename}}
+%    \end{macrocode}
+% \end{macro}
+
+
 % Remove existing \env{equation} environment:
 %    \begin{macrocode}
 \AtBeginDocument{
@@ -35155,7 +35359,13 @@
 \LWR at PreloadedPackage{lltjext}
 %    \end{macrocode}
 
+% \pkg{luatexko} must be loaded before \pkg{lwarp}.
 %    \begin{macrocode}
+\LWR at PreloadedPackage{luatexko}
+%    \end{macrocode}
+
+
+%    \begin{macrocode}
 \end{warpHTML}
 %    \end{macrocode}
 
@@ -40098,9 +40308,10 @@
 %
 % For \brand{MathJax}:
 % \changes{v0.79}{2020/01/27}{\pkg{amsmath}: Added \brand{MathJax} emulation.}
+% \changes{v0.82}{2020/03/14}{\pkg{amsmath}: Fixed: \cs{intertext} for \brand{MathJax}.}
 %    \begin{macrocode}
 \begin{warpMathJax}
-\CustomizeMathJax{\newcommand{\intertext}[1]{\\ \text{#1}\notag \\}}
+\CustomizeMathJax{\newcommand{\intertext}[1]{\text{#1}\notag \\}}
 \end{warpMathJax}
 %    \end{macrocode}
 %
@@ -40707,7 +40918,7 @@
 %
 % For \brand{MathJax}, limited emulation is provided for math mode.
 % \trouble{arydshln=\pkg{arydshln}}
-% \trouble{Mathjax=\brand{MathJax}>arydshln=\pkg{arydshln}}
+% \trouble{mathjax=\brand{MathJax}>arydshln=\pkg{arydshln}}
 %
 % \changes{v0.56}{2018/05/02}{\pkg{arydshln}: Added.}
 %
@@ -42459,7 +42670,7 @@
 %
 % For \brand{MathJax}, emulation is provided in math mode, but \watchout[\cs{cmidrule}]
 % \trouble{booktabs=\pkg{booktabs}}
-% \trouble{Mathjax=\brand{MathJax}>booktabs=\pkg{booktabs}}
+% \trouble{mathjax=\brand{MathJax}>booktabs=\pkg{booktabs}}
 % \cs{cmidrule} trim must not be used.
 %
 % \changes{v0.34}{2017/08/08}{\pkg{booktabs}: Works inside \env{lateximage}.}
@@ -43775,12 +43986,13 @@
 % may be changed at any time, and are unlikely to be reused inline anyhow.
 %
 % \changes{v0.51}{2018/03/04}{\pkg{chemfig}: Added.}
-% \changes{v0.71}{2019/04/25}{\pkg{chemfig}: Updated for v1.4.}
+% \changes{v0.71}{2019/04/25}{\pkg{chemfig}: Updated to v1.4.}
+% \changes{v0.82}{2020/03/12}{\pkg{chemfig}: Updated to v1.5.}
 %
 % \codehtml
 %
 %    \begin{macrocode}
-\LWR at ProvidesPackagePass{chemfig}
+\LWR at ProvidesPackagePass{chemfig}[2020/03/05]
 %    \end{macrocode}
 
 %    \begin{macrocode}
@@ -43787,9 +43999,20 @@
 
 \catcode`\_=11
 
+\@ifpackagelater{chemfig}{2020/03/05}
+{
+    \xpretocmd\charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]}
+        {}{\LWR at patcherror{chemfig}{charge}}
+    \xpretocmd\Charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]}
+        {}{\LWR at patcherror{chemfig}{Charge}}
+    \xapptocmd\charge_c{\end{lateximage}}
+        {}{\LWR at patcherror{chemfig}{charge_c}}
+}{}
+
 \@ifpackagelater{chemfig}{2019/04/18}%
 {% 2019/04/18 or newer
 
+
     \LetLtxMacro\LWR at chemfig@origchemfig\chemfig
 
     \renewcommand*{\chemfig}[2][]{%
@@ -45499,6 +45722,8 @@
 %
 %
 %
+%
+%
 % \iffalse
 %<*CJK>
 % \fi
@@ -46735,6 +46960,7 @@
 % \credits{Sergio Callegari}
 %
 % \changes{v0.20}{2017/01/11}{\pkg{draftwatermark}: Added.}
+% \changes{v0.82}{2020/03/21}{\pkg{draftwatermark}: Updated to v2.0.}
 %
 % \DescribePackage{draftwatermark}
 % \pkg{draftwatermark} is ignored.
@@ -46742,10 +46968,12 @@
 % \codehtml
 
 %    \begin{macrocode}
-\LWR at ProvidesPackageDrop{draftwatermark}[2015/02/19]
+\LWR at ProvidesPackageDrop{draftwatermark}[2020/03/14]
 %    \end{macrocode}
 
 %    \begin{macrocode}
+\newcommand{\DraftwatermarkOptions}[1]{}
+\newcommand{\DraftwatermarkStdMark}{}
 \newcommand{\SetWatermarkAngle}[1]{}
 \newcommand{\SetWatermarkColor}[1]{}
 \newcommand{\SetWatermarkLightness}[1]{}
@@ -47430,11 +47658,31 @@
 \makeenmark
 % }
 }
+%    \end{macrocode}
+%
+% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Fix: Mark in print mode.}
+%    \begin{macrocode}
+\def\LWR at HTML@@makeenmark{\hbox{\LWR at htmlspan{sup}{\normalfont\theenmark}}}
+\LWR at formatted{@makeenmark}
 
-\def\@makeenmark{\hbox{\LWR at htmlspan{sup}{\normalfont\theenmark}}}
 \def\makeenmark{\@makeenmark}
 %    \end{macrocode}
 %
+%
+% For \brand{MathJax}:
+% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Added \brand{MathJax} emulation.}
+%    \begin{macrocode}
+\begin{warpMathJax}
+\def\endnotename{endnote}
+\appto\LWR at syncnotenumbers{\LWR at synconenotenumber{LWRendnote}{\theendnote}}
+\appto\LWR at syncnotenames{\LWR at synconenotename{LWRendnote}{\endnotename}}
+\CustomizeMathJax{\def\LWRendnote{1}}
+\CustomizeMathJax{\newcommand{\endnote}[2][\LWRendnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\endnotemark}[1][\LWRendnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+%    \end{macrocode}
+%
+%
 % \iffalse
 %</endnotes>
 % \fi
@@ -48313,6 +48561,169 @@
 %
 %
 % \iffalse
+%<*etoc>
+% \fi
+%
+% \part{lwarp-etoc.sty}
+%
+% \section{etoc}
+%
+% \DescribePackage{etoc}
+% \pkg{etoc} is ignored.
+% All commands are nullified.
+%
+% The \pkg{etoc} package uses a non-standard syntax which looks ahead
+% \watchout[\cs{tableofcontents} with \cs{ref}]
+% after a \cs{tableofcontents} for a following \cs{ref}.
+% These \cs{ref}s appear in the \HTML\ result unless they are removed.
+% Where a \cs{tableofcontents} is followed by \cs{ref}, and perhaps also
+% \cs{label} as well, enclose all of them inside \cs{warpprintonly}:
+% \begin{sourcedisplay}
+% \textblue{\cs{warpprintonly}\{}\cs{tableofcontents}
+%       \textred{\cs{ref}\{toc:abc\}} \cs{label}\{toc:def\}\textblue{\}}
+% \end{sourcedisplay}
+% or place all code related to a local \cs{tableofcontents} inside
+% a \env{warpprint} environment.
+%
+% Be sure to keep the initial \cs{tableofcontents} on the home page,
+% \watchout[home page]
+% perhaps in its own \cs{warpHTMLonly} macro or \env{warpHTML} environment.
+%
+% \changes{v0.82}{2020/03/22}{\pkg{etoc}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackageDrop{etoc}[2019/11/17]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\etocsetlevel#1#2{}
+\def\etocskipfirstprefix{}
+\let\etocthename   \@empty
+\let\etocthenumber \@empty
+\let\etocthepage   \@empty
+\let\etocthelinkedname   \@empty
+\let\etocthelinkednumber \@empty
+\let\etocthelinkedpage   \@empty
+\let\etocthelink   \@firstofone % prior to 1.08j its was \let to \@empty
+\DeclareRobustCommand*{\etocname}  {}
+\DeclareRobustCommand*{\etocnumber}{}
+\DeclareRobustCommand*{\etocpage}  {}
+\DeclareRobustCommand*{\etoclink}  {\@firstofone}
+\DeclareRobustCommand*{\etocifnumbered}{\@firstoftwo}
+\DeclareRobustCommand*{\etociffirst}{\@firstoftwo}
+\DeclareRobustCommand*\etocifwasempty{\@firstoftwo}
+\let\etocaftertitlehook    \@empty
+\let\etocaftercontentshook \@empty
+\def\etoctableofcontents{}
+\newcommand*\localtableofcontents{}
+\newcommand*\localtableofcontentswithrelativedepth[1]{}
+\newcommand\etocsettocstyle[2]{}
+\long\def\etocsetstyle#1#2#3#4#5{}
+\def\etocfontminustwo {\normalfont \LARGE \bfseries}
+\def\etocfontminusone {\normalfont \large \bfseries}
+\def\etocfontzero     {\normalfont \large \bfseries}
+\def\etocfontone      {\normalfont \normalsize \bfseries}
+\def\etocfonttwo      {\normalfont \normalsize}
+\def\etocfontthree    {\normalfont \footnotesize}
+\def\etocsepminustwo  {4ex \@plus .5ex \@minus .5ex}
+\def\etocsepminusone  {4ex \@plus .5ex \@minus .5ex}
+\def\etocsepzero      {2.5ex \@plus .4ex \@minus .4ex}
+\def\etocsepone       {1.5ex \@plus .3ex \@minus .3ex}
+\def\etocseptwo       {.5ex \@plus .1ex \@minus .1ex}
+\def\etocsepthree     {.25ex \@plus .05ex \@minus .05ex}
+\def\etocbaselinespreadminustwo {1}
+\def\etocbaselinespreadminusone {1}
+\def\etocbaselinespreadzero     {1}
+\def\etocbaselinespreadone      {1}
+\def\etocbaselinespreadtwo      {1}
+\def\etocbaselinespreadthree    {.9}
+\def\etocminustwoleftmargin  {1.5em plus 0.5fil}
+\def\etocminustworightmargin {1.5em plus -0.5fil}
+\def\etocminusoneleftmargin  {1em}
+\def\etocminusonerightmargin {1em}
+\def\etoctoclineleaders
+        {\hbox{\normalfont\normalsize\hb at xt@2ex {\hss.\hss}}}
+\def\etocabbrevpagename {p.~}
+\def\etocpartname       {Part}% modified 1.08b
+\def\etocbookname       {Book}
+\def\etocdefaultlines{}
+\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex}
+\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex}
+\def\etoccolumnsep{2em}
+\def\etocmulticolsep{0ex}
+\def\etocmulticolpretolerance{-1}
+\def\etocmulticoltolerance{200}
+\def\etocdefaultnbcol{2}
+\def\etocinnertopsep{2ex}
+\newcommand\etocmulticolstyle[2][]{}
+\def\etocinnerbottomsep{3.5ex}
+\def\etocinnerleftsep{2em}
+\def\etocinnerrightsep{2em}
+\def\etoctoprule{\hrule}
+\def\etocleftrule{\vrule}
+\def\etocrightrule{\vrule}
+\def\etocbottomrule{\hrule}
+\def\etoctoprulecolorcmd{\relax}
+\def\etocbottomrulecolorcmd{\relax}
+\def\etocleftrulecolorcmd{\relax}
+\def\etocrightrulecolorcmd{\relax}
+\newcommand*\etocruledstyle[2][]{}
+\def\etocframedmphook{\relax}
+\long\def\etocbkgcolorcmd{\relax}
+\newcommand*\etocframedstyle[2][]{}
+\def\etocmulticol{}
+\def\etocruled{}
+\def\etocframed{}
+\def\etoclocalmulticol{}
+\def\etoclocalruled{}
+\def\etoclocalframed{}
+\def\etocarticlestyle{}
+\def\etocarticlestylenomarks{}
+\def\etocbookstyle{}
+\def\etocbookstylenomarks{}
+\let\etocreportstyle\etocbookstyle
+\let\etocreportstylenomarks\etocbookstylenomarks
+\def\etocmemoirtoctotocfmt #1#2{}
+\def\etocmemoirstyle{}
+\def\etocscrartclstyle{}
+\let\etocscrbookstyle\etocscrartclstyle
+\let\etocscrreprtstyle\etocscrartclstyle
+\def\etocstandarddisplaystyle{\etocarticlestyle}
+\newcommand*\etocmarkboth[1]{}
+\newcommand*\etocmarkbothnouc[1]{}
+\newcommand\etoctocstyle[3][section]{}
+\newcommand\etoctocstylewithmarks[4][section]{}
+\newcommand\etoctocstylewithmarksnouc[4][section]{}
+\def\etocignoretoctocdepth{}
+\def\etocsettocdepth[1]{}
+\def\etocdepthtag   #1#{\Etoc at depthtag }
+\def\Etoc at depthtag  #1{}
+\def\etocignoredepthtags {}
+\def\etocobeydepthtags   {}
+\def\etocsettagdepth #1#2{}
+\def\invisibletableofcontents {}
+\def\invisiblelocaltableofcontents{}
+\def\etocsetnexttocdepth #1{}
+\def\etocsetlocaltop #1#{\Etoc at set@localtop}
+\def\Etoc at set@localtop #1{}
+\def\etocstandardlines {}
+\def\etoctoclines      {}
+\let\etocaftertochook    \@empty
+\let\etocbeforetitlehook \@empty
+\appto\tableofcontents{\def\tableofcontents{}}
+%    \end{macrocode}
+%
+% \iffalse
+%</etoc>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
 %<*eurosym>
 % \fi
 %
@@ -56334,7 +56745,145 @@
 %
 %
 %
+%
+%
 % \iffalse
+%<*luatexko>
+% \fi
+%
+% \part{lwarp-luatexko.sty}
+%
+% \section{luatexko}
+%
+% \credits{Dohyun Kim, Soojin Nam}
+%
+% \DescribePackage{luatexko}
+% \pkg{luatexko} is patched for use by \pkg{lwarp}.
+%
+% Modern \HTML\ is used for \cs{dotemph}, \cs{ruby}, and
+% offset and thickness control for \cs{uline}, etc.
+%
+% \changes{v0.82}{2020/03/22}{\pkg{luatexko}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{luatexko}[2020/03/20]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\newcommand{\LWR at HTML@dotemph}[1]{%
+%     \uline{#1}%
+    \InlineClass[text-emphasis-style: dot]{dotemph}{#1}%
+}
+\LWR at formatted{dotemph}
+
+\newcommand{\LWR at HTML@ruby}[2]{%
+    \LWR at htmltagc{ruby}%
+    \LWR at htmltagc{rb}#1\LWR at htmltagc{/rb}%
+    \LWR at htmltagc{rp}(\LWR at htmltagc{/rp}%
+    \LWR at htmltagc{rt}#2\LWR at htmltagc{/rt}%
+    \LWR at htmltagc{rp})\LWR at htmltagc{/rp}%
+    \LWR at htmltagc{/ruby}%
+}
+\LWR at formatted{ruby}
+%    \end{macrocode}
+%
+% The following is modified from \pkg{lwarp-ulem}:
+%    \begin{macrocode}
+\NewDocumentCommand{\LWR at HTML@uline}{+m}{%
+    \InlineClass%
+        (text-decoration:underline; text-decoration-skip: auto)%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {uline}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{uline}
+
+\NewDocumentCommand{\LWR at HTML@uuline}{+m}{%
+    \InlineClass%
+        (%
+            text-decoration:underline; text-decoration-skip: auto;%
+            text-decoration-style:double%
+        )%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {uuline}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{uuline}
+
+\NewDocumentCommand{\LWR at HTML@uwave}{+m}{%
+    \InlineClass%
+        (%
+            text-decoration:underline; text-decoration-skip: auto;%
+            text-decoration-style:wavy%
+        )%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {uwave}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{uwave}
+
+\NewDocumentCommand{\LWR at HTML@sout}{+m}{%
+    \InlineClass%
+        (text-decoration:line-through)%
+        [text-decoration-thickness: \ulinewidth]%
+        {sout}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{sout}
+
+\NewDocumentCommand{\LWR at HTML@xout}{+m}{%
+    \InlineClass%
+        (text-decoration:line-through)%
+        [text-decoration-thickness: \ulinewidth]%
+        {xout}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{xout}
+
+\NewDocumentCommand{\LWR at HTML@dashuline}{+m}{%
+    \InlineClass%
+        (%
+            text-decoration:underline;%
+            text-decoration-skip: auto;%
+            text-decoration-style:dashed%
+        )%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {dashuline}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{dashuline}
+
+\NewDocumentCommand{\LWR at HTML@dotuline}{+m}{%
+    \InlineClass%
+        (%
+            text-decoration:underline;%
+            text-decoration-skip: auto;%
+            text-decoration-style: dotted%
+        )%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {dotuline}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{dotuline}
+%    \end{macrocode}
+%
+% \iffalse
+%</luatexko>
+% \fi
+%
+%
+%
+% \iffalse
 %<*luatodonotes>
 % \fi
 %
@@ -56970,6 +57519,22 @@
 \newcommand*{\raggedrightmarginnote}{}
 %    \end{macrocode}
 %
+% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Fix: Neutralize in print mode.}
+%    \begin{macrocode}
+\appto\LWR at restoreorigformatting{%
+    \RenewDocumentCommand{\marginnote}{+o +m o}{}
+}
+%    \end{macrocode}
+%
+% For \brand{MathJax}:
+% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Added \brand{MathJax} emulation.}
+%    \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\LWRmarginnote}[1][]{}}
+\CustomizeMathJax{\newcommand{\marginnote}[2][]{\qquad{\small\textrm{#2}}\LWRmarginnote}}
+\end{warpMathJax}
+%    \end{macrocode}
+%
 % \iffalse
 %</marginnote>
 % \fi
@@ -58282,8 +58847,8 @@
 % and assume that any \pkg{mhchem} options are global.
 %
 % For \brand{MathJax}, the \pkg{mhchem} extension is used if
-% \trouble{MathJax=\brand{MathJax}>mhchem=\pkg{mhchem}}
-% \trouble{mhchem=\pkg{mhchem}>MathJax=\brand{MathJax}}
+% \trouble{mathjax=\brand{MathJax}>mhchem=\pkg{mhchem}}
+% \trouble{mhchem=\pkg{mhchem}>mathjax=\brand{MathJax}}
 % \margintag{\brand{MathJax} with \pkg{mhchem} extension}
 % the \pkg{mhchem} expression is used inside a math expression:
 % \begin{sourceverb}
@@ -60084,8 +60649,46 @@
 %
 %
 %
+% \iffalse
+%<*nccfoots>
+% \fi
 %
+% \part{lwarp-nccfoots.sty}
+%
+% \section{nccfoots}
+%
+% \credits{Alexander I. Rozhenko}
+%
+% \DescribePackage{nccfoots}
+% \pkg{nccfoots} is used as-is, and emulated for \brand{MathJax}.
+%
+% \changes{v0.82}{2020/03/14}{\pkg{nccfoots}: Added \brand{MathJax} emulation.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{nccfoots}[2005/02/03]
+%    \end{macrocode}
+%
+% For \brand{MathJax}.
+% There is no way to test for an empty argument, \watchout
+% so the mark is not automatically duplicated.
+%    \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\Footnotemark}[1]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\Footnote}[2]{\Footnotemark{#1}}}
+\end{warpMathJax}
+%    \end{macrocode}
+%
 % \iffalse
+%</nccfoots>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
 %<*nccmath>
 % \fi
 %
@@ -62048,6 +62651,24 @@
 \LWR at ProvidesPackagePass{pagenote}[2009/09/03]
 %    \end{macrocode}
 %
+%
+% For \brand{MathJax}:
+% \changes{v0.82}{2020/03/14}{\pkg{pagenote}: Added \brand{MathJax} emulation.}
+%    \begin{macrocode}
+\begin{warpMathJax}
+\appto\LWR at syncnotenumbers{\LWR at synconenotenumber{LWRpagenote}{\thepagenote}}
+\CustomizeMathJax{\def\LWRpagenote{1}}
+\CustomizeMathJax{\newcommand{\pagenote}[2][\LWRpagenote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+%    \end{macrocode}
+%
+% There is no \cs{pagenotemark}, so the following are not required:
+% \begin{sourceverb}
+% \providecommand{\pagenotename}{pagenote}
+% \appto\LWR at syncnotenames{\LWR at synconenotename{LWRpagenote}{\pagenotename}}
+% \end{sourceverb}
+%
+%
 % \iffalse
 %</pagenote>
 % \fi
@@ -62444,6 +63065,26 @@
 }
 %    \end{macrocode}
 %
+%
+% For \brand{MathJax}:
+% \changes{v0.82}{2020/03/15}{\pkg{parnotes}: Added \brand{MathJax} emulation.}
+%    \begin{macrocode}
+\begin{warpMathJax}
+\providecommand{\parnotename}{parnote}
+\appto\LWR at syncnotenumbers{%
+    \addtocounter{parnotemark}{-1}% specific to parnotes
+    \LWR at synconenotenumber{LWRparnote}{\theparnotemark}%
+    \addtocounter{parnotemark}{1}% specific to parnotes
+}
+\appto\LWR at syncnotenames{\LWR at synconenotename{LWRparnote}{\parnotename}}
+\CustomizeMathJax{\def\LWRparnote{1}}
+\CustomizeMathJax{\newcommand{\parnote}[2][\LWRparnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\parnotemark}[1][\LWRparnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+%    \end{macrocode}
+%
+%
+%
 % \iffalse
 %</parnotes>
 % \fi
@@ -66551,6 +67192,30 @@
                {\end at dblfloat}
 %    \end{macrocode}
 %
+%
+% For \brand{MathJax}:
+%
+% Note that \pkg{sidenotes} does not support \cs{sidenote} inside math in print mode.
+% \watchout
+% Use \cs{sidenotemark} and \cs{sidenotetext} instead.
+%
+% \changes{v0.82}{2020/03/14}{\pkg{sidenotes}: Added \brand{MathJax} emulation.}
+%    \begin{macrocode}
+\begin{warpMathJax}
+\providecommand{\sidenotename}{sidenote}
+\appto\LWR at syncnotenumbers{\LWR at synconenotenumber{LWRsidenote}{\thesidenote}}
+\appto\LWR at syncnotenames{\LWR at synconenotename{LWRsidenote}{\sidenotename}}
+\CustomizeMathJax{\def\LWRsidenote{1}}
+\CustomizeMathJax{\newcommand{\sidenotemark}[1][\LWRsidenote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+%    \end{macrocode}
+%
+% The following is not defined since is not allowed inside math in print mode,
+% and also would have to be modified to parse the optional offset argument:
+% \begin{sourceverb}
+% \CustomizeMathJax{\newcommand{\sidenote}[2][\LWRsidenote]{{}^{\mathrm{#1}}}}
+% \end{sourceverb}
+%
 % \iffalse
 %</sidenotes>
 % \fi
@@ -67678,6 +68343,7 @@
 %
 % \changes{v0.27}{2017/04/02}{\pkg{soul}: Added.}
 % \changes{v0.42}{2017/10/20}{\pkg{soul}: If \progcode{FormatWP}, add explicit styles.}
+% \changes{v0.82}{2020/03/06}{\pkg{soul}: Fixed: \cs{<}.}
 %
 % \codehtml
 %
@@ -67767,6 +68433,7 @@
 \newcommand*{\resetul}{}
 \newcommand*{\setuldepth}[1]{}
 \newcommand*{\setuloverlap}[1]{}
+\newcommand*{\<}{}
 %    \end{macrocode}
 %
 % Set colors:
@@ -69445,6 +70112,11 @@
 
 \@onlypreamble\syntaxonly
 %    \end{macrocode}
+
+% \changes{v0.82}{2020/03/17}{\pkg{syntonly}: Added \cs{nopages@}.}
+%    \begin{macrocode}
+\def\nopages@{}
+%    \end{macrocode}
 %
 % \iffalse
 %</syntonly>
@@ -73144,6 +73816,7 @@
 % \changes{v0.27}{2017/04/02}{\pkg{ulem}: Added.}
 % \changes{v0.62}{2018/11/16}{\pkg{ulem}: Improved compatibility with \pkg{CJKulem}.}
 % \changes{v0.62}{2018/11/17}{\pkg{ulem}: Now works in a \env{lateximage}.}
+% \changes{v0.82}{2020/03/21}{\pkg{ulem}: Fixed: \cs{dashuline}.}
 %
 % \codehtml
 %
@@ -73196,6 +73869,7 @@
         (text-decoration:line-through)%
         {xout}{\LWR at isolate{#1}}%
 }
+\LWR at formatted{xout}
 
 \NewDocumentCommand{\LWR at HTML@dashuline}{+m}{%
     \InlineClass%
@@ -73206,7 +73880,7 @@
         )%
         {dashuline}{\LWR at isolate{#1}}%
 }
-\LWR at formatted{xout}
+\LWR at formatted{dashuline}
 
 \NewDocumentCommand{\LWR at HTML@dotuline}{+m}{%
     \InlineClass%
@@ -75761,27 +76435,85 @@
 % \credits{Soben Lee}
 %
 % \DescribePackage{xpinyin}
-% \pkg{xpinyin} is partly supported.
-% \cs{xpinyin} and \env{pinyinscope} are nullified, but \cs{pinyin} works.
+% \pkg{xpinyin} is supported.
 %
+% Pinyin is disabled for file names, the side\TOC, and regular footnotes,
+% but is left enabled for minipage footnotes, as per the print mode.
+%
 % \changes{v0.63}{2018/12/03}{\pkg{xpinyin}: Added.}
+% \changes{v0.82}{2020/03/25}{\pkg{xpinyin}: Added full pinyin support.}
 %
 % \codehtml
 %
 %    \begin{macrocode}
-\LWR at ProvidesPackagePass{xpinyin}[2018/01/28]
+\LWR at ProvidesPackagePass{xpinyin}[2019-04-07]
 %    \end{macrocode}
 %
+% The original's boxes are not used, instead the contents are used with
+% \element{ruby}, \element{rb}, and \element{rt} tags per modern \HTML.
+% Color is detected.  \optn{ratio} is ignored for \prog{pdftotext} to work correctly.
+% Extra spaces are placed inside the tags to allow line breaks in the \HTML\
+% text.
 %    \begin{macrocode}
-\RenewDocumentEnvironment{pinyinscope}{O{}}{}{}
-
-\RenewDocumentCommand{\xpinyin}{s O{} m}{%
-    \IfBooleanTF{#1}{#3}{\@firstoftwo#3}%
+\ExplSyntaxOn
+\cs_new_protected_nopar:Npn \LWR at HTML@__xpinyin_make_pinyin_box:nnn #1#2#3
+{
+    \color_group_begin: \color_ensure_current:
+    \l__xpinyin_pinyin_box_hook_tl
+    \renewcommand*{\l__xpinyin_ratio_tl}{1}% for pdftotext
+    \__xpinyin_select_font:
+    \clist_if_exist:cTF { c__xpinyin_multiple_ #1 _clist }
+        { \l__xpinyin_multiple_tl \l__xpinyin_format_tl }
+        { \l__xpinyin_format_tl }
+    \ifdefempty{\l__xpinyin_format_tl}
+        {#3}
+        {\LWR at textcurrentcolor{#3}}
+    \color_group_end:
 }
+\LWR at formatted{__xpinyin_make_pinyin_box:nnn}
 
-\RenewDocumentCommand{\enablepinyin}{}{}
+\cs_new_protected_nopar:Npn \LWR at HTML@__xpinyin_CJKsymbol:nn #1#2
+  {
+    \__xpinyin_leavevmode:
+    \LWR at htmltagc{ruby}
+    \LWR at htmltagc{rb}
+    \__xpinyin_save_CJKsymbol:n {#2}\null% \null removes extra space
+    \LWR at htmltagc{/rb\space}
+    \LWR at htmltagc{rp}(\LWR at htmltagc{/rp\space}
+    \LWR at htmltagc{rt}
+    \__xpinyin_make_pinyin_box:nnn {#1} {#2} { \use:c { c__xpinyin_ #1 _tl } }
+    \LWR at htmltagc{/rt\space}
+    \LWR at htmltagc{rp})\LWR at htmltagc{/rp\space}
+    \LWR at htmltagc{/ruby\space}\null
+  }
+\LWR at formatted{__xpinyin_CJKsymbol:nn}
+
+\cs_new_protected_nopar:Npn \LWR at HTML@__xpinyin_single_CJKsymbol:nn #1#2
+  {
+    \__xpinyin_leavevmode:
+    \LWR at htmltagc{ruby}
+    \LWR at htmltagc{rb}
+    \__xpinyin_save_CJKsymbol:n {#1}\null% \null removes extra space
+    \LWR at htmltagc{/rb\space}
+    \LWR at htmltagc{rp}(\LWR at htmltagc{/rp\space}
+    \LWR at htmltagc{rt}
+    \__xpinyin_make_pinyin_box:xnn
+      { \__xpinyin_to_unicode:n {#1} } {#1} { \__xpinyin_pinyin:n {#2} }
+    \LWR at htmltagc{/rt\space}
+    \LWR at htmltagc{rp})\LWR at htmltagc{/rp\space}
+    \LWR at htmltagc{/ruby\space}\null
+  }
+\LWR at formatted{__xpinyin_single_CJKsymbol:nn}
+
+\ExplSyntaxOff
 %    \end{macrocode}
 %
+% The \pkg{lwarp} core uses the following to disable CJK \pkg{xpinyin} for
+% filenames, side\TOC, and footnotes.
+%    \begin{macrocode}
+\renewcommand*{\LWR at disablepinyin}{\disablepinyin}
+%    \end{macrocode}
+%
 % \iffalse
 %</xpinyin>
 % \fi
@@ -76792,6 +77524,7 @@
 }
 %    \end{macrocode}
 %
+% \changes{v0.82}{2020/03/24}{\pkg{lwarp-patch-memoir}: Supports \pkg{tocvsec2}.}
 %    \begin{macrocode}
 \renewcommand*{\raggedbottomsection}{}
 \renewcommand*{\normalbottomsection}{}
@@ -76800,8 +77533,6 @@
 \csletcs{appendixpage*}{appendixpage}
 \renewcommand*{\namedsubappendices}{}
 \renewcommand*{\unnamedsubappendices}{}
-\renewcommand*{\setsecnumdepth}[1]{}% todo tocvsec2
-\renewcommand*{\maxsecnumdepth}[1]{}% todo tocvsec2
 \renewcommand*{\beforebookskip}{}
 \renewcommand*{\afterbookskip}{}
 \renewcommand*{\beforepartskip}{}
@@ -77033,6 +77764,8 @@
 %    \end{macrocode}
 %
 % \subsection{Contents lists}
+%
+% \changes{v0.82}{2020/03/24}{\pkg{lwarp-patch-memoir}: Supports \pkg{tocvsec2}.}
 %    \begin{macrocode}
 \csletcs{tableofcontents*}{tableofcontents}
 \csletcs{listoffigures*}{listoffigures}
@@ -77043,8 +77776,6 @@
 \renewcommand*{\ensureonecol}{}
 \renewcommand*{\restorefromonecol}{}
 \renewcommand*{\doccoltocetc}{}
-\renewcommand*{\maxtocdepth}[1]{}% tocvsec2
-\renewcommand*{\settocdepth}[1]{}% tocvsec2
 
 \renewcommand{\tocheadstart}{}
 \renewcommand{\printtoctitle}[1]{}

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2020-03-25 21:11:36 UTC (rev 54546)
@@ -158,6 +158,7 @@
 \file{lwarp-eqparbox.sty}{\from{lwarp.dtx}{eqparbox}}
 \file{lwarp-errata.sty}{\from{lwarp.dtx}{errata}}
 \file{lwarp-eso-pic.sty}{\from{lwarp.dtx}{eso-pic}}
+\file{lwarp-etoc.sty}{\from{lwarp.dtx}{etoc}}
 \file{lwarp-eurosym.sty}{\from{lwarp.dtx}{eurosym}}
 \file{lwarp-everypage.sty}{\from{lwarp.dtx}{everypage}}
 \file{lwarp-everyshi.sty}{\from{lwarp.dtx}{everyshi}}
@@ -260,6 +261,7 @@
 \file{lwarp-lua-visual-debug.sty}{\from{lwarp.dtx}{lua-visual-debug}}
 \file{lwarp-luacolor.sty}{\from{lwarp.dtx}{luacolor}}
 \file{lwarp-luamplib.sty}{\from{lwarp.dtx}{luamplib}}
+\file{lwarp-luatexko.sty}{\from{lwarp.dtx}{luatexko}}
 \file{lwarp-luatodonotes.sty}{\from{lwarp.dtx}{luatodonotes}}
 \file{lwarp-lyluatex.sty}{\from{lwarp.dtx}{lyluatex}}
 \file{lwarp-magaz.sty}{\from{lwarp.dtx}{magaz}}
@@ -303,6 +305,7 @@
 \file{lwarp-nameref.sty}{\from{lwarp.dtx}{nameref}}
 \file{lwarp-natbib.sty}{\from{lwarp.dtx}{natbib}}
 \file{lwarp-nccfancyhdr.sty}{\from{lwarp.dtx}{nccfancyhdr}}
+\file{lwarp-nccfoots.sty}{\from{lwarp.dtx}{nccfoots}}
 \file{lwarp-nccmath.sty}{\from{lwarp.dtx}{nccmath}}
 \file{lwarp-needspace.sty}{\from{lwarp.dtx}{needspace}}
 \file{lwarp-nextpage.sty}{\from{lwarp.dtx}{nextpage}}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-amsmath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-amsmath.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-amsmath.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -126,7 +126,7 @@
 
 \AfterEndEnvironment{alignat*}{\LWR at amsmathenv@after*{alignat*}}
 \begin{warpMathJax}
-\CustomizeMathJax{\newcommand{\intertext}[1]{\\ \text{#1}\notag \\}}
+\CustomizeMathJax{\newcommand{\intertext}[1]{\text{#1}\notag \\}}
 \end{warpMathJax}
 \endinput
 %%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-chemfig.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-chemfig.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-chemfig.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -16,11 +16,21 @@
 %% and version 1.3 or later is part of all distributions of LaTeX
 %% version 2005/12/01 or later.
 
-\LWR at ProvidesPackagePass{chemfig}
+\LWR at ProvidesPackagePass{chemfig}[2020/03/05]
 
 
 \catcode`\_=11
 
+\@ifpackagelater{chemfig}{2020/03/05}
+{
+    \xpretocmd\charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]}
+        {}{\LWR at patcherror{chemfig}{charge}}
+    \xpretocmd\Charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]}
+        {}{\LWR at patcherror{chemfig}{Charge}}
+    \xapptocmd\charge_c{\end{lateximage}}
+        {}{\LWR at patcherror{chemfig}{charge_c}}
+}{}
+
 \@ifpackagelater{chemfig}{2019/04/18}%
 {% 2019/04/18 or newer
 

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-draftwatermark.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-draftwatermark.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-draftwatermark.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -19,8 +19,10 @@
 
 
 
-\LWR at ProvidesPackageDrop{draftwatermark}[2015/02/19]
+\LWR at ProvidesPackageDrop{draftwatermark}[2020/03/14]
 
+\newcommand{\DraftwatermarkOptions}[1]{}
+\newcommand{\DraftwatermarkStdMark}{}
 \newcommand{\SetWatermarkAngle}[1]{}
 \newcommand{\SetWatermarkColor}[1]{}
 \newcommand{\SetWatermarkLightness}[1]{}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-endnotes.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-endnotes.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-endnotes.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -21,9 +21,18 @@
 \leavevmode
 \makeenmark
 }
+\def\LWR at HTML@@makeenmark{\hbox{\LWR at htmlspan{sup}{\normalfont\theenmark}}}
+\LWR at formatted{@makeenmark}
 
-\def\@makeenmark{\hbox{\LWR at htmlspan{sup}{\normalfont\theenmark}}}
 \def\makeenmark{\@makeenmark}
+\begin{warpMathJax}
+\def\endnotename{endnote}
+\appto\LWR at syncnotenumbers{\LWR at synconenotenumber{LWRendnote}{\theendnote}}
+\appto\LWR at syncnotenames{\LWR at synconenotename{LWRendnote}{\endnotename}}
+\CustomizeMathJax{\def\LWRendnote{1}}
+\CustomizeMathJax{\newcommand{\endnote}[2][\LWRendnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\endnotemark}[1][\LWRendnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
 \endinput
 %%
 %% End of file `lwarp-endnotes.sty'.

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-etoc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-etoc.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-etoc.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -0,0 +1,136 @@
+%%
+%% This is file `lwarp-etoc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `etoc')
+%% 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{etoc}[2019/11/17]
+\def\etocsetlevel#1#2{}
+\def\etocskipfirstprefix{}
+\let\etocthename   \@empty
+\let\etocthenumber \@empty
+\let\etocthepage   \@empty
+\let\etocthelinkedname   \@empty
+\let\etocthelinkednumber \@empty
+\let\etocthelinkedpage   \@empty
+\let\etocthelink   \@firstofone % prior to 1.08j its was \let to \@empty
+\DeclareRobustCommand*{\etocname}  {}
+\DeclareRobustCommand*{\etocnumber}{}
+\DeclareRobustCommand*{\etocpage}  {}
+\DeclareRobustCommand*{\etoclink}  {\@firstofone}
+\DeclareRobustCommand*{\etocifnumbered}{\@firstoftwo}
+\DeclareRobustCommand*{\etociffirst}{\@firstoftwo}
+\DeclareRobustCommand*\etocifwasempty{\@firstoftwo}
+\let\etocaftertitlehook    \@empty
+\let\etocaftercontentshook \@empty
+\def\etoctableofcontents{}
+\newcommand*\localtableofcontents{}
+\newcommand*\localtableofcontentswithrelativedepth[1]{}
+\newcommand\etocsettocstyle[2]{}
+\long\def\etocsetstyle#1#2#3#4#5{}
+\def\etocfontminustwo {\normalfont \LARGE \bfseries}
+\def\etocfontminusone {\normalfont \large \bfseries}
+\def\etocfontzero     {\normalfont \large \bfseries}
+\def\etocfontone      {\normalfont \normalsize \bfseries}
+\def\etocfonttwo      {\normalfont \normalsize}
+\def\etocfontthree    {\normalfont \footnotesize}
+\def\etocsepminustwo  {4ex \@plus .5ex \@minus .5ex}
+\def\etocsepminusone  {4ex \@plus .5ex \@minus .5ex}
+\def\etocsepzero      {2.5ex \@plus .4ex \@minus .4ex}
+\def\etocsepone       {1.5ex \@plus .3ex \@minus .3ex}
+\def\etocseptwo       {.5ex \@plus .1ex \@minus .1ex}
+\def\etocsepthree     {.25ex \@plus .05ex \@minus .05ex}
+\def\etocbaselinespreadminustwo {1}
+\def\etocbaselinespreadminusone {1}
+\def\etocbaselinespreadzero     {1}
+\def\etocbaselinespreadone      {1}
+\def\etocbaselinespreadtwo      {1}
+\def\etocbaselinespreadthree    {.9}
+\def\etocminustwoleftmargin  {1.5em plus 0.5fil}
+\def\etocminustworightmargin {1.5em plus -0.5fil}
+\def\etocminusoneleftmargin  {1em}
+\def\etocminusonerightmargin {1em}
+\def\etoctoclineleaders
+        {\hbox{\normalfont\normalsize\hb at xt@2ex {\hss.\hss}}}
+\def\etocabbrevpagename {p.~}
+\def\etocpartname       {Part}% modified 1.08b
+\def\etocbookname       {Book}
+\def\etocdefaultlines{}
+\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex}
+\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex}
+\def\etoccolumnsep{2em}
+\def\etocmulticolsep{0ex}
+\def\etocmulticolpretolerance{-1}
+\def\etocmulticoltolerance{200}
+\def\etocdefaultnbcol{2}
+\def\etocinnertopsep{2ex}
+\newcommand\etocmulticolstyle[2][]{}
+\def\etocinnerbottomsep{3.5ex}
+\def\etocinnerleftsep{2em}
+\def\etocinnerrightsep{2em}
+\def\etoctoprule{\hrule}
+\def\etocleftrule{\vrule}
+\def\etocrightrule{\vrule}
+\def\etocbottomrule{\hrule}
+\def\etoctoprulecolorcmd{\relax}
+\def\etocbottomrulecolorcmd{\relax}
+\def\etocleftrulecolorcmd{\relax}
+\def\etocrightrulecolorcmd{\relax}
+\newcommand*\etocruledstyle[2][]{}
+\def\etocframedmphook{\relax}
+\long\def\etocbkgcolorcmd{\relax}
+\newcommand*\etocframedstyle[2][]{}
+\def\etocmulticol{}
+\def\etocruled{}
+\def\etocframed{}
+\def\etoclocalmulticol{}
+\def\etoclocalruled{}
+\def\etoclocalframed{}
+\def\etocarticlestyle{}
+\def\etocarticlestylenomarks{}
+\def\etocbookstyle{}
+\def\etocbookstylenomarks{}
+\let\etocreportstyle\etocbookstyle
+\let\etocreportstylenomarks\etocbookstylenomarks
+\def\etocmemoirtoctotocfmt #1#2{}
+\def\etocmemoirstyle{}
+\def\etocscrartclstyle{}
+\let\etocscrbookstyle\etocscrartclstyle
+\let\etocscrreprtstyle\etocscrartclstyle
+\def\etocstandarddisplaystyle{\etocarticlestyle}
+\newcommand*\etocmarkboth[1]{}
+\newcommand*\etocmarkbothnouc[1]{}
+\newcommand\etoctocstyle[3][section]{}
+\newcommand\etoctocstylewithmarks[4][section]{}
+\newcommand\etoctocstylewithmarksnouc[4][section]{}
+\def\etocignoretoctocdepth{}
+\def\etocsettocdepth[1]{}
+\def\etocdepthtag   #1#{\Etoc at depthtag }
+\def\Etoc at depthtag  #1{}
+\def\etocignoredepthtags {}
+\def\etocobeydepthtags   {}
+\def\etocsettagdepth #1#2{}
+\def\invisibletableofcontents {}
+\def\invisiblelocaltableofcontents{}
+\def\etocsetnexttocdepth #1{}
+\def\etocsetlocaltop #1#{\Etoc at set@localtop}
+\def\Etoc at set@localtop #1{}
+\def\etocstandardlines {}
+\def\etoctoclines      {}
+\let\etocaftertochook    \@empty
+\let\etocbeforetitlehook \@empty
+\appto\tableofcontents{\def\tableofcontents{}}
+\endinput
+%%
+%% End of file `lwarp-etoc.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-etoc.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-luatexko.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-luatexko.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-luatexko.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -0,0 +1,119 @@
+%%
+%% This is file `lwarp-luatexko.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `luatexko')
+%% 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{luatexko}[2020/03/20]
+\newcommand{\LWR at HTML@dotemph}[1]{%
+    \InlineClass[text-emphasis-style: dot]{dotemph}{#1}%
+}
+\LWR at formatted{dotemph}
+
+\newcommand{\LWR at HTML@ruby}[2]{%
+    \LWR at htmltagc{ruby}%
+    \LWR at htmltagc{rb}#1\LWR at htmltagc{/rb}%
+    \LWR at htmltagc{rp}(\LWR at htmltagc{/rp}%
+    \LWR at htmltagc{rt}#2\LWR at htmltagc{/rt}%
+    \LWR at htmltagc{rp})\LWR at htmltagc{/rp}%
+    \LWR at htmltagc{/ruby}%
+}
+\LWR at formatted{ruby}
+\NewDocumentCommand{\LWR at HTML@uline}{+m}{%
+    \InlineClass%
+        (text-decoration:underline; text-decoration-skip: auto)%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {uline}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{uline}
+
+\NewDocumentCommand{\LWR at HTML@uuline}{+m}{%
+    \InlineClass%
+        (%
+            text-decoration:underline; text-decoration-skip: auto;%
+            text-decoration-style:double%
+        )%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {uuline}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{uuline}
+
+\NewDocumentCommand{\LWR at HTML@uwave}{+m}{%
+    \InlineClass%
+        (%
+            text-decoration:underline; text-decoration-skip: auto;%
+            text-decoration-style:wavy%
+        )%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {uwave}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{uwave}
+
+\NewDocumentCommand{\LWR at HTML@sout}{+m}{%
+    \InlineClass%
+        (text-decoration:line-through)%
+        [text-decoration-thickness: \ulinewidth]%
+        {sout}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{sout}
+
+\NewDocumentCommand{\LWR at HTML@xout}{+m}{%
+    \InlineClass%
+        (text-decoration:line-through)%
+        [text-decoration-thickness: \ulinewidth]%
+        {xout}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{xout}
+
+\NewDocumentCommand{\LWR at HTML@dashuline}{+m}{%
+    \InlineClass%
+        (%
+            text-decoration:underline;%
+            text-decoration-skip: auto;%
+            text-decoration-style:dashed%
+        )%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {dashuline}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{dashuline}
+
+\NewDocumentCommand{\LWR at HTML@dotuline}{+m}{%
+    \InlineClass%
+        (%
+            text-decoration:underline;%
+            text-decoration-skip: auto;%
+            text-decoration-style: dotted%
+        )%
+        [%
+            text-underline-offset: \ulinedown ;
+            text-decoration-thickness: \ulinewidth%
+        ]%
+        {dotuline}{\LWR at isolate{#1}}%
+}
+\LWR at formatted{dotuline}
+\endinput
+%%
+%% End of file `lwarp-luatexko.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-luatexko.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginnote.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginnote.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginnote.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -25,6 +25,13 @@
 \newcommand*{\marginfont}{}
 \newcommand*{\raggedleftmarginnote}{}
 \newcommand*{\raggedrightmarginnote}{}
+\appto\LWR at restoreorigformatting{%
+    \RenewDocumentCommand{\marginnote}{+o +m o}{}
+}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\LWRmarginnote}[1][]{}}
+\CustomizeMathJax{\newcommand{\marginnote}[2][]{\qquad{\small\textrm{#2}}\LWRmarginnote}}
+\end{warpMathJax}
 \endinput
 %%
 %% End of file `lwarp-marginnote.sty'.

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccfoots.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccfoots.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccfoots.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -0,0 +1,25 @@
+%%
+%% This is file `lwarp-nccfoots.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `nccfoots')
+%% 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{nccfoots}[2005/02/03]
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\Footnotemark}[1]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\Footnote}[2]{\Footnotemark{#1}}}
+\end{warpMathJax}
+\endinput
+%%
+%% End of file `lwarp-nccfoots.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccfoots.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pagenote.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pagenote.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-pagenote.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -19,6 +19,11 @@
 
 \DeclareOption{page}{}
 \LWR at ProvidesPackagePass{pagenote}[2009/09/03]
+\begin{warpMathJax}
+\appto\LWR at syncnotenumbers{\LWR at synconenotenumber{LWRpagenote}{\thepagenote}}
+\CustomizeMathJax{\def\LWRpagenote{1}}
+\CustomizeMathJax{\newcommand{\pagenote}[2][\LWRpagenote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
 \endinput
 %%
 %% End of file `lwarp-pagenote.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -58,6 +58,18 @@
 \crefname{parnotemark}{paragraph note}{paragraph notes}%
 \Crefname{parnotemark}{Paragraph note}{Paragraph notes}
 }
+\begin{warpMathJax}
+\providecommand{\parnotename}{parnote}
+\appto\LWR at syncnotenumbers{%
+    \addtocounter{parnotemark}{-1}% specific to parnotes
+    \LWR at synconenotenumber{LWRparnote}{\theparnotemark}%
+    \addtocounter{parnotemark}{1}% specific to parnotes
+}
+\appto\LWR at syncnotenames{\LWR at synconenotename{LWRparnote}{\parnotename}}
+\CustomizeMathJax{\def\LWRparnote{1}}
+\CustomizeMathJax{\newcommand{\parnote}[2][\LWRparnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\parnotemark}[1][\LWRparnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
 \endinput
 %%
 %% End of file `lwarp-parnotes.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-patch-memoir.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-patch-memoir.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-patch-memoir.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -256,8 +256,6 @@
 \csletcs{appendixpage*}{appendixpage}
 \renewcommand*{\namedsubappendices}{}
 \renewcommand*{\unnamedsubappendices}{}
-\renewcommand*{\setsecnumdepth}[1]{}% todo tocvsec2
-\renewcommand*{\maxsecnumdepth}[1]{}% todo tocvsec2
 \renewcommand*{\beforebookskip}{}
 \renewcommand*{\afterbookskip}{}
 \renewcommand*{\beforepartskip}{}
@@ -472,8 +470,6 @@
 \renewcommand*{\ensureonecol}{}
 \renewcommand*{\restorefromonecol}{}
 \renewcommand*{\doccoltocetc}{}
-\renewcommand*{\maxtocdepth}[1]{}% tocvsec2
-\renewcommand*{\settocdepth}[1]{}% tocvsec2
 
 \renewcommand{\tocheadstart}{}
 \renewcommand{\printtoctitle}[1]{}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -61,6 +61,13 @@
 \renewenvironment{table*}
                {\@dblfloat{table}}
                {\end at dblfloat}
+\begin{warpMathJax}
+\providecommand{\sidenotename}{sidenote}
+\appto\LWR at syncnotenumbers{\LWR at synconenotenumber{LWRsidenote}{\thesidenote}}
+\appto\LWR at syncnotenames{\LWR at synconenotename{LWRsidenote}{\sidenotename}}
+\CustomizeMathJax{\def\LWRsidenote{1}}
+\CustomizeMathJax{\newcommand{\sidenotemark}[1][\LWRsidenote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
 \endinput
 %%
 %% End of file `lwarp-sidenotes.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-soul.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-soul.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-soul.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -69,6 +69,7 @@
 \newcommand*{\resetul}{}
 \newcommand*{\setuldepth}[1]{}
 \newcommand*{\setuloverlap}[1]{}
+\newcommand*{\<}{}
 \newcommand*{\setulcolor}[1]{\renewcommand{\LWR at soululcolor}{#1}}
 \newcommand*{\setstcolor}[1]{\renewcommand{\LWR at soulstcolor}{#1}}
 \newcommand*{\sethlcolor}[1]{\renewcommand{\LWR at soulhlcolor}{#1}}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-syntonly.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-syntonly.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-syntonly.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -22,6 +22,8 @@
 \newcommand*{\syntaxonly}{}
 
 \@onlypreamble\syntaxonly
+
+\def\nopages@{}
 \endinput
 %%
 %% End of file `lwarp-syntonly.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -55,6 +55,7 @@
         (text-decoration:line-through)%
         {xout}{\LWR at isolate{#1}}%
 }
+\LWR at formatted{xout}
 
 \NewDocumentCommand{\LWR at HTML@dashuline}{+m}{%
     \InlineClass%
@@ -65,7 +66,7 @@
         )%
         {dashuline}{\LWR at isolate{#1}}%
 }
-\LWR at formatted{xout}
+\LWR at formatted{dashuline}
 
 \NewDocumentCommand{\LWR at HTML@dotuline}{+m}{%
     \InlineClass%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-xpinyin.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-xpinyin.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-xpinyin.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -15,14 +15,59 @@
 %%   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{xpinyin}[2018/01/28]
-\RenewDocumentEnvironment{pinyinscope}{O{}}{}{}
-
-\RenewDocumentCommand{\xpinyin}{s O{} m}{%
-    \IfBooleanTF{#1}{#3}{\@firstoftwo#3}%
+\LWR at ProvidesPackagePass{xpinyin}[2019-04-07]
+\ExplSyntaxOn
+\cs_new_protected_nopar:Npn \LWR at HTML@__xpinyin_make_pinyin_box:nnn #1#2#3
+{
+    \color_group_begin: \color_ensure_current:
+    \l__xpinyin_pinyin_box_hook_tl
+    \renewcommand*{\l__xpinyin_ratio_tl}{1}% for pdftotext
+    \__xpinyin_select_font:
+    \clist_if_exist:cTF { c__xpinyin_multiple_ #1 _clist }
+        { \l__xpinyin_multiple_tl \l__xpinyin_format_tl }
+        { \l__xpinyin_format_tl }
+    \ifdefempty{\l__xpinyin_format_tl}
+        {#3}
+        {\LWR at textcurrentcolor{#3}}
+    \color_group_end:
 }
+\LWR at formatted{__xpinyin_make_pinyin_box:nnn}
 
-\RenewDocumentCommand{\enablepinyin}{}{}
+\cs_new_protected_nopar:Npn \LWR at HTML@__xpinyin_CJKsymbol:nn #1#2
+  {
+    \__xpinyin_leavevmode:
+    \LWR at htmltagc{ruby}
+    \LWR at htmltagc{rb}
+    \__xpinyin_save_CJKsymbol:n {#2}\null% \null removes extra space
+    \LWR at htmltagc{/rb\space}
+    \LWR at htmltagc{rp}(\LWR at htmltagc{/rp\space}
+    \LWR at htmltagc{rt}
+    \__xpinyin_make_pinyin_box:nnn {#1} {#2} { \use:c { c__xpinyin_ #1 _tl } }
+    \LWR at htmltagc{/rt\space}
+    \LWR at htmltagc{rp})\LWR at htmltagc{/rp\space}
+    \LWR at htmltagc{/ruby\space}\null
+  }
+\LWR at formatted{__xpinyin_CJKsymbol:nn}
+
+\cs_new_protected_nopar:Npn \LWR at HTML@__xpinyin_single_CJKsymbol:nn #1#2
+  {
+    \__xpinyin_leavevmode:
+    \LWR at htmltagc{ruby}
+    \LWR at htmltagc{rb}
+    \__xpinyin_save_CJKsymbol:n {#1}\null% \null removes extra space
+    \LWR at htmltagc{/rb\space}
+    \LWR at htmltagc{rp}(\LWR at htmltagc{/rp\space}
+    \LWR at htmltagc{rt}
+    \__xpinyin_make_pinyin_box:xnn
+      { \__xpinyin_to_unicode:n {#1} } {#1} { \__xpinyin_pinyin:n {#2} }
+    \LWR at htmltagc{/rt\space}
+    \LWR at htmltagc{rp})\LWR at htmltagc{/rp\space}
+    \LWR at htmltagc{/ruby\space}\null
+  }
+\LWR at formatted{__xpinyin_single_CJKsymbol:nn}
+
+\ExplSyntaxOff
+\renewcommand*{\LWR at disablepinyin}{\disablepinyin}
 \endinput
 %%
 %% End of file `lwarp-xpinyin.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2020-03-25 21:10:48 UTC (rev 54545)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2020-03-25 21:11:36 UTC (rev 54546)
@@ -17,7 +17,7 @@
 %% version 2005/12/01 or later.
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{lwarp}
-    [2020/03/04 v0.81  Allows LaTeX to directly produce HTML5 output.]
+    [2020/03/25 v0.82  Allows LaTeX to directly produce HTML5 output.]
 
 
 
@@ -82,9 +82,9 @@
 \@ifpackageloaded{#1}
 {}
 {
-\PackageError{lwarp}
-{Package #1 must be loaded before lwarp}
-{Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.}
+    \PackageError{lwarp}
+    {Package #1 must be loaded before lwarp}
+    {Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.}
 }
 }
 
@@ -295,6 +295,7 @@
 \LWR at loadafter{eqparbox}
 \LWR at loadafter{errata}
 \LWR at loadafter{eso-pic}
+\LWR at loadafter{etoc}
 \LWR at loadafter{eurosym}
 \LWR at loadafter{everypage}
 \LWR at loadafter{everyshi}
@@ -432,6 +433,7 @@
 \LWR at loadafter{nameref}
 \LWR at loadafter{natbib}
 \LWR at notmemoirloadafter{nccfancyhdr}
+\LWR at loadafter{nccfoots}
 \LWR at loadafter{nccmath}
 \LWR at notmemoirloadafter{needspace}
 \LWR at loadafter{newtxmath}
@@ -559,6 +561,7 @@
 \LWR at loadafter{subsupscripts}
 \LWR at loadafter{supertabular}
 \LWR at loadafter{svg}
+\LWR at loadafter{syntonly}
 \LWR at loadafter{t1inc}
 \LWR at loadafter{tabfigures}
 \LWR at loadafter{tabls}
@@ -749,6 +752,7 @@
 \@ifpackageloaded{xeCJK}{
     \renewcommand{\LWR at isolate}[1]{\null#1\null}%
 }{}
+\newcommand*{\LWR at disablepinyin}{}
 \newcommand*{\LWR at forceemptyline}{%
     \LWR at origrule{0pt}{1\baselineskip}%
     \LWR at orignewline%
@@ -4193,7 +4197,7 @@
 
 -- Copyright 2016-2020 Brian Dunn
 
-printversion = "v0.81"
+printversion = "v0.82"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -5304,6 +5308,8 @@
 
 \newcommand*{\LWR at htmlsectionfilename}[1]{%
 \LWR at traceinfo{LWR at htmlsectionfilename A !\detokenize{#1}!}%
+\begingroup%
+\LWR at disablepinyin%
 \LWR at sanitize{#1}%
 \LWR at traceinfo{about to compare with ??}%
 \ifthenelse{\equal{\LWR at sanitized}{??}}%
@@ -5335,6 +5341,7 @@
     }%
 }%
 \LWR at traceinfo{LWR at htmlsectionfilename Z}%
+\endgroup%
 }
 
 \newcommand*{\LWR at htmlrefsectionfilename}[1]{%
@@ -6093,6 +6100,7 @@
         \csname p at footnote\endcsname\@thefnmark%
     }% @currentlabel
     \color at begingroup%
+    \LWR at disablepinyin%
     \renewrobustcmd{\textsuperscript}[1]{\LWR at htmlspan{sup}{##1}}%
     \ifthenelse{%
         \boolean{LWR at doingstartpars} \AND%
@@ -6486,10 +6494,28 @@
 \typeout{---}
 }
 
+\providecommand{\footnotename}{footnote}
+
+\end{warpHTML}
+
 \begin{warpMathJax}
+\xdef\LWR at customizedMathJax{\LWR at customizedMathJax%
+    \LWRbackslash(%
+    \LWRbackslash{}newcommand%
+    \{\LWRbackslash{}footnotename\}%
+    \{\footnotename\}%
+    \LWRbackslash)\par%
+}
+\end{warpMathJax}
+
+\begin{warpMathJax}
+\CustomizeMathJax{\def\LWRfootnote{1}}
+\CustomizeMathJax{\newcommand{\footnote}[2][\LWRfootnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\footnotemark}[1][\LWRfootnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+
+\begin{warpMathJax}
 \CustomizeMathJax{\newcommand\ensuremath[1]{#1}}
-\CustomizeMathJax{\newcommand\footnote[2][]{\text{( Footnote #1 )}}}
-\CustomizeMathJax{\newcommand\footnotemark[1][]{\text{( Footnote #1 )}}}
 \CustomizeMathJax{% absorb two optional arguments
     \newcommand{\LWRframebox}[2][]{\fbox{#2}}
     \newcommand{\framebox}[1][]{\LWRframebox}
@@ -6503,6 +6529,8 @@
 \CustomizeMathJax{\newcommand{\luatexdirectlua}[1]{\text{(directlua)}}}
 \end{warpMathJax}
 
+\begin{warpHTML}% due to warpMathJax
+
 \newcommand{\LWR at customizeMathJax}{%
 \ifbool{mathjax}{
 \LWR at stoppars
@@ -10062,11 +10090,12 @@
     \LWR at traceinfo{LWR at myshorttoc: #1}%
     \LWR at ensuredoingapar%
     \IfFileExists{\jobname.#1}{%
-    \LWR at traceinfo{LWR at myshorttoc: loading}%
-    \begingroup%
-    \makeatletter%
-    \@input{\jobname.#1}%
-    \endgroup%
+        \LWR at traceinfo{LWR at myshorttoc: loading}%
+        \begingroup%
+        \makeatletter%
+        \LWR at disablepinyin%
+        \@input{\jobname.#1}%
+        \endgroup%
     }%
     {}%
     \LWR at traceinfo{LWR at myshorttoc: done}%
@@ -10747,7 +10776,11 @@
         }%
         {%
             \LWR at traceinfo{LWR at subsingledollar: Mathjax}%
-            {\textbackslash(\LWR at HTMLsanitize{#4}\textbackslash)}%
+            {%
+                \textbackslash(%
+                \LWR at HTMLsanitize{#4}%
+                \textbackslash)%
+            }%
         }% mathjax
         {% not mathjax
             \LWR at traceinfo{%
@@ -10913,11 +10946,13 @@
 \newcounter{LWR at nextequation}
 \newcommand*{\LWR at syncmathjax}{%
     \ifcsdef{thechapter}{
+        \LWR at stoppars%
         \InlineClass{hidden}{
             \textbackslash(
             \textbackslash{}seteqsection \{\thechapter\}
             \textbackslash)
         }
+        \LWR at startpars%
     }
     {}% not using chapters
     \ifthenelse{\cnttest{\value{equation}}>0}
@@ -10924,11 +10959,13 @@
     {
         \setcounter{LWR at nextequation}{\value{equation}}
         \addtocounter{LWR at nextequation}{1}
+        \LWR at stoppars%
         \InlineClass{hidden}{
             \textbackslash(
             \textbackslash{}seteqnumber \{\arabic{LWR at nextequation}\}
             \textbackslash)
         }
+        \LWR at startpars%
     }{}% not eq > 0
 }
 \NewDocumentCommand{\LWR at hidelatexequation}{m +m}{%
@@ -10964,7 +11001,7 @@
 
     \ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
     {
-        \LWR at syncmathjax
+        \LWR at syncmathjax%
         \LWR at hidelatexequation{#2}{#1}
     }
     {% not mathjax
@@ -11001,12 +11038,34 @@
 \newcommand*{\LWR at doendequation}[1]{%
     \ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
     {%
-        \LWR at addmathjax{#1}{\BODY}%
+        \IfSubStr{\detokenize\expandafter{\BODY}}{\detokenize{note}}{%
+            \InlineClass{hidden}{\LWR at syncnotenumbers}%
+            \LWR at addmathjax{#1}{\BODY}%
+            \InlineClass{hidden}{\LWR at syncnotenames}%
+        }{%
+            \LWR at addmathjax{#1}{\BODY}%
+        }%
     }{}%
 
     \gdef\LWR at ThisAltText{}%
 }
 
+\newcommand*{\LWR at synconenotenumber}[2]{%
+    \textbackslash(
+    \textbackslash{}def\textbackslash{}#1\{#2\}
+    \textbackslash)
+}
+
+\newcommand*{\LWR at syncnotenumbers}{\LWR at synconenotenumber{LWRfootnote}{\thefootnote}}
+
+\newcommand*{\LWR at synconenotename}[2]{%
+    \textbackslash(
+    \textbackslash{}def\textbackslash{}#1\{#2\}
+    \textbackslash)
+}
+
+\newcommand*{\LWR at syncnotenames}{\LWR at synconenotename{LWRfootnote}{\footnotename}}
+
 \AtBeginDocument{
 \let\equation\relax
 \let\endequation\relax
@@ -11520,6 +11579,8 @@
 
 \LWR at PreloadedPackage{lltjext}
 
+\LWR at PreloadedPackage{luatexko}
+
 \end{warpHTML}
 
 



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