summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-03-25 21:11:36 +0000
committerKarl Berry <karl@freefriends.org>2020-03-25 21:11:36 +0000
commit019026f69bab4296c0d65e507b13b3904b866382 (patch)
treeabed3bd3b078534234d42938579bca78e906b0ad /Master/texmf-dist/source/latex/lwarp/lwarp.dtx
parented06debf5f768921e0fe0fd466866d881c2d4ea6 (diff)
lwarp (25mar20)
git-svn-id: svn://tug.org/texlive/trunk@54546 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/lwarp/lwarp.dtx')
-rw-r--r--Master/texmf-dist/source/latex/lwarp/lwarp.dtx2083
1 files changed, 1407 insertions, 676 deletions
diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
index d0f16200b96..a4c164964e2 100644
--- a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
+++ b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
@@ -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 @@ if \texttt{FileDepth} allows:
\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 @@ due to the limited number of symbols which are available.
\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 @@ which defaults to:
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 @@ before and after each image.
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 @@ seamlessly integrating with the rest of the \LaTeX\ code.
\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,30 +1254,33 @@ Limitations when using \brand{MathJax} include:
\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.
\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 @@ Limitations when using \brand{MathJax} include:
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 @@ Limitations when using \brand{MathJax} include:
\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 @@ Examples:
\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 @@ Or, use a short name for the \TOC\ entry without the math, or use \cs{texorpdfst
\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 @@ wrap both inside a single \env{lateximage}:
\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 @@ or the packages \pkg{multirow}, \pkg{longtable}, \pkg{supertabular}, or \pkg{xta
\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 @@ generating the \SVG\ image.
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 @@ This boolean may be tested by the user for later use.
%<*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 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
%
% \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 @@ This boolean may be tested by the user for later use.
% \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@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@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 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
% 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 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
% \subsubsection{\pkg{endnotes} package}
%
% \DescribePackage{endnotes}
+% \trouble{endnotes=\pkg{endnotes}>numbering}
% \limitsendnotes
%
%
@@ -9412,7 +9474,7 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
%
% \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 @@ This boolean may be tested by the user for later use.
\@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 @@ This boolean may be tested by the user for later use.
% \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@loadafter}.}
%
% The following packages must be loaded after \pkg{lwarp}:
% ^^A *loadafter
@@ -11916,6 +11979,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{eqparbox}
\LWR@loadafter{errata}
\LWR@loadafter{eso-pic}
+\LWR@loadafter{etoc}
\LWR@loadafter{eurosym}
\LWR@loadafter{everypage}
\LWR@loadafter{everyshi}
@@ -12064,6 +12128,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{nameref}
\LWR@loadafter{natbib}
\LWR@notmemoirloadafter{nccfancyhdr}
+\LWR@loadafter{nccfoots}
\LWR@loadafter{nccmath}
\LWR@notmemoirloadafter{needspace}
% newclude must be loaded before lwarp
@@ -12195,6 +12260,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{subsupscripts}
\LWR@loadafter{supertabular}
\LWR@loadafter{svg}
+\LWR@loadafter{syntonly}
\LWR@loadafter{t1inc}
\LWR@loadafter{tabfigures}
\LWR@loadafter{tabls}
@@ -12552,6 +12618,16 @@ This boolean may be tested by the user for later use.
% \end{macro}
%
%
+% \begin{macro}{\LWR@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@disablepinyin}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \subsection{Inserting vertical space}
%
% \begin{macro}{\LWR@forceemptyline} Extra vertical space in the \HTML\ output.
@@ -12925,7 +13001,7 @@ This boolean may be tested by the user for later use.
% \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 @@ This boolean may be tested by the user for later use.
% 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@formattedenv} instead of \cs{LWR@formatted}.
@@ -14828,6 +14905,7 @@ This boolean may be tested by the user for later use.
% 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@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 @@ page_compositor "."
% 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 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.81"
+printversion = "v0.82"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -19811,7 +19889,7 @@ end -- not --version
% \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 @@ end -- not --version
% \begin{macrocode}
\newcommand*{\LWR@htmlsectionfilename}[1]{%
\LWR@traceinfo{LWR@htmlsectionfilename A !\detokenize{#1}!}%
+\begingroup%
+% \end{macrocode}
+%
+% Disable CJK \pkg{xpinyin} while generating file names.
+% \begin{macrocode}
+\LWR@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 @@ end -- not --version
}%
}%
\LWR@traceinfo{LWR@htmlsectionfilename Z}%
+\endgroup%
}
% \end{macrocode}
% \end{macro}
@@ -21967,11 +22053,19 @@ end -- not --version
% \begin{macrocode}
\color@begingroup%
% \end{macrocode}
-% Use \HTML\ superscripts in the footnote even inside a \env{lateximage}:
+%
+% Disable CJK \pkg{xpinyin} while generating footnotes.
+% \begin{macrocode}
+ \LWR@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@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 @@ end -- not --version
%
% 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@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@customizedMathJax{\LWR@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 @@ end -- not --version
\CustomizeMathJax{\newcommand{\directlua}[1]{\text{(directlua)}}}
\CustomizeMathJax{\newcommand{\luatexdirectlua}[1]{\text{(directlua)}}}
\end{warpMathJax}
+
+\begin{warpHTML}% due to warpMathJax
% \end{macrocode}
@@ -31633,20 +31768,26 @@ end -- not --version
% Only if the file exists:
% \begin{macrocode}
\IfFileExists{\jobname.#1}{%
- \LWR@traceinfo{LWR@myshorttoc: loading}%
+ \LWR@traceinfo{LWR@myshorttoc: loading}%
% \end{macrocode}
%
% Many of the commands in the file will have |@| characters in them, so |@|
% \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@disablepinyin%
+% \end{macrocode}
+%
% Read in the \TOC\ file:
% \begin{macrocode}
- \@input{\jobname.#1}%
- \endgroup%
+ \@input{\jobname.#1}%
+ \endgroup%
}%
{}%
\LWR@traceinfo{LWR@myshorttoc: done}%
@@ -33296,7 +33437,11 @@ end -- not --version
% \begin{macrocode}
{%
\LWR@traceinfo{LWR@subsingledollar: Mathjax}%
- {\textbackslash(\LWR@HTMLsanitize{#4}\textbackslash)}%
+ {%
+ \textbackslash(%
+ \LWR@HTMLsanitize{#4}%
+ \textbackslash)%
+ }%
}% mathjax
% \end{macrocode}
% For SVG, print the math inside a \env{lateximage},
@@ -33632,13 +33777,16 @@ end -- not --version
% \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@stoppars%
\InlineClass{hidden}{
\textbackslash(
\textbackslash{}seteqsection \{\thechapter\}
\textbackslash)
}
+ \LWR@startpars%
}
{}% not using chapters
% \end{macrocode}
@@ -33655,12 +33803,15 @@ end -- not --version
% \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@stoppars%
\InlineClass{hidden}{
\textbackslash(
\textbackslash{}seteqnumber \{\arabic{LWR@nextequation}\}
\textbackslash)
}
+ \LWR@startpars%
}{}% not eq > 0
}
% \end{macrocode}
@@ -33786,7 +33937,7 @@ end -- not --version
% Print commands to syncronize \brand{MathJax}'s equation number and format
% to the current \LaTeX\ chapter/section and equation number:
% \begin{macrocode}
- \LWR@syncmathjax
+ \LWR@syncmathjax%
% \end{macrocode}
% Print the \LaTeX\ math inside an \HTML\ comment:
% \begin{macrocode}
@@ -33849,14 +34000,22 @@ end -- not --version
}
% \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@doendequation}[1]{%
\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
{%
- \LWR@addmathjax{#1}{\BODY}%
+ \IfSubStr{\detokenize\expandafter{\BODY}}{\detokenize{note}}{%
+ \InlineClass{hidden}{\LWR@syncnotenumbers}%
+ \LWR@addmathjax{#1}{\BODY}%
+ \InlineClass{hidden}{\LWR@syncnotenames}%
+ }{%
+ \LWR@addmathjax{#1}{\BODY}%
+ }%
}{}%
% \end{macrocode}
@@ -33869,6 +34028,51 @@ end -- not --version
% \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@syncnotenumbers} and \cs{LWR@syncnotenames}.
+%
+% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
+%
+% \begin{macro}{\LWR@synconenotenumber} \marg{\brand{MathJax} variable} \marg{mark}
+% \begin{macrocode}
+\newcommand*{\LWR@synconenotenumber}[2]{%
+ \textbackslash(
+ \textbackslash{}def\textbackslash{}#1\{#2\}
+ \textbackslash)
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR@syncnotenumbers} Assignments to make.
+% \begin{macrocode}
+\newcommand*{\LWR@syncnotenumbers}{\LWR@synconenotenumber{LWRfootnote}{\thefootnote}}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR@synconenotename} \marg{\brand{MathJax} variable} \marg{text}
+% \begin{macrocode}
+\newcommand*{\LWR@synconenotename}[2]{%
+ \textbackslash(
+ \textbackslash{}def\textbackslash{}#1\{#2\}
+ \textbackslash)
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR@syncnotenames} Assignments to make.
+% \begin{macrocode}
+\newcommand*{\LWR@syncnotenames}{\LWR@synconenotename{LWRfootnote}{\footnotename}}
+% \end{macrocode}
+% \end{macro}
+
+
% Remove existing \env{equation} environment:
% \begin{macrocode}
\AtBeginDocument{
@@ -35155,6 +35359,12 @@ end -- not --version
\LWR@PreloadedPackage{lltjext}
% \end{macrocode}
+% \pkg{luatexko} must be loaded before \pkg{lwarp}.
+% \begin{macrocode}
+\LWR@PreloadedPackage{luatexko}
+% \end{macrocode}
+
+
% \begin{macrocode}
\end{warpHTML}
% \end{macrocode}
@@ -40098,9 +40308,10 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
%
% 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 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
%
% 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 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
%
% 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,21 +43986,33 @@ s%
% 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@ProvidesPackagePass{chemfig}
+\LWR@ProvidesPackagePass{chemfig}[2020/03/05]
% \end{macrocode}
% \begin{macrocode}
\catcode`\_=11
+\@ifpackagelater{chemfig}{2020/03/05}
+{
+ \xpretocmd\charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]}
+ {}{\LWR@patcherror{chemfig}{charge}}
+ \xpretocmd\Charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]}
+ {}{\LWR@patcherror{chemfig}{Charge}}
+ \xapptocmd\charge_c{\end{lateximage}}
+ {}{\LWR@patcherror{chemfig}{charge_c}}
+}{}
+
\@ifpackagelater{chemfig}{2019/04/18}%
{% 2019/04/18 or newer
+
\LetLtxMacro\LWR@chemfig@origchemfig\chemfig
\renewcommand*{\chemfig}[2][]{%
@@ -45499,6 +45722,8 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+%
+%
% \iffalse
%<*CJK>
% \fi
@@ -46735,6 +46960,7 @@ name = \chemmacros_translate:n {scheme-name}
% \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 @@ name = \chemmacros_translate:n {scheme-name}
% \codehtml
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{draftwatermark}[2015/02/19]
+\LWR@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 @@ name = \chemmacros_translate:n {scheme-name}
\makeenmark
% }
}
+% \end{macrocode}
+%
+% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Fix: Mark in print mode.}
+% \begin{macrocode}
+\def\LWR@HTML@@makeenmark{\hbox{\LWR@htmlspan{sup}{\normalfont\theenmark}}}
+\LWR@formatted{@makeenmark}
-\def\@makeenmark{\hbox{\LWR@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@syncnotenumbers{\LWR@synconenotenumber{LWRendnote}{\theendnote}}
+\appto\LWR@syncnotenames{\LWR@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 @@ name = \chemmacros_translate:n {scheme-name}
%
%
% \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@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@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@depthtag }
+\def\Etoc@depthtag #1{}
+\def\etocignoredepthtags {}
+\def\etocobeydepthtags {}
+\def\etocsettagdepth #1#2{}
+\def\invisibletableofcontents {}
+\def\invisiblelocaltableofcontents{}
+\def\etocsetnexttocdepth #1{}
+\def\etocsetlocaltop #1#{\Etoc@set@localtop}
+\def\Etoc@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,6 +56745,144 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
%
+%
+%
+% \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@ProvidesPackagePass{luatexko}[2020/03/20]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\LWR@HTML@dotemph}[1]{%
+% \uline{#1}%
+ \InlineClass[text-emphasis-style: dot]{dotemph}{#1}%
+}
+\LWR@formatted{dotemph}
+
+\newcommand{\LWR@HTML@ruby}[2]{%
+ \LWR@htmltagc{ruby}%
+ \LWR@htmltagc{rb}#1\LWR@htmltagc{/rb}%
+ \LWR@htmltagc{rp}(\LWR@htmltagc{/rp}%
+ \LWR@htmltagc{rt}#2\LWR@htmltagc{/rt}%
+ \LWR@htmltagc{rp})\LWR@htmltagc{/rp}%
+ \LWR@htmltagc{/ruby}%
+}
+\LWR@formatted{ruby}
+% \end{macrocode}
+%
+% The following is modified from \pkg{lwarp-ulem}:
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@HTML@uline}{+m}{%
+ \InlineClass%
+ (text-decoration:underline; text-decoration-skip: auto)%
+ [%
+ text-underline-offset: \ulinedown ;
+ text-decoration-thickness: \ulinewidth%
+ ]%
+ {uline}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{uline}
+
+\NewDocumentCommand{\LWR@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@isolate{#1}}%
+}
+\LWR@formatted{uuline}
+
+\NewDocumentCommand{\LWR@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@isolate{#1}}%
+}
+\LWR@formatted{uwave}
+
+\NewDocumentCommand{\LWR@HTML@sout}{+m}{%
+ \InlineClass%
+ (text-decoration:line-through)%
+ [text-decoration-thickness: \ulinewidth]%
+ {sout}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{sout}
+
+\NewDocumentCommand{\LWR@HTML@xout}{+m}{%
+ \InlineClass%
+ (text-decoration:line-through)%
+ [text-decoration-thickness: \ulinewidth]%
+ {xout}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{xout}
+
+\NewDocumentCommand{\LWR@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@isolate{#1}}%
+}
+\LWR@formatted{dashuline}
+
+\NewDocumentCommand{\LWR@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@isolate{#1}}%
+}
+\LWR@formatted{dotuline}
+% \end{macrocode}
+%
+% \iffalse
+%</luatexko>
+% \fi
+%
+%
+%
% \iffalse
%<*luatodonotes>
% \fi
@@ -56970,6 +57519,22 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\newcommand*{\raggedrightmarginnote}{}
% \end{macrocode}
%
+% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Fix: Neutralize in print mode.}
+% \begin{macrocode}
+\appto\LWR@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 @@ background:
% 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,6 +60649,44 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
%
%
+% \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@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>
@@ -62048,6 +62651,24 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\LWR@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@syncnotenumbers{\LWR@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@syncnotenames{\LWR@synconenotename{LWRpagenote}{\pagenotename}}
+% \end{sourceverb}
+%
+%
% \iffalse
%</pagenote>
% \fi
@@ -62444,6 +63065,26 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
}
% \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@syncnotenumbers{%
+ \addtocounter{parnotemark}{-1}% specific to parnotes
+ \LWR@synconenotenumber{LWRparnote}{\theparnotemark}%
+ \addtocounter{parnotemark}{1}% specific to parnotes
+}
+\appto\LWR@syncnotenames{\LWR@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 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
{\end@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@syncnotenumbers{\LWR@synconenotenumber{LWRsidenote}{\thesidenote}}
+\appto\LWR@syncnotenames{\LWR@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 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \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 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\newcommand*{\resetul}{}
\newcommand*{\setuldepth}[1]{}
\newcommand*{\setuloverlap}[1]{}
+\newcommand*{\<}{}
% \end{macrocode}
%
% Set colors:
@@ -69445,6 +70112,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\@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 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \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 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
(text-decoration:line-through)%
{xout}{\LWR@isolate{#1}}%
}
+\LWR@formatted{xout}
\NewDocumentCommand{\LWR@HTML@dashuline}{+m}{%
\InlineClass%
@@ -73206,7 +73880,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
)%
{dashuline}{\LWR@isolate{#1}}%
}
-\LWR@formatted{xout}
+\LWR@formatted{dashuline}
\NewDocumentCommand{\LWR@HTML@dotuline}{+m}{%
\InlineClass%
@@ -75761,25 +76435,83 @@ height:\LWR@printlength{\LWR@tempheight}%
% \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@ProvidesPackagePass{xpinyin}[2018/01/28]
+\LWR@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{}}{}{}
+\ExplSyntaxOn
+\cs_new_protected_nopar:Npn \LWR@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@textcurrentcolor{#3}}
+ \color_group_end:
+}
+\LWR@formatted{__xpinyin_make_pinyin_box:nnn}
+
+\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_CJKsymbol:nn #1#2
+ {
+ \__xpinyin_leavevmode:
+ \LWR@htmltagc{ruby}
+ \LWR@htmltagc{rb}
+ \__xpinyin_save_CJKsymbol:n {#2}\null% \null removes extra space
+ \LWR@htmltagc{/rb\space}
+ \LWR@htmltagc{rp}(\LWR@htmltagc{/rp\space}
+ \LWR@htmltagc{rt}
+ \__xpinyin_make_pinyin_box:nnn {#1} {#2} { \use:c { c__xpinyin_ #1 _tl } }
+ \LWR@htmltagc{/rt\space}
+ \LWR@htmltagc{rp})\LWR@htmltagc{/rp\space}
+ \LWR@htmltagc{/ruby\space}\null
+ }
+\LWR@formatted{__xpinyin_CJKsymbol:nn}
-\RenewDocumentCommand{\xpinyin}{s O{} m}{%
- \IfBooleanTF{#1}{#3}{\@firstoftwo#3}%
-}
+\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_single_CJKsymbol:nn #1#2
+ {
+ \__xpinyin_leavevmode:
+ \LWR@htmltagc{ruby}
+ \LWR@htmltagc{rb}
+ \__xpinyin_save_CJKsymbol:n {#1}\null% \null removes extra space
+ \LWR@htmltagc{/rb\space}
+ \LWR@htmltagc{rp}(\LWR@htmltagc{/rp\space}
+ \LWR@htmltagc{rt}
+ \__xpinyin_make_pinyin_box:xnn
+ { \__xpinyin_to_unicode:n {#1} } {#1} { \__xpinyin_pinyin:n {#2} }
+ \LWR@htmltagc{/rt\space}
+ \LWR@htmltagc{rp})\LWR@htmltagc{/rp\space}
+ \LWR@htmltagc{/ruby\space}\null
+ }
+\LWR@formatted{__xpinyin_single_CJKsymbol:nn}
-\RenewDocumentCommand{\enablepinyin}{}{}
+\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@disablepinyin}{\disablepinyin}
% \end{macrocode}
%
% \iffalse
@@ -76792,6 +77524,7 @@ height:\LWR@printlength{\LWR@tempheight}%
}
% \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 @@ height:\LWR@printlength{\LWR@tempheight}%
\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 @@ height:\LWR@printlength{\LWR@tempheight}%
% \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 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\ensureonecol}{}
\renewcommand*{\restorefromonecol}{}
\renewcommand*{\doccoltocetc}{}
-\renewcommand*{\maxtocdepth}[1]{}% tocvsec2
-\renewcommand*{\settocdepth}[1]{}% tocvsec2
\renewcommand{\tocheadstart}{}
\renewcommand{\printtoctitle}[1]{}