texlive[55405] trunk: lwarp (3jun20)

commits+karl at tug.org commits+karl at tug.org
Wed Jun 3 23:24:43 CEST 2020


Revision: 55405
          http://tug.org/svn/texlive?view=revision&revision=55405
Author:   karl
Date:     2020-06-03 23:24:42 +0200 (Wed, 03 Jun 2020)
Log Message:
-----------
lwarp (3jun20)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
    trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
    trunk/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
    trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
    trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
    trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-cancel.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-embrac.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mathtools.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mhchem.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccmath.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-physics.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-statex2.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-citeref.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-drftcite.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fnpara.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-jurabib.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multibib.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-splitbib.sty

Modified: trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2020-06-03 21:24:42 UTC (rev 55405)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2020 Brian Dunn
 
-printversion = "v0.86"
+printversion = "v0.87"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()

Modified: trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2020-06-03 21:24:42 UTC (rev 55405)
@@ -1,5 +1,5 @@
 
-LaTeX lwarp package v0.86   README.txt
+LaTeX lwarp package v0.87   README.txt
 
 Files included are:
 

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

Modified: trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2020-06-03 21:24:42 UTC (rev 55405)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2020 Brian Dunn
 
-printversion = "v0.86"
+printversion = "v0.87"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2020-06-03 21:24:42 UTC (rev 55405)
@@ -16,7 +16,7 @@
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{lwarp}
-%<package>    [2020/05/12 v0.86  Allows LaTeX to directly produce HTML5 output.]
+%<package>    [2020/06/03 v0.87  Allows LaTeX to directly produce HTML5 output.]
 %
 %<*driver>
 \documentclass{ltxdoc}
@@ -87,6 +87,7 @@
 
 \usepackage[log-declarations=false]{xparse}
 
+\usepackage{ifptex}% *8* remove later
 
 
 \usepackage[lwarpmk]{lwarp}
@@ -1505,20 +1506,45 @@
 To maintain compile speed, use the \env{warpMathJax} environment,
 and use a separate math environment for each definition.
 
-\DescribeMacro{\DeclareIfstar}
-To define a starred macro, instead of:
+\DescribeMacro{\ifstar}
+For \brand{MathJax}, use \cs{ifstar} instead of \cs{@ifstar}:
+\gindex{starred macros}
+\gindex{ifnextstar=\cs{@ifnextstar} with \brand{MathJax}}
+\gindex{@ifstar=\cs{@ifstar} with \brand{MathJax}}
 \gindex{mathjax=\brand{MathJax}>starred macros}
 \trouble{mathjax=\brand{MathJax}>starred macros}
 \trouble{math>starred macros and mathjax=\brand{MathJax}}
+\gindex{mathjax=\brand{MathJax}>@ifstar=\cs{@ifstar} macros}
+\trouble{mathjax=\brand{MathJax}>@ifstar=\cs{@ifstar} macros}
+\trouble{math>@ifstar=\cs{@ifstar} macros and \brand{MathJax}}
 \begin{sourcedisplay}
-\cs{CustomizeMathJax}\{\cs{def}\cs{myname}\{\cs{@ifstar}\cs{starredaction}\cs{unstarredaction}\}\}
+\cs{CustomizeMathJax}\{ \\
+    \fquad \cs{def}\cs{myname}\{\\
+        \fqquad \cs{ifstar}\cs{starredaction}\cs{unstarredaction} \\
+        \fqquad \% \textred{(Do not place anything after!)} \\
+    \fquad \}
+\}
 \end{sourcedisplay}
-use:
+
+\DescribeMacro{\ifnextchar}
+For \brand{MathJax}, use \cs{ifnextchar} instead of \cs{@ifnextchar}:
+\gindex{@ifnextchar=\cs{@ifnextchar} with \brand{MathJax}}
+\gindex{ifnextchar=\cs{@ifnextchar} with \brand{MathJax}}
+\gindex{mathjax=\brand{MathJax}>@ifnextchar=\cs{@ifnextchar} macros}
+\trouble{mathjax=\brand{MathJax}>@ifnextchar=\cs{@ifnextchar} macros}
+\trouble{math>@ifnextchar=\cs{@ifnextchar} macros and \brand{MathJax}}
 \begin{sourcedisplay}
-\cs{CustomizeMathJax}\{\cs{DeclareIfstar}\{\cs{myname}\}\{\cs{starredaction}\}\{\cs{unstarredaction}\}\}
+\cs{CustomizeMathJax}\{cs{def}\cs{myname}\{\cs{ifnextchar} X \cs{found}\cs{notfound}\}\}
 \end{sourcedisplay}
-Inside a \brand{MathJax} math expression, \cs{myname} becomes a macro
-which uses \cs{starredaction} if it is starred, or \cs{unstarredaction} if not.
+``\texttt{X}'' may be a single \acro{ASCII} character,
+or a hex number inside braces, ex:
+\begin{sourcedisplay}
+\cs{CustomizeMathJax}\{\cs{def}\cs{myname}\{\cs{ifnextchar}\{0x7B\}\cs{found}\cs{notfound}\}\}
+\end{sourcedisplay}
+Use ``\texttt{(}'' or ``\texttt{\{0x28\}}'' for a left parenthesis,
+``\texttt{\{0x7B\}}'' for a left brace,
+``\texttt{\{0x7D\}}'' for a right brace,
+or ``\texttt{\{0x5C\}}'' for a backslash.
 }
 
 %\newcommand{\limitscustomizeKaTeX}{%
@@ -1581,9 +1607,9 @@
     \item For the new \env{cases}-like environments,
         \cs{text} must be used to set the normal roman font if desired.
     \item \env{alignat} in \brand{MathJax} requires math mode, but
-        in \LaTeX it doesn't.  It may be required to use \env{warpHTML} and
+        in \LaTeX\ it doesn't.  It may be required to use \env{warpHTML} and
         \env{warpprint} to isolate a version for each mode.
-    \item \cs{DeclareParedDelimiter} and related must be in the preamble
+    \item \cs{DeclarePairedDelimiter} and related must be in the preamble
         before \linebreak \texttt{\cs{begin}\{document\}}.
     \end{itemize}
 }
@@ -2802,28 +2828,18 @@
 \newcommand{\limitsphysics}{%
 \pkg{physics} works as-is for \HTML\ with \SVG\ math.
 
-For \brand{MathJax}, emulation is provided via \pkg{lwarp}'s \brand{MathJax} macros.
-These are not the same as the third-party \brand{MathJax} extension.
-
-\begin{itemize}
-\item The \optn{notrig} option is honored.
-\item Most macros don't work with \cs{big}, etc.\watchout
-\item Macros do not auto-detect variable numbers of mandatory arguments. \watchout
-    Provide empty \texttt{\{\}} arguments for those which are not used.
-\item Many of the macros do not work with auto-detected delimiters. \watchout
-    Use the delimiter-specific versions instead.
-    Some macros do not even consider the following arguments,
-    so they may work as expected.
-\item For \cs{Re} and \cs{Im}, the arguments must be in braces.\watchout
-\item For \cs{functionalderivative}, for the example in the manual with $(E-TS)$,
-    enclose the parens in braces.
-\item \cs{expectationvalue} requires and uses two mandatory arguments, \watchout
-    unlike the third-party \brand{MathJax} \pkg{physics} extension.
-\item Each of \cs{matrixquantity}, \cs{smallmatrixquantity},
-    and \cs{matrixdeterminant} work,
-    while \cs{identitymatrix} and the following simply print a place-holder,
-    and must be replaced by hand.
-\end{itemize}
+For \brand{MathJax}, the \brand{MathJax} v3 \pkg{physics} extension is used.
+% emulation is provided via \pkg{lwarp}'s \brand{MathJax} macros.
+% These are not the same as the third-party \brand{MathJax} extension.
+% 
+% \begin{itemize}
+% \item The \optn{notrig} option is honored.
+% \item Most macros don't work with \cs{big}, etc.\watchout
+% \item Each of \cs{matrixquantity}, \cs{smallmatrixquantity},
+%     and \cs{matrixdeterminant} work,
+%     while \cs{identitymatrix} and the following simply print a place-holder,
+%     and must be replaced by hand using \env{warpprint} and \env{warpHTML}.
+% \end{itemize}
 }
 
 
@@ -3022,7 +3038,7 @@
 %<*package>
 % \fi
 %
-% \CheckSum{44713}
+% \CheckSum{43783}
 %
 % \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
@@ -3151,6 +3167,7 @@
 % \changes{v0.84}{2020/04/24}{\ 2020/04/24}
 % \changes{v0.85}{2020/05/01}{\ 2020/05/01}
 % \changes{v0.86}{2020/05/12}{\ 2020/05/12}
+% \changes{v0.87}{2020/06/03}{\ 2020/06/03}
 
 
 
@@ -3373,6 +3390,30 @@
 %
 % \begin{description}
 % \needspace{2\baselineskip}
+% \item[v0.87:] \brand{MathJax}, bibliography packages.
+%   \begin{itemize}
+%   \item Added boolean \bool{FixSmallCaps} for fonts which render small caps as
+%       \margintag{core}
+%       all caps.
+%   \item Fixed \cs{bibliography} to use the \HTML\ version's \filenm{.bbl} file.
+%       Previously the \HTML\ bibliography relied on the print version's \filenm{.bbl},
+%       thus would fail if the print document had not yet been created.
+%   \item Added \cs{ifstar} and \cs{ifnextchar} to \brand{MathJax}, and
+%       \margintag{\brand{MathJax}}
+%       removed \cs{DeclareIfstar}.
+%       \watchout[Removed \cs{DeclareIfstar}]
+%       See \cref{sec:limitscustomizemathjax}.
+%   \item \pkg{physics}: Now supports the \brand{MathJax} v3 extension.
+%       \margintag{packages}
+%   \item \pkg{mathtools}: Improved \cs{underbrakcet}, \cs{overbracket} for \brand{MathJax}.
+%   \item \pkg{nccmath}: Improved \cs{underrel} for \brand{MathJax}.
+%   \item \pkg{mhchem}: Now supports the \brand{MathJax} v3 extension for \cs{ce} inside math.
+%   \item \pkg{cancel}: Now supports the \brand{MathJax} v3 extension.
+%   \item \pkg{embrac}: Neutralized kerning for improved \HTML\ conversion.
+%   \item Added \pkg{citeref}, \pkg{drftcite}, \pkg{jurabib}, \pkg{multibib}, \pkg{splitbib}.
+%   \item Verified to work as-is with \pkg{bibtopic}, \pkg{collref}, \pkg{mciteplus}.
+%   \end{itemize}
+% \needspace{2\baselineskip}
 % \item[v0.86:] \brand{MathJax} major updates.
 %   \begin{itemize}
 %   \item Fixed: Filename if named files with \filenm{*}, parens, period in section name.
@@ -5374,9 +5415,11 @@
 %
 % Glossary: & \mpkg{gloss}, \mpkg{glossaries} and \prog{xindy}, \mpkg{nomencl}.\\
 %
-% Bibliography: & \spkg{babelbib}, \mpkg{backref}, \mpkg{biblatex}, \mpkg{bibunits},
-%   \mpkg{chapterbib}, \mpkg{cite}, \ipkg{hypernat}, \spkg{mcite}, \mpkg{natbib},
-%   \spkg{notes2bib}, \ipkg{showtags}.
+% Bibliography: & \spkg{babelbib}, \spkg{bibtopic}, \mpkg{backref},
+%   \mpkg{biblatex}, \mpkg{bibunits},
+%   \mpkg{chapterbib}, \mpkg{cite}, \mpkg{citeref}, \spkg{collref}, \mpkg{drftcite},
+%   \ipkg{hypernat}, \mpkg{jurabib}, \spkg{mcite}, \spkg{mciteplus}, \mpkg{multibib},
+%   \mpkg{natbib}, \spkg{notes2bib}, \mpkg{splitbib}, \ipkg{showtags}.
 %
 %   \\
 %
@@ -5533,7 +5576,7 @@
 % Direct formatting: & \cs{emph}, \cs{textsuperscript},
 % 	\cs{textbf}, etc are supported.
 % 	\cs{bfseries}, etc.\ are only supported in some cases.
-%   \mpkg{cancel}, \epkg{ellipsis}, \mpkg{embrac}, \spkg{enparen},
+%   \mpkg{cancel}\sjax, \epkg{ellipsis}, \mpkg{embrac}, \spkg{enparen},
 %   \ipkg{hyphenat}, \epkg{lettrine}, \epkg{lips},
 %   \ipkg{lua-check-hyphen}, \ipkg{luacolor}, \epkg{magaz}, \epkg{nolbreaks},
 %   \ipkg{normalcolor},
@@ -5571,9 +5614,11 @@
 %   Tested to work as-is: Special font macros in \spkg{cfr-lm} and others
 %   which use \spkg{nfssext-cfr}. \\
 %
-% Symbols: & Native \LaTeX\ diacriticals, \mpkg{academicons}, \mpkg{bbding},
+% Symbols: & Native \LaTeX\ diacriticals, \mpkg{academicons}, \spkg{amssymb}\sjax,
+%   \mpkg{bbding},
 %   \mpkg{chemgreek}, \mpkg{dingbat}, \spkg{euro}, \mpkg{eurosym},
-%   \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\ejax, \mpkg{marvosym},
+%   \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\ejax, \spkg{latexsym}\sjax,
+%   \mpkg{marvosym},
 %   \spkg{mathcomp}\ejax, \mpkg{metalogo}, \mpkg{metalogox},
 %   \mpkg{pifont}, \spkg{textalpha},
 %   \mpkg{textcomp}, \spkg{textgreek}, \mpkg{typicons}, \mpkg{xunicode}.
@@ -5598,7 +5643,7 @@
 %   \mpkg{engtlc}\ejax, \spkg{fast-diagram}, \mpkg{ghsystem},
 %   \spkg{hepnicenames}, \spkg{heppennames}, \spkg{karnaughmap}, \mpkg{karnaugh-map},
 %   \mpkg{listings}, \spkg{linop}, \mpkg{mhchem}\sjax, \spkg{pgfgantt},
-%   \mpkg{phfqit}, \spkg{physics}\ejax, \spkg{physunits}\ejax, \spkg{qcircuit},
+%   \mpkg{phfqit}, \spkg{physics}\sjax, \spkg{physunits}\ejax, \spkg{qcircuit},
 %   \mpkg{register}, \spkg{simpler-wick},
 %   \spkg{slashed}\ejax, \mpkg{steinmetz}\ejax, \spkg{structmech}, \mpkg{struktex}.
 %   \spkg{tikz-karnaugh}, \spkg{tikzcodeblocks} \\
@@ -7728,6 +7773,7 @@
 % \cs{HTMLPageTop} & Heading for the other pages. \\
 % \cs{HTMLPageBottom} & Footer for the other pages. \\
 % \midrule
+% FixSmallCaps & Set \optn{true} if small caps rendered as all caps. \\
 % HTMLDebugComments & Boolean to generate \HTML\ comments. \\
 % \bottomrule
 % \end{tabular}
@@ -7938,6 +7984,11 @@
 %   Any pending footnotes are also placed at the bottom of each page
 %   before each file break.
 %
+% \ItemDescribeBoolean{FixSmallCaps} \DescribeDefault{false}
+%   Set |true| if \textsc{Small Caps} are rendering in all caps (``SMALL CAPS'').
+%   May be required for some fonts (\pkg{erewhon}, \pkg{utopia}, \pkg{fbb}, et al.),
+%   and packages such as \pkg{embrac}.
+%
 % \ItemDescribeBoolean{HTMLDebugComments} \DescribeDefault{false}
 %   Set |true| to generate \HTML\ comments, such as which section or \element{div}
 %   is being opened or closed.
@@ -8617,6 +8668,29 @@
 %
 % \limitstext
 %
+%
+% \subsubsection{Small caps}
+%
+% \DescribeBoolean{FixSmallCaps}
+% \trouble{font>small caps}
+% \trouble{small caps}
+% \trouble{font>CJK}
+% \trouble{CJK>font}
+% Some fonts, such as \pkg{erewhon}, \pkg{utopia}, or \pkg{fbb}, and some packages
+% such as \pkg{embrac}, copy/paste ``\textsc{Small Caps}''
+% as all caps (``SMALL CAPS''),
+% which \pkg{lwarp} then reads as all caps, so the text is printed in all caps.
+% If small caps are being rendered as all caps, set:
+% \begin{sourceverb}
+% \booltrue{FixSmallCaps}
+% \end{sourceverb}
+% Some CJK fonts may not work if \bool{FixSmallCaps} is set \optn{true}.
+% \watchout[CJK fonts]
+% \trouble{Chinese>font}
+% \trouble{Japanese>font}
+% \trouble{Korean>font}
+%
+%
 % \subsubsection{Horizontal space}
 %
 % \limitshspace
@@ -10917,13 +10991,6 @@
 % \watchout[\TeX\ boxes]
 % require \cs{newpage}, which will not work in a \TeX\ box.
 %
-% \changes{v0.57}{2018/05/28}{Docs: Recreating the index for \pkg{lwarp} source.}
-% To recreate the index for the \pkg{lwarp} documentation:
-% \margintag{index recreation}
-% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines]
-% makeindex -s gglo.ist -o lwarp.gls lwarp.glo
-% splitindex lwarp.idx -- -s gind.ist
-% \end{Verbatim}
 %
 %
 % \subsection{Creating a development system}
@@ -10943,7 +11010,7 @@
 %   hundred additional \filenm{lwarp-*.sty} files for the various packages which are
 %   supported.
 %
-%   To create the documentation \filenm{lwarp.pdf},
+%   To create the initial documentation \filenm{lwarp.pdf},
 %   execute \userentry{pdflatex lwarp.dtx}
 %
 % \item[To make the development files visible to other projects:] \
@@ -10955,6 +11022,7 @@
 %
 %   Inside this directory, create the file \filenm{update}, containing:
 % \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines]
+% rm lwarp-*.sty
 % ln -s /path_to_dev_directory/lwarp*.sty .
 % ln -s /path_to_dev_directory/lwarp_baseline_marker.png .
 % ln -s /path_to_dev_directory/lwarp_baseline_marker.eps .
@@ -10990,6 +11058,39 @@
 % setenv PATH ${HOME}/bin:/opt/texbin_local:/opt/texbin:${PATH}
 % \end{Verbatim}
 %
+% \item[To fully compile the \pkg{lwarp} documentation and indexes:] \ \null
+% \changes{v0.57}{2018/05/28}{Docs: Recreating the index for \pkg{lwarp} source.}
+% \changes{v0.87}{2020/05/17}{Docs: Updated docs to compile \pkg{lwarp} documentation.}
+% \gindex{documentation>compile}
+% \gindex{lwarp=\pkg{lwarp}>compiling documentation}
+% \begin{sourcedisplay}
+% pdflatex lwarp.ins \\
+% pdflatex lwarp.dtx \\
+% pdflatex lwarp.dtx \hfill \textgreen{<if necessary>} \\
+% makeindex -s gglo.ist -o lwarp.gls lwarp.glo \hfill \textgreen{<indexes>} \\
+% splitindex lwarp.idx -- -s gind.ist \\
+% pdflatex lwarp.dtx \\
+% pdflatex lwarp.dtx  \hfill \textgreen{<if necessary>} \\
+% makeindex -s gglo.ist -o lwarp.gls lwarp.glo \hfill \textgreen{<indexes>} \\
+% splitindex lwarp.idx -- -s gind.ist  \hfill \textgreen{<again>} \\
+% pdflatex lwarp.dtx \\
+% pdflatex lwarp.dtx  \hfill \textgreen{<if necessary>}
+% \end{sourcedisplay}
+% (The second round of index processing is required to fully resolve the
+% final Index of Indexes.)
+%
+% To make it easier to update the documentation after a minor change,
+% it is useful to create a command script called \filenm{make_index}, containing:
+% \begin{sourceverb}
+% makeindex -s gglo.ist -o lwarp.gls lwarp.glo
+% splitindex lwarp.idx -- -s gind.ist
+% \end{sourceverb}
+%
+% Note that Index of Indexes and the cross-references to the indexes
+% \trouble[references]{index>documentation references}
+% \trouble{documentation>index cross-references}
+% may not be correct until the above has been accomplished.
+%
 % \end{description}
 % 
 %
@@ -11886,8 +11987,12 @@
 % \changes{v0.63}{2018/11/25}{Added p\TeX support.}
 % \changes{v0.79}{2020/01/05}{\pkg{luatex85}: Removed.}
 % \changes{v0.79}{2020/01/05}{\pkg{ifpdf}, \pkg{ifptex}: Provided by \pkg{iftex}.}
+% \changes{v0.87}{2020/05/21}{\pkg{ifpdf}, \pkg{ifptex}: Restored to work on TL2019 and earlier.}
+% ^^A *8* remove ifpdf, ifptex
 %    \begin{macrocode}
 \RequirePackage{iftex}[2019/11/07]
+\RequirePackage{ifpdf}
+\RequirePackage{ifptex}
 
 \newif\ifxetexorluatex
 
@@ -12161,7 +12266,9 @@
 % \changes{v0.68}{2019/02/26}{Prevented \pkg{alg}, \pkg{algorithmic}, \pkg{fncylab}, \pkg{pdfcprot}.}
 % \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.}
 % \changes{v0.81}{2020/02/15}{Prevented \pkg{statex}.}
+% \changes{v0.87}{2020/05/14}{Prevented \pkg{csvtools}.}
 %
+%  ^^A *earlyloadnever *loadnever
 %    \begin{macrocode}
 \LWR at earlyclassloadnever{jarticle}{ujarticle}
 \LWR at earlyclassloadnever{jbook}{ujbook}
@@ -12178,6 +12285,7 @@
 \LWR at earlyloadnever{caption2}{caption}
 % \LWR at earlyloadnever{ccaption}{caption}% might be preloaded by memoir
 \LWR at earlyloadnever{colortab}{colortbl}
+\LWR at earlyloadnever{csvtools}{datatool}
 \LWR at earlyloadnever{doublespace}{setspace}
 \LWR at earlyloadnever{epsf}{graphicx}
 \LWR at earlyloadnever{fancyheadings}{fancyhdr}
@@ -12311,6 +12419,7 @@
 \LWR at loadafter{chkfloat}
 \LWR at notmemoirloadafter{chngpage}
 \LWR at loadafter{cite}
+\LWR at loadafter{citeref}
 \LWR at loadafter{cmdtrack}
 \LWR at loadafter{colonequals}
 \LWR at loadafter{color}
@@ -12334,6 +12443,7 @@
 \LWR at loadafter{draftcopy}
 \LWR at loadafter{draftfigure}
 \LWR at loadafter{draftwatermark}
+\LWR at loadafter{drftcite}
 \LWR at loadafter{easy-todo}
 \LWR at loadafter{ebook}
 \LWR at loadafter{econometrics}
@@ -12438,6 +12548,7 @@
 % inputenx must be loaded before lwarp
 % inputtrc may be loaded before lwarp
 \LWR at loadafter{intopdf}
+\LWR at loadafter{jurabib}
 \LWR at loadafter{karnaugh-map}
 \LWR at loadafter{keyfloat}
 \LWR at loadafter{layaureo}
@@ -12492,6 +12603,7 @@
 % morewrites must be loaded before lwarp
 \LWR at notmemoirloadafter{movie15}
 \LWR at notmemoirloadafter{mparhack}
+\LWR at loadafter{multibib}
 \LWR at loadafter{multicap}
 %\LWR at loadafter{multicol}% loaded by ltxdoc
 \LWR at loadafter{multicolrule}
@@ -12619,6 +12731,7 @@
 \LWR at loadafter{soul}
 \LWR at loadafter{soulpos}
 \LWR at loadafter{soulutf8}
+\LWR at loadafter{splitbib}
 \LWR at loadafter{splitidx}
 \LWR at loadafter{srcltx}
 \LWR at loadafter{srctex}
@@ -14626,7 +14739,6 @@
 
 
 
-% ^^A *checkload
 % \begin{macro}{\LWR at checkloadfilename} \marg{filename}
 % Checks if this filename should be loaded after \pkg{lwarp},
 % or never at all.
@@ -14640,8 +14752,11 @@
 % \changes{v0.79}{2020/01/09}{Prevented \pkg{bxcjkjatype}, \pkg{hangul}.}
 % \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.}
 % \changes{v0.81}{2020/02/28}{Prevented \pkg{statex}.}
+% \changes{v0.87}{2020/05/14}{Prevented \pkg{csvtools}.}
 %
 % The following should never be loaded:
+%
+% ^^A *checkload *loadnever
 %    \begin{macrocode}
 \newcommand*{\LWR at checkloadfilename}[1]{%
 \LWR at checkloadnever{#1}{ae}{cm-super, lmodern}
@@ -14653,6 +14768,7 @@
 \LWR at checkloadnever{#1}{caption2}{caption}
 \LWR at checkloadnever{#1}{ccaption}{caption}% might be preloaded by memoir
 \LWR at checkloadnever{#1}{colortab}{colortbl}
+\LWR at checkloadnever{#1}{csvtools}{datatool}
 \LWR at checkloadnever{#1}{doublespace}{setspace}
 \LWR at checkloadnever{#1}{epsf}{graphicx}
 \LWR at checkloadnever{#1}{fancyheadings}{fancyhdr}
@@ -18836,6 +18952,7 @@
 % \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Updated to \brand{MathJax} v3 current.}
 % \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Improved equation numbering.}
 % \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Added support for starred macros.}
+% \changes{v0.87}{2020/05/20}{File: \filenm{lwarp_mathjax.txt}: Now provides \cs{ifstar}, \cs{ifnextchar}.}
 %
 % ^^A *lwarp_mathjax.txt
 %
@@ -18845,12 +18962,12 @@
 \begin{filecontents*}[overwrite]{lwarp_mathjax.txt}
 <script>
 // Lwarp MathJax emulation code
+//
 // Based on code by Davide P. Cervone.
-// Original code: https://github.com/mathjax/MathJax/issues/2313
-// Modified by Brian Dunn to adjust equation numbering, add subequations,
-// and add starred macros.
 // Equation numbering: https://github.com/mathjax/MathJax/issues/2427
-// Starred macros: https://github.com/mathjax/MathJax/issues/2428
+// Starred and ifnextchar macros: https://github.com/mathjax/MathJax/issues/2428
+// 
+// Modified by Brian Dunn to adjust equation numbering and add subequations.
 //
 // LaTeX can use \seteqnumber{subequations?}{section}{number} before each equation.
 // subequations? is 0 usually, 1 if inside subequations.
@@ -18865,10 +18982,8 @@
   },
   startup: {
     ready() {
-      //
       //  These would be replaced by import commands if you wanted to make
       //  a proper extension.
-      //
       const Configuration = MathJax._.input.tex.Configuration.Configuration;
       const CommandMap = MathJax._.input.tex.SymbolMap.CommandMap;
       const Macro = MathJax._.input.tex.Symbol.Macro;
@@ -18876,170 +18991,64 @@
       const ParseUtil = MathJax._.input.tex.ParseUtil.default;
       const expandable = MathJax._.util.Options.expandable;
 
-      //
-      //  These are the names of the command maps:
-      //
-      const SETEQNUMBERMAP = 'seteqnumberCoreMap' ;
-
-      //
-      //  These functions implement the macros:
-      //
-      const seteqnumberFunction = (parser, name) => {
-        //  Get the macro parameters
-        const star = parser.GetStar();                  // true if there is a *
-        const optBrackets = parser.GetBrackets(name);   // contents of optional brackets
-        const newsubequations = parser.GetArgument(name);  // the subequations argument
-        const neweqsection = parser.GetArgument(name);  // the eq section argument
-        const neweqnumber = parser.GetArgument(name);   // the eq number argument
-        MathJax.config.subequations=newsubequations ;   // a string with boolean meaning
-        MathJax.config.section=neweqsection ;           // a string with numeric meaning
-        parser.tags.counter = parser.tags.allCounter = neweqnumber ;
-      };
-
-      //
-      //  This is the configuration for the seteqnumberFunctionConfig TeX extension.
-      //
-      const seteqnumberFunctionConfig = Configuration.create('seteqnumberCore', {
-        //
-        // Initialize the extension by creating the command map,
-        // then append the command map to the given configuration as a macro handler.
-        //
-        init(config) {
-          const map = new CommandMap(SETEQNUMBERMAP,{},{});
-          config.append(
-            Configuration.create(
-                'seteqnumberDefs',
-                {handler: {macro: [SETEQNUMBERMAP]}}
-            )
-          );
-        },
-
-        //
-        //  Add options (from the
-        //  seteqnumberCore configuration object in the document's
-        //  option list, if any).
-        //
-        config(config, jax) {
-          const map = jax.parseOptions.handlers.retrieve(SETEQNUMBERMAP);
-          const options = jax.parseOptions.options.seteqnumberCore;
-          for (const cs of Object.keys(options)) {
-            map.add(cs, new Macro(cs, seteqnumberFunction, options[cs]));
-          }
-        },
-
-        options: {
-          seteqnumberCore: expandable({})
-        }
-      }
-      );
-
-      const IFSTARMAP = 'ifstarMap';
-
-      //
-      //  This function implements an ifstar macro.
-      //
-      const IfstarFunction = (parser, name, resultstar, resultnostar) => {
-        //
-        //  Get the macro parameters
-        //
-        const star = parser.GetStar();          // true if there is a *
-        //
-        //  Construct the replacement string for the macro
-        //
-        const macro = [(star ? resultstar : resultnostar)].join('');
-        //
-        //  Insert the replacement string into the TeX string, and check 
-        //  that there haven't been too many maxro substitutions (prevents 
-        //  infinite loops).
-        //
-        parser.string = ParseUtil.addArgs(parser, macro, parser.string.slice(parser.i));
+      //  Insert the replacement string into the TeX string, and check
+      //  that there haven't been too many maxro substitutions (prevents
+      //  infinite loops).
+      const useArgument = (parser, text) => {
+        parser.string = ParseUtil.addArgs(parser, text, parser.string.slice(parser.i));
         parser.i = 0;
         if (++parser.macroCount > parser.configuration.options.maxMacros) {
           throw new TexError('MaxMacroSub1',
-                             'MathJax maximum macro substitution count exceeded; ' +
-                             'is there a recursive macro call?');
+          'MathJax maximum macro substitution count exceeded; ' +
+          'is there a recursive macro call?');
         }
-      };
+      }
 
-      //
-      //  This is the configuration for the IfstarConfiguration TeX extension.
-      //
-      const IfstarConfiguration = Configuration.create('Ifstar', {
-        //
-        //  Initialize the extension by creating the command map for the
-        //  macros defined by \DeclareIfstar, and add the
-        //  \DeclareIfstar macro itself.  Then append the
-        //  command map to the given configuration as a macro handler
-        //
-        init(config) {
-          const map = new CommandMap(IFSTARMAP, {
-            DeclareIfstar: ['Declare_Ifstar']
-          }, {
-            //
-            //  Implements \DeclareIfstar control sequence.
-            //
-            Declare_Ifstar(parser, name) {
-              //
-              //  Get the control sequence to define and the starred and 
-              //  non-starred macros to use.
-              //
-              let cs = ParseUtil.trimSpaces(parser.GetArgument(name));
-              const resultstar = parser.GetArgument(name);
-              const resultnostar = parser.GetArgument(name);
-              //
-              //  Check that the control sequence name is valid
-              //
-              if (cs.charAt(0) === '\\') cs = cs.substr(1);
-              if (!cs.match(/^(.|[a-z]+)$/i)) {  //$ syntax highlighting
-                throw new TexError(
-                    'IllegalControlSequenceName',
-                    'Illegal control sequence name for %1',
-                    name
-                );
-              }
-              //
-              //  Look up the command map and add the new macro to it using
-              //  IfstarFunction as the function and passing it the
-              //  given starred and non-starred macros.
-              //
-              const map = parser.configuration.handlers.retrieve(IFSTARMAP);
-              map.add(cs, new Macro(cs, IfstarFunction, [resultstar, resultnostar]));
-            }
-          });
-          config.append(
-            Configuration.create('IfstarDefs', {handler: {macro: [IFSTARMAP]}})
-          );
+      //  Create the command map for \ifstar, \ifnextchar, \seteqnumber
+      new CommandMap('ifstar-ifnextchar-setequnumber', {
+        ifstar: 'IfstarFunction',
+        ifnextchar: 'IfnextcharFunction',
+        seteqnumber: 'SeteqnumberFunction'
+      }, {
+        //  This function implements an ifstar macro.
+        IfstarFunction(parser, name) {
+          const resultstar = parser.GetArgument(name);
+          const resultnostar = parser.GetArgument(name);
+          const star = parser.GetStar();                 // true if there is a *
+          useArgument(parser, star ? resultstar : resultnostar);
         },
-
-        //
-        //  Add any user-defined starred/non-starred macros (from the 
-        //  Ifstar configuration object in the document's 
-        //  option list), if any.
-        //
-        config(config, jax) {
-          const map = jax.parseOptions.handlers.retrieve(IFSTARMAP);
-          const starmacros = jax.parseOptions.options.Ifstar;
-          for (const cs of Object.keys(starmacros)) {
-            map.add(cs, new Macro(cs, IfstarFunction, starmacros[cs]));
+        
+        //  This function implements an ifnextchar macro.
+        IfnextcharFunction(parser, name) {
+          let whichchar = parser.GetArgument(name);
+          if (whichchar.match(/^(?:0x[0-9A-F]+|[0-9]+)$/i)) {
+            // $ syntax highlighting
+            whichchar = String.fromCodePoint(parseInt(whichchar));
           }
+          const resultnextchar = parser.GetArgument(name);
+          const resultnotnextchar = parser.GetArgument(name);
+          const gotchar = (parser.GetNext() === whichchar);
+          useArgument(parser, gotchar ? resultnextchar : resultnotnextchar);
         },
 
-        //
-        //  Indicate that Ifstar is a valid option, and can have 
-        //  any number of definitions.  The format is
-        //
-        //      name: [starred, non-starred]
-        //
-        //  where 'name' is the macro name, and starred and non-starred are the 
-        //  macros to use for the \name macro.  You can include 
-        //  pre-defined macros here, which will be available without
-        //  further configuration.
-        //
-        options: {
-          Ifstar: expandable({})
+        //  This function modifies the equation numbers.
+        SeteqnumberFunction(parser, name) {
+            //  Get the macro parameters
+            const star = parser.GetStar();                  // true if there is a *
+            const optBrackets = parser.GetBrackets(name);   // contents of optional brackets
+            const newsubequations = parser.GetArgument(name);  // the subequations argument
+            const neweqsection = parser.GetArgument(name);  // the eq section argument
+            const neweqnumber = parser.GetArgument(name);   // the eq number argument
+            MathJax.config.subequations=newsubequations ;   // a string with boolean meaning
+            MathJax.config.section=neweqsection ;           // a string with numeric meaning
+            parser.tags.counter = parser.tags.allCounter = neweqnumber ;
         }
       });
 
+      //  Create the ifstar-ifnextchar-setequnumber package
+      Configuration.create('ifstar-ifnextchar-setequnumber', {
+        handler: {macro: ['ifstar-ifnextchar-setequnumber']}
+      });
 
       MathJax.startup.defaultReady();
 
@@ -19060,10 +19069,7 @@
   },    // startup
 
   tex: {
-    packages: {'[+]': ['seteqnumberCore', 'tagFormat', 'Ifstar']},
-    seteqnumberCore: {
-      seteqnumber: []   // a user-defined macro
-    },
+    packages: {'[+]': ['tagFormat', 'ifstar-ifnextchar-setequnumber']},
     tags: "ams",
         tagFormat: {
             number: function (n) {
@@ -19213,7 +19219,7 @@
 -- Copyright 2016-2020 Brian Dunn
 
 
-printversion = "v0.86"
+printversion = "v0.87"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -24564,9 +24570,10 @@
 %
 %
 % \DescribeCounter{LWR at currentautosec} Records the page number when the section
-%   was created.  If a math expression is included in the section name,
+%   was created.  (If a math expression is included in the section name,
 %   and SVG math is used, the corresponding \env{lateximage} will cause the
-%   page number to change by the time the following autosec label is created.
+%   page number to change by the time the following autosec label is created,
+%   thus the initial page number is recorded here.)
 % \changes{v0.43}{2017/11/01}{\ctr{LWR at currentautosec}: Added.}
 % \changes{v0.66}{2019/01/28}{\ctr{LWR at currentautosec}: Fix for \LOF, \LOT float in home page.}
 %    \begin{macrocode}
@@ -33698,6 +33705,7 @@
 %
 %
 % \section{Bibliography presentation}
+% ^^A *bibliography
 %
 % \codehtml
 %    \begin{macrocode}
@@ -33705,21 +33713,12 @@
 %    \end{macrocode}
 %
 %
-% \begin{macro}{\bibliography} \marg{filenames}
-%
-% Modified to use the base jobname instead of the |_html| jobname.
-% \changes{v0.48}{2018/02/04}{Fix: \cs{BaseJobname} for bibliography.}
-%    \begin{macrocode}
-\def\bibliography#1{%
-    \if at filesw
-    \immediate\write\@auxout{\string\bibdata{#1}}%
-    \fi
-%     \@input@{\jobname.bbl}% original
-    \begingroup%
-    \@input@{\BaseJobname.bbl}% lwarp
-    \endgroup%
-}
-%    \end{macrocode}
+% \begin{macro}{\bibliography} \marg{filenames} \qquad
+% At one time this was modified to read \cs{BaseJobname}\filenm{.bbl},
+% which meant the \HTML\ version could not resolve until the print version was
+% also present.  This also confused \pkg{multibib}.
+% It has been reverted to the original to use \cs{jobname}\filenm{.bbl}.
+% \changes{v0.87}{2020/05/17}{Reverted to original.}
 % \end{macro}
 %
 %
@@ -38087,6 +38086,27 @@
 % see \cref{sec:highlevelclasses}.
 
 
+% \codeall
+%    \begin{macrocode}
+\begin{warpall}
+%    \end{macrocode}
+
+% \DescribeBoolean{FixSmallCaps}
+% User may set \bool{FixSmallCaps} to \optn{true} if small caps
+% are being incorrectly rendered as all caps.
+%
+% \changes{v0.87}{2020/05/12}{Added \bool{FixSmallCaps} to remove \cs{LWR at print@scshape}
+%    for \pkg{erewhon}, et. al.}
+%    \begin{macrocode}
+\newbool{FixSmallCaps}
+\boolfalse{FixSmallCaps}
+%    \end{macrocode}
+
+%    \begin{macrocode}
+\end{warpall}
+%    \end{macrocode}
+
+
 % \codehtml
 %    \begin{macrocode}
 \begin{warpHTML}
@@ -38519,10 +38539,19 @@
 %    \end{macrocode}
 % \end{macro}
 
+
 % \begin{macro}{\scshape}
+%
+% Note: \cs{LWR at print@scshape} is not used here since some fonts,
+% such as \pkg{erewhon}, copy/paste as all-caps.
+%
+% \changes{v0.87}{2020/05/12}{Added \bool{FixSmallCaps} to remove \cs{LWR at print@scshape}
+%    for \pkg{erewhon}, et. al.}
 %    \begin{macrocode}
 \newrobustcmd*{\LWR at HTML@scshape}{%
-    \LWR at print@scshape%
+    \ifbool{FixSmallCaps}{}{%
+        \LWR at print@scshape%
+    }%
     \renewcommand*{\LWR at f@shapecaps}{sc}%
 }
 \AtBeginDocument{\LWR at formatted{scshape}}
@@ -38545,12 +38574,16 @@
 
 % \begin{macro}{\sishape}
 % \changes{v0.65}{2018/12/10}{Added \cs{sishape}.}
+% \changes{v0.87}{2020/05/12}{Added \bool{FixSmallCaps} to remove \cs{LWR at print@scshape}
+%    for \pkg{erewhon}, et. al.}
 %    \begin{macrocode}
 \@ifundefined{sishape}{
     \LetLtxMacro\sishape\scshape
 }{}
 \newrobustcmd*{\LWR at HTML@sishape}{%
-    \LWR at print@sishape%
+    \ifbool{FixSmallCaps}{}{%
+        \LWR at print@sishape%
+    }%
     \renewcommand*{\LWR at f@shape}{it}
     \renewcommand*{\LWR at f@shapecaps}{sc}%
 }
@@ -39999,6 +40032,11 @@
             {Enclose its uses inside lateximage\MessageBreak
             environments to force SVG output}
         \LWR at mathjaxwarn{jkmath}{}
+        \LWR at mathjaxwarn{mathtools}
+            {See the Lwarp manual regarding the disallowspaces\MessageBreak
+            and showonlyrefs options, the alignat environment,\MessageBreak
+            and \protect\DeclarePairedDelimiter\space and related%
+            }
         \LWR at mathjaxwarn{mathspec}{}
         \LWR at mathjaxwarn{multirow}
             {Multirow works as expected in text mode, but\MessageBreak
@@ -40008,11 +40046,10 @@
         \LWR at mathjaxwarn{pb-diagram}
             {Enclose its uses inside lateximage environments\MessageBreak
             to force SVG output}
-        \LWR at mathjaxwarn{physics}
-            {The third-party extension is not used.\MessageBreak
-            Avoid automatic delimiters.\MessageBreak
-            Use all mandatory arguments, adding empty as needed.\MessageBreak
-            See the Lwarp manual for details}
+%         \LWR at mathjaxwarn{physics}
+% %             {The third-party extension is not used.\MessageBreak
+%             {The MathJax v3 extension is used.\MessageBreak
+%             See the Lwarp manual for details}
         \LWR at mathjaxwarn{unicode-math}
             {Not all characters are encoded correctly.\MessageBreak
             Some symbol fonts are not supported by MathJax,\MessageBreak
@@ -40427,44 +40464,7 @@
 %
 %
 %
-%
-%
-%
 % \iffalse
-%<*afterpage>
-% \fi
-%
-% \part{lwarp-afterpage.sty}
-%
-% \section{afterpage}
-%
-% \credits{David Carlisle}
-%
-% \DescribePackage{afterpage} \pkg{afterpage} is emulated.
-%
-% \changes{v0.20}{2017/01/11}{\pkg{afterpage}: Added.}
-%
-% \codehtml
-%
-% Discard all options for \pkg{lwarp-afterpage}:
-%    \begin{macrocode}
-\LWR at ProvidesPackageDrop{afterpage}[2014/10/28]
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-\newcommand{\afterpage}[1]{#1}
-%    \end{macrocode}
-%
-% \iffalse
-%</afterpage>
-% \fi
-%
-%
-%
-%
-%
-%
-% \iffalse
 %<*accessibility>
 % \fi
 %
@@ -44528,6 +44528,7 @@
 % \pkg{cancel} is used as-is for SVG math, and emulated for \HTML\ text output.
 %
 % \changes{v0.44}{2017/11/16}{\pkg{cancel}: Added.}
+% \changes{v0.87}{2020/06/02}{\pkg{cancel}: Now uses \brand{MathJax} v3 extension.}
 %
 % \codehtml
 %
@@ -44582,6 +44583,15 @@
 %    \end{macrocode}
 % \end{noindmacro}
 %
+% For \brand{MathJax}:
+%    \begin{macrocode}
+\begin{warpMathJax}
+\PackageWarningNoLine{lwarp, cancel}{The MathJax v3 extension will be used}
+\CustomizeMathJax{\require{cancel}}
+\end{warpMathJax}
+%    \end{macrocode}
+
+%
 % \iffalse
 %</cancel>
 % \fi
@@ -47035,9 +47045,51 @@
 %
 %
 %
+% \iffalse
+%<*citeref>
+% \fi
 %
+% \part{lwarp-citeref.sty}
 %
+% \section{citeref}
+%
+% \credits{Bj\"orn Briel}
+%
+% \DescribePackage{citeref}
+% \pkg{citeref} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.87}{2020/05/16}{\pkg{citeref}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{citeref}[1999/27/05]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\@cprwrite#1={\write\@auxout{\string\citepageref{#1}{\theLWR at currentautosec}}}
+
+\def\citepageref#1#2{%
+    \xdef\cpr at testa{\@nameuse{cpr at last@#1}}%letzte Zitatstelle
+    \xdef\cpr at testb{#2}% Seite dieser Zitatstelle
+    \ifx\cpr at testa\cpr at testb%
+        \relax% Konsekutive identische Seitenangaben weglassen
+    \else%
+        \@namexdef{cpr at last@#1}{#2}%
+        \@ifundefined{cpr@#1}%
+            {\@namexdef{cpr@#1}{\ref{\BaseJobname-autopage-#2}}}%   lwarp
+            {\@namexdef{cpr@#1}{\@nameuse{cpr@#1}, \ref{\BaseJobname-autopage-#2}}}%    lwarp
+    \fi
+    }
+%    \end{macrocode}
+%
 % \iffalse
+%</citeref>
+% \fi
+%
+%
+%
+% \iffalse
 %<*CJK>
 % \fi
 %
@@ -48304,8 +48356,46 @@
 %
 %
 %
+% \iffalse
+%<*drftcite>
+% \fi
 %
+% \part{lwarp-drftcite.sty}
+%
+% \section{drftcite}
+%
+% \credits{Donald Arseneau}
+%
+% \DescribePackage{drftcite}
+% \pkg{drftcite} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.87}{2020/06/02}{\pkg{drftcite}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{drftcite}[1995/01/23]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\@lbibitem[#1]#2{\global\@HighCite\z@
+  \item[
+    \textsuperscript{\@nameuse{DCN@#2\@extra at b@citeb}}~%     lwarp
+    \@biblabel{\@ifundefined{DCN@#2\@extra at b@citeb}{\@warning
+    {Reference `#2' on page \thepage\space was never cited}}{}%
+%    \DC at llap{$^{\@nameuse{DCN@#2\@extra at b@citeb}}$\ \ }%%o
+   \@citeverb{#2}}\hfil]\if at filesw{\def\protect##1{\string ##1\space}%
+   \immediate\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+%    \end{macrocode}
+%
 % \iffalse
+%</drftcite>
+% \fi
+%
+%
+%
+%
+% \iffalse
 %<*easy-todo>
 % \fi
 %
@@ -48768,7 +48858,14 @@
 \LWR at ProvidesPackagePass{embrac}[2017/07/04]
 %    \end{macrocode}
 %
+% \changes{v0.87}{2020/05/14}{\pkg{embrac}: Neutralized kerning.}
 %    \begin{macrocode}
+\ExplSyntaxOn
+\RenewDocumentCommand{\embrac_kern:n}{m}{}
+\ExplSyntaxOff
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \LetLtxMacro\LWR at orig@HTML at emph\LWR at HTML@emph
 \RenewDocumentCommand{\LWR at HTML@emph}{s m}{\LWR at orig@HTML at emph{#2}}
 
@@ -56056,8 +56153,100 @@
 %
 %
 %
+% \iffalse
+%<*jurabib>
+% \fi
 %
+% \part{lwarp-jurabib.sty}
+%
+% \section{jurabib}
+%
+% \credits{Jens Berger}
+%
+% \DescribePackage{jurabib}
+% \pkg{jurabib} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.87}{2020/05/18}{\pkg{jurabib}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{jurabib}[2004/01/25]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\renewrobustcmd{\jblangle}{\textless}
+
+\renewrobustcmd{\jbrangle}{\textgreater}
+
+\renewcommand*{\jb at biblaw@item}{%
+    \hspace{0.5em}%
+%     $\triangleright$
+    \HTMLunicode{25B7}%     lwarp
+    \hspace{0.5em}%
+}
+
+\renewrobustcmd{\jbarchsig}[2]{%
+     \ifjbweareinbib
+        \settowidth{\jb at subarchitemwidth}{\jbsamesubarchindent+#1}%
+        \setlength{\jb at subarchentrywidth}{\textwidth-\jb at subarchitemwidth-4em}%
+%         \begin{tabular}{@{}p{\jb at subarchitemwidth}@{}j{\jb at subarchentrywidth}@{}}%
+           #1\ifjb at dot\unskip\unskip\unskip.\fi
+%             &
+            \quad%      lwarp
+            \ifthenelse{\equal{#2}{}}{}{\jbarchnameformat{#2}}%
+%         \end{tabular}
+     \fi
+}%
+
+
+\xpatchcmd{\jb at do@post at item}
+    {\begin{tabular}{p{\jb at biblaw@item at width}j{\jb at biblaw@entry at width}}}
+    {}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 1}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\multicolumn{2}{p{\columnwidth}}{\jb@@name}}
+    {\jb@@name}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 2}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\jb at biblaw@item & \jb@@fulltitle}
+    {\jb at biblaw@item \quad \jb@@fulltitle}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 3}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\end{tabular}}
+    {}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 4}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\begin{minipage}[t]{\bibnumberwidth}}
+    {}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 5}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\end{minipage}}
+    {\quad}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 6}}
+%    \end{macrocode}
+%
 % \iffalse
+%</jurabib>
+% \fi
+%
+%
+%
+%
+%
+%
+% \iffalse
 %<*karnaugh-map>
 % \fi
 %
@@ -59101,6 +59290,8 @@
 % For \brand{MathJax}:
 %
 % \changes{v0.79}{2020/01/26}{\pkg{mathtools}: Added \brand{MathJax} emulation.}
+% \changes{v0.87}{2020/05/20}{\pkg{mathtools}: Updated starred macros.}
+% \changes{v0.87}{2020/05/20}{\pkg{mathtools}: Improved \cs{underbraket}, \cs{overbracket}.}
 %    \begin{macrocode}
 \begin{warpMathJax}
 \LWR at infoprocessingmathjax{mathtools}
@@ -59136,10 +59327,10 @@
 \CustomizeMathJax{\Newextarrow\xleftharpoonup{10,10}{0x21bc}}
 \CustomizeMathJax{\Newextarrow\xleftrightharpoons{10,10}{0x21cb}}
 
-\CustomizeMathJax{\newcommand{\LWRdounderbracket}[1]{\underline{#1}}}
+\CustomizeMathJax{\newcommand{\LWRdounderbracket}[3]{\underset{#3}{\underline{#1}}}}
 \CustomizeMathJax{\newcommand{\LWRunderbracket}[2][]{\LWRdounderbracket{#2}}}
 \CustomizeMathJax{\newcommand{\underbracket}[1][]{\LWRunderbracket}}
-\CustomizeMathJax{\newcommand{\LWRdooverbracket}[1]{\overline{#1}}}
+\CustomizeMathJax{\newcommand{\LWRdooverbracket}[3]{\overset{#3}{\overline{#1}}}}
 \CustomizeMathJax{\newcommand{\LWRoverbracket}[2][]{\LWRdooverbracket{#2}}}
 \CustomizeMathJax{\newcommand{\overbracket}[1][]{\LWRoverbracket}}
 
@@ -59193,7 +59384,7 @@
 %    \begin{macrocode}
 \CustomizeMathJax{
     \newcommand{\LWRABLines}[1][\Updownarrow]{#1 \notag \\}% star/nostar the same
-    \DeclareIfstar{\ArrowBetweenLines}{\LWRABLines}{\LWRABLines}
+    \newcommand{\ArrowBetweenLines}{\ifstar\LWRABLines\LWRABLines}
 }
 %    \end{macrocode}
 %
@@ -59210,9 +59401,8 @@
 \CustomizeMathJax{\newcommand{\LWRshortvdotswithinstar}[1]{\vdots \hspace{.5em} & \\}}
 \CustomizeMathJax{\newcommand{\LWRshortvdotswithinnostar}[1]{& \hspace{.5em}\vdots \\}}
 \CustomizeMathJax{%
-    \DeclareIfstar{\shortvdotswithin}%
-        {\LWRshortvdotswithinstar}%
-        {\LWRshortvdotswithinnostar}%
+    \newcommand{\shortvdotswithin}%
+        {\ifstar\LWRshortvdotswithinstar\LWRshortvdotswithinnostar}%
 }
 
 \CustomizeMathJax{\newcommand{\MTFlushSpaceAbove}{}}
@@ -59244,9 +59434,11 @@
 % user macro:
     \appto\LWR at customizedMathJax{\LWRbackslash(}
     \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}DeclareIfstar\{\LWRbackslash{}\macrotocsname{#1}\}%
-        \{\LWRbackslash{}\macrotocsname{#1}LWRsubstar\}%
-        \{\LWRbackslash{}\macrotocsname{#1}LWRsubnostar\}%
+        \LWRbackslash{}newcommand\{\LWRbackslash{}\macrotocsname{#1}\}%
+        \{\LWRbackslash{}ifstar%
+            \LWRbackslash{}\macrotocsname{#1}LWRsubstar%
+            \LWRbackslash{}\macrotocsname{#1}LWRsubnostar%
+        \}%
     }%
     \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
 }
@@ -59308,9 +59500,13 @@
 % user macro:
     \appto\LWR at customizedMathJax{\LWRbackslash(}
     \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}DeclareIfstar\{\LWRbackslash{}\macrotocsname{#1}\}%
-        \{\LWRbackslash{}\macrotocsname{#1}LWRsubstar\}%
-        \{\LWRbackslash{}\macrotocsname{#1}LWRsubnostar\}%
+        \LWRbackslash{}newcommand\{%
+            \LWRbackslash{}\macrotocsname{#1}%
+        \}%
+            \{\LWRbackslash{}ifstar%
+                \LWRbackslash{}\macrotocsname{#1}LWRsubstar%
+                \LWRbackslash{}\macrotocsname{#1}LWRsubnostar%
+            \}%
     }%
     \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
 }
@@ -60270,15 +60466,9 @@
 % \begin{sourceverb}
 % $\ce{C6H5-CHO}$
 % \end{sourceverb}
-%
-% If \emph{not} used inside a math expression, \pkg{lwarp} converts standalone \pkg{mhchem}
-% \marginpar{not inside math}
-% expressions into \SVG\ math images.
-%
-% If the \brand{MathJax} \pkg{mhchem} extension is not used,
-% \margintag{\brand{MathJax} without \pkg{mhchem} extension}
-% expressions inside math must be placed
-% between \cs{displaymathother} and \cs{displaymathnormal}:
+% To force the use of \SVG\ math for an expression which does not work with
+% \brand{MathJax},
+% place the expression between \cs{displaymathother} and \cs{displaymathnormal}:
 % \begin{sourcedisplay}
 % \cs{displaymathother} \\
 % \cs{[} \cs{ce}\{ \dots\ \} \cs{]}  \qquad \dots \qquad \$ \cs{ce} \{ \dots\ \} \$ \\
@@ -60285,6 +60475,10 @@
 % \cs{displaymathnormal}
 % \end{sourcedisplay}
 %
+% If \emph{not} used inside a math expression, \pkg{lwarp} converts standalone \pkg{mhchem}
+% \marginpar{not inside math}
+% expressions into \SVG\ math images.
+%
 % When producing \HTML\ output without the \brand{MathJax} \pkg{mhchem} extension,
 % \pkg{lwarp} does not support
 % \trouble[nested math]{mhchem=\pkg{mhchem}>nested dollar signs}
@@ -60312,6 +60506,7 @@
 %
 % \changes{v0.51}{2018/03/04}{\pkg{mhchem}: Added.}
 % \changes{v0.74}{2019/08/26}{\pkg{mhchem}: Modified for new \env{lateximage}.}
+% \changes{v0.87}{2020/06/02}{\pkg{mhchem}: Now uses \brand{MathJax} v3 extension.}
 %
 % \codehtml
 %
@@ -60423,6 +60618,10 @@
 \LetLtxMacro\ce\LWR at mhchem@origce%
 \LetLtxMacro\cesplit\LWR at mhchem@origcesplit%
 }
+
+\begin{warpHTML}
+\CustomizeMathJax{\require{mhchem}}
+\end{warpHTML}
 %    \end{macrocode}
 
 % \iffalse
@@ -61112,8 +61311,44 @@
 %
 %
 %
+% \iffalse
+%<*multibib>
+% \fi
 %
+% \part{lwarp-multibib.sty}
+%
+% \section{multibib}
+%
+% \credits{Thorsten Hansen}
+%
+% \DescribePackage{multibib}
+% \pkg{multibib} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.87}{2020/05/17}{\pkg{multibib}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{multibib}[2008/12/10]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\xpatchcmd{\newcites}
+    {{\@suffix}}
+    {{\@suffix_html}}
+    {}
+    {\LWR at patcherror{multibib}{newcites}}
+%    \end{macrocode}
+%
 % \iffalse
+%</multibib>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
 %<*multicap>
 % \fi
 %
@@ -62179,12 +62414,13 @@
 % As of v0.86, \brand{MathJax} v3 does not offer \cs{\textbackslash*}, so
 % the unstarred version is used here.
 % \changes{v0.86}{2020/05/10}{\pkg{nccmath}: Fixed \cs{nr}, added starred.}
+% \changes{v0.87}{2020/05/20}{\pkg{nccmath}: Updated starred, improved \cs{underref}.}
 %    \begin{macrocode}
 \CustomizeMathJax{\newcommand{\LWRnrnostar}[1][0.5ex]{\\[#1]}}
-\CustomizeMathJax{\DeclareIfstar{\nr}{\LWRnrnostar}{\LWRnrnostar}}
+\CustomizeMathJax{\newcommand{\nr}{\ifstar\LWRnrnostar\LWRnrnostar}}
 
 \CustomizeMathJax{\newcommand{\mrel}[1]{\begin{aligned}#1\end{aligned}}}
-\CustomizeMathJax{\newcommand{\underrel}[2]{{#1}_{#2}}}
+\CustomizeMathJax{\newcommand{\underrel}[2]{\underset{#2}{#1}}}
 \CustomizeMathJax{\newcommand{\medmath}[1]{#1}}
 \CustomizeMathJax{\newcommand{\medop}[1]{#1}}
 \CustomizeMathJax{\newcommand{\medint}[1]{#1}}
@@ -65362,7 +65598,7 @@
 % \limitsphysics
 %
 % \changes{v0.79}{2020/01/29}{\pkg{physics}: Added.}
-% \changes{v0.86}{2020/05/09}{\pkg{physics}: Added starred macros.}
+% \changes{v0.87}{2020/06/02}{\pkg{physics}: Now uses \brand{MathJax} v3 extension.}
 %
 % \codehtml
 %
@@ -65371,469 +65607,9 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-% doesn't work with \big, etc:
 \begin{warpMathJax}
-\LWR at infoprocessingmathjax{physics}
-
-\CustomizeMathJax{\newcommand{\quantity}{}}
-\CustomizeMathJax{\let\qty\quantity}
-\CustomizeMathJax{\newcommand{\pqty}[1]{\left(#1\right)}}
-\CustomizeMathJax{\newcommand{\bqty}[1]{\left\lbrack#1\right\rbrack}}
-\CustomizeMathJax{\newcommand{\vqty}[1]{\left\vert#1\right\rvert}}
-\CustomizeMathJax{\newcommand{\Bqty}[1]{\left\lbrace#1\right\rbrace}}
-
-% doesn't work with \big, etc.
-\CustomizeMathJax{\newcommand{\LWRabsolutevaluenostar}[1]{\left\lvert#1\right\rvert}}
-\CustomizeMathJax{\newcommand{\LWRabsolutevaluestar}[1]{\lvert#1\rvert}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\absolutevalue}{\LWRabsolutevaluestar}{\LWRabsolutevaluenostar}%
-}
-
-\CustomizeMathJax{\let\abs\absolutevalue}
-
-% doesn't work with \big, etc.
-\CustomizeMathJax{%
-    \newcommand{\LWRnormnostar}[1]{\left\lvert\left\lvert#1\right\rvert\right\rvert}%
-}
-\CustomizeMathJax{\newcommand{\LWRnormstar}[1]{\lvert\lvert#1\rvert\rvert}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\norm}{\LWRnormstar}{\LWRnormnostar}%
-}
-
-% doesn't work with \big, etc., no paren or bracket
-\CustomizeMathJax{\newcommand{\LWRevaluatednostar}[1]{\left . #1\right\vert}}
-\CustomizeMathJax{\newcommand{\LWRevaluatedstar}[1]{#1\vert}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\evaluated}{\LWRevaluatedstar}{\LWRevaluatednostar}%
-}
-
-\CustomizeMathJax{\let\eval\evaluated}
-
-% no \Big
-\CustomizeMathJax{\newcommand{\LWRordernostar}[1]{\mathcal{O}\left(#1\right)}}
-\CustomizeMathJax{\newcommand{\LWRorderstar}[1]{\mathcal{O}(#1)}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\order}{\LWRorderstar}{\LWRordernostar}%
-}
-
-% no \Big
-\CustomizeMathJax{\newcommand{\LWRcommutatornostar}[2]{\left\lbrack#1,#2\right\rbrack}}
-\CustomizeMathJax{\newcommand{\LWRcommutatorstar}[2]{\lbrack#1,#2\rbrack}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\commutator}{\LWRcommutatorstar}{\LWRcommutatornostar}%
-}
-
-\CustomizeMathJax{\let\comm\commutator}
-
-% no \Big
-\CustomizeMathJax{\newcommand{\LWRanticommutatornostar}[2]{%
-    \left\lbrace#1,#2\right\rbrace}%
-}
-\CustomizeMathJax{\newcommand{\LWRanticommutatorstar}[2]{%
-    \lbrace#1,#2\rbrace}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\anticommutator}{\LWRanticommutatorstar}{\LWRanticommutatornostar}%
-}
-
-\CustomizeMathJax{\let\acomm\anticommutator}
-
-% no \Big
-\CustomizeMathJax{\let\poissonbracket\anticommutator}
-\CustomizeMathJax{\let\pb\anticommutator}
-
-\CustomizeMathJax{\newcommand{\LWRvectorboldnostar}[1]{\mathbf{#1}}}
-\CustomizeMathJax{\newcommand{\LWRvectorboldstar}[1]{\pmb{#1}}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\vectorbold}{\LWRvectorboldstar}{\LWRvectorboldnostar}%
-}
-\CustomizeMathJax{\let\vb\vectorbold}
-
-\CustomizeMathJax{\newcommand{\LWRvectorarrownostar}[1]{\vec{\mathbf{#1}}}}
-\CustomizeMathJax{\newcommand{\LWRvectorarrowstar}[1]{\vec{\pmb{#1}}}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\vectorarrow}{\LWRvectorarrowstar}{\LWRvectorarrownostar}%
-}
-\CustomizeMathJax{\let\va\vectorarrow}
-
-% no star
-\CustomizeMathJax{\newcommand{\LWRvectorunitnostar}[1]{\mathbf{\hat{#1}}}}
-\CustomizeMathJax{\newcommand{\LWRvectorunitstar}[1]{\pmb{\hat{#1}}}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\vectorunit}{\LWRvectorunitstar}{\LWRvectorunitnostar}%
-}
-\CustomizeMathJax{\let\va\vectorunit}
-
-\CustomizeMathJax{\newcommand{\dotproduct}{\boldsymbol\cdot}}
-\CustomizeMathJax{\let\vdot\dotproduct}
-
-\CustomizeMathJax{\newcommand{\crossproduct}{\boldsymbol\times}}
-\CustomizeMathJax{\let\cross\crossproduct}
-\CustomizeMathJax{\let\cp\crossproduct}
-
-\CustomizeMathJax{\newcommand{\gradient}{\mathbf{\nabla}}}
-\CustomizeMathJax{\let\grad\gradient}
-
-\CustomizeMathJax{\let\divisionsymbol\div}
-
-\CustomizeMathJax{\newcommand{\divergence}{\nabla\vdot}}
-\CustomizeMathJax{\let\div\divergence}
-
-\CustomizeMathJax{\newcommand{\curl}{\nabla\cross}}
-
-\CustomizeMathJax{\newcommand{\laplacian}{\nabla^2}}
-
-% responds to notrig option
-\ifx\trigopt 1
-    \CustomizeMathJax{\DeclareMathOperator{\sine}{sin}}
-    \CustomizeMathJax{\DeclareMathOperator{\cosine}{cos}}
-    \CustomizeMathJax{\DeclareMathOperator{\tangent}{tan}}
-    \CustomizeMathJax{\DeclareMathOperator{\cosecant}{csc}}
-    \CustomizeMathJax{\DeclareMathOperator{\secant}{sec}}
-    \CustomizeMathJax{\DeclareMathOperator{\cotangent}{cot}}
-    \CustomizeMathJax{\DeclareMathOperator{\arcsine}{arcsin}}
-    \CustomizeMathJax{\DeclareMathOperator{\arccosine}{arccos}}
-    \CustomizeMathJax{\DeclareMathOperator{\arctangent}{arctan}}
-    \CustomizeMathJax{\DeclareMathOperator{\hypsine}{sinh}}
-    \CustomizeMathJax{\DeclareMathOperator{\hypcosine}{cosh}}
-    \CustomizeMathJax{\DeclareMathOperator{\hyptangent}{tanh}}
-    \CustomizeMathJax{\DeclareMathOperator{\hypcotangent}{coth}}
-    \CustomizeMathJax{\DeclareMathOperator{\exponential}{exp}}
-    \CustomizeMathJax{\DeclareMathOperator{\logarithm}{log}}
-    \CustomizeMathJax{\DeclareMathOperator{\naturallogarithm}{\ln}}
-    \CustomizeMathJax{\DeclareMathOperator{\determinant}{det}}
-    \CustomizeMathJax{\DeclareMathOperator{\Probability}{Pr}}
-    \CustomizeMathJax{\newcommand{\sin}[1][{}]{\mathrm{sin}^#1}}
-    \CustomizeMathJax{\newcommand{\sinh}[1][{}]{\mathrm{sinh}^#1}}
-    \CustomizeMathJax{\newcommand{\arcsin}[1][{}]{\mathrm{arcsin}^#1}}
-    \CustomizeMathJax{\newcommand{\asin}[1][{}]{\mathrm{asin}^#1}}
-    \CustomizeMathJax{\newcommand{\cos}[1][{}]{\mathrm{cos}^#1}}
-    \CustomizeMathJax{\newcommand{\cosh}[1][{}]{\mathrm{cosh}^#1}}
-    \CustomizeMathJax{\newcommand{\arccos}[1][{}]{\mathrm{arccos}^#1}}
-    \CustomizeMathJax{\newcommand{\acos}[1][{}]{\mathrm{acos}^#1}}
-    \CustomizeMathJax{\newcommand{\tan}[1][{}]{\mathrm{tan}^#1}}
-    \CustomizeMathJax{\newcommand{\tanh}[1][{}]{\mathrm{tanh}^#1}}
-    \CustomizeMathJax{\newcommand{\arctan}[1][{}]{\mathrm{arctan}^#1}}
-    \CustomizeMathJax{\newcommand{\atan}[1][{}]{\mathrm{atan}^#1}}
-    \CustomizeMathJax{\newcommand{\csc}[1][{}]{\mathrm{csc}^#1}}
-    \CustomizeMathJax{\newcommand{\csch}[1][{}]{\mathrm{csch}^#1}}
-    \CustomizeMathJax{\newcommand{\arccsc}[1][{}]{\mathrm{arccsc}^#1}}
-    \CustomizeMathJax{\newcommand{\acsc}[1][{}]{\mathrm{acsc}^#1}}
-    \CustomizeMathJax{\newcommand{\sec}[1][{}]{\mathrm{sec}^#1}}
-    \CustomizeMathJax{\newcommand{\sech}[1][{}]{\mathrm{sech}^#1}}
-    \CustomizeMathJax{\newcommand{\arcsec}[1][{}]{\mathrm{arcsec}^#1}}
-    \CustomizeMathJax{\newcommand{\asec}[1][{}]{\mathrm{asec}^#1}}
-    \CustomizeMathJax{\newcommand{\cot}[1][{}]{\mathrm{cot}^#1}}
-    \CustomizeMathJax{\newcommand{\coth}[1][{}]{\mathrm{coth}^#1}}
-    \CustomizeMathJax{\newcommand{\arccot}[1][{}]{\mathrm{arccot}^#1}}
-    \CustomizeMathJax{\newcommand{\acot}[1][{}]{\mathrm{acot}^#1}}
-\else
-    \CustomizeMathJax{\DeclareMathOperator{\arccsc}{arccsc}}
-    \CustomizeMathJax{\DeclareMathOperator{\arcsec}{arcsec}}
-    \CustomizeMathJax{\DeclareMathOperator{\arccot}{arccot}}
-    \CustomizeMathJax{\DeclareMathOperator{\asin}{asin}}
-    \CustomizeMathJax{\DeclareMathOperator{\acos}{acos}}
-    \CustomizeMathJax{\DeclareMathOperator{\atan}{atan}}
-    \CustomizeMathJax{\DeclareMathOperator{\acsc}{acsc}}
-    \CustomizeMathJax{\DeclareMathOperator{\asec}{asec}}
-    \CustomizeMathJax{\DeclareMathOperator{\acot}{acot}}
-    \CustomizeMathJax{\DeclareMathOperator{\csch}{csch}}
-    \CustomizeMathJax{\DeclareMathOperator{\sech}{sech}}
-    \CustomizeMathJax{\newcommand{\tr}{\trace}}
-    \CustomizeMathJax{\newcommand{\Tr}{\Trace}}
-    \CustomizeMathJax{\newcommand{\Res}{\Residue}}
-\fi
-
-\CustomizeMathJax{\DeclareMathOperator{\trace}{tr}}
-\CustomizeMathJax{\let\tr\trace}
-\CustomizeMathJax{\DeclareMathOperator{\Trace}{Tr}}
-\CustomizeMathJax{\let\Tr\Trace}
-\CustomizeMathJax{\DeclareMathOperator{\rank}{rank}}
-\CustomizeMathJax{\DeclareMathOperator{\erf}{erf}}
-\CustomizeMathJax{\DeclareMathOperator{\Residue}{Res}}
-\CustomizeMathJax{\newcommand{\principalvalue}{\mathcal{P}}}
-\CustomizeMathJax{\let\pv\principalvalue}
-\CustomizeMathJax{\newcommand{\PV}{\text{P.V.}}}
-\CustomizeMathJax{\newcommand{\real}{\mathcal{R}}}
-\CustomizeMathJax{\newcommand{\imaginary}{\mathcal{I}}}
-
-% must be brace arguments
-\CustomizeMathJax{\newcommand{\Re}[1]{\mathrm{Re}\left\lbrace#1\right\rbrace}}
-\CustomizeMathJax{\newcommand{\Im}[1]{\mathrm{Im}\left\lbrace#1\right\rbrace}}
-
-\CustomizeMathJax{\newcommand{\LWRqqtextnostar}[1]{\quad\mathrm{#1}\quad}}
-\CustomizeMathJax{\newcommand{\LWRqqtextstar}[1]{\mathrm{#1}\quad}}
-\CustomizeMathJax{\DeclareIfstar{\qqtext}{\LWRqqtextstar}{\LWRqqtextnostar}}
-\CustomizeMathJax{\let\qq\qqtext}
-
-\CustomizeMathJax{\newcommand{\qqcomma}{\text{,}\quad}}
-\CustomizeMathJax{\let\qc\qqcomma}
-
-% \LWR at physics@qtext{\name}{text}
-\newcommand*{\LWR at physics@qtext}[2]{%
-% nostar:
-    \appto\LWR at customizedMathJax{\LWRbackslash(}
-    \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}newcommand\{\LWRbackslash{}LWR\macrotocsname{#1}subnostar\}%
-    }%
-    \appto\LWR at customizedMathJax{\{}%
-    \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}quad\LWRbackslash{}text\{#2\}\LWRbackslash{}quad%
-    }%
-    \appto\LWR at customizedMathJax{\}}%
-    \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
-% star:
-    \appto\LWR at customizedMathJax{\LWRbackslash(}
-    \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}newcommand\{\LWRbackslash{}LWR\macrotocsname{#1}substar\}%
-    }%
-    \appto\LWR at customizedMathJax{\{}%
-    \appto\LWR at customizedMathJax{\LWRbackslash{}text\{#2\}\LWRbackslash{}quad}%
-    \appto\LWR at customizedMathJax{\}}%
-    \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
-% user macro:
-    \appto\LWR at customizedMathJax{\LWRbackslash(}
-    \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}DeclareIfstar\{\LWRbackslash\macrotocsname{#1}\}%
-    }%
-    \appto\LWR at customizedMathJax{\{}%
-    \appto\LWR at customizedMathJax{\LWRbackslash{}LWR\macrotocsname{#1}substar\}}%
-    \appto\LWR at customizedMathJax{\LWRbackslash{}LWR\macrotocsname{#1}subnostar\}}%
-    \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
-}
-
-\LWR at physics@qtext{\qcc}{c.c.}
-\LWR at physics@qtext{\qif}{if}
-\LWR at physics@qtext{\qthen}{then}
-\LWR at physics@qtext{\qelse}{else}
-\LWR at physics@qtext{\qotherwise}{otherwise}
-\LWR at physics@qtext{\qunless}{unless}
-\LWR at physics@qtext{\qgiven}{given}
-\LWR at physics@qtext{\qusing}{using}
-\LWR at physics@qtext{\qassume}{assume}
-\LWR at physics@qtext{\qsince}{since}
-\LWR at physics@qtext{\qlet}{let}
-\LWR at physics@qtext{\qfor}{for}
-\LWR at physics@qtext{\qall}{all}
-\LWR at physics@qtext{\qeven}{even}
-\LWR at physics@qtext{\qodd}{odd}
-\LWR at physics@qtext{\qinteger}{integer}
-\LWR at physics@qtext{\qand}{and}
-\LWR at physics@qtext{\qor}{or}
-\LWR at physics@qtext{\qas}{as}
-\LWR at physics@qtext{\qin}{in}
-
-
-\CustomizeMathJax{\newcommand{\differential}[1][]{\text{d}^{#1}}}
-\CustomizeMathJax{\let\dd\differential}
-
-
-\CustomizeMathJax{\newcommand{\LWRderivativenostar}[3][]{%
-    \frac{\text{d}^{#1}#2}{\text{d}#3^{#1}}}%
-}
-\CustomizeMathJax{\newcommand{\LWRderivativestar}[3][]{%
-    {\text{d}^{#1}#2}/{\text{d}#3^{#1}}}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\derivative}{\LWRderivativestar}{\LWRderivativenostar}%
-}
-
-\CustomizeMathJax{\let\dv\derivative}
-
-
-\CustomizeMathJax{\newcommand{\LWRpartialderivativenostar}[3][]{%
-    \frac{\partial^{#1}#2}{\partial#3^{#1}}}%
-}
-\CustomizeMathJax{\newcommand{\LWRpartialderivativestar}[3][]{%
-    {\partial^{#1}#2}/{\partial#3^{#1}}}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\partialderivative}%
-        {\LWRpartialderivativestar}{\LWRpartialderivativenostar}
-}
-
-\CustomizeMathJax{\let\pderivative\partialderivative}
-\CustomizeMathJax{\let\pdv\partialderivative}
-
-
-\CustomizeMathJax{\newcommand{\variation}{\delta}}
-\CustomizeMathJax{\let\var\variation}
-
-% Must provide two mandatory args.
-% For the example in the manual with (E-TS), enclose the parens in braces
-\CustomizeMathJax{\newcommand{\LWRfunctionalderivativenostar}[3][]{%
-    \frac{\delta^{#1}#2}{\delta#3^{#1}}}%
-}
-\CustomizeMathJax{\newcommand{\LWRfunctionalderivativestar}[3][]{%
-    {\delta^{#1}#2}/{\delta#3^{#1}}}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\functionalderivative}
-        {\LWRfunctionalderivativestar}{\LWRfunctionalderivativenostar}
-}
-\CustomizeMathJax{\let\fdv\functionalderivative}
-
-
-% use \braket to contract
-\CustomizeMathJax{\newcommand{\LWRbranostar}[1]{\left\langle{#1}\right\rvert}}
-\CustomizeMathJax{\newcommand{\LWRbrastar}[1]{\langle{#1}\rvert}}
-\CustomizeMathJax{\DeclareIfstar{\bra}{\LWRbrastar}{\LWRbranostar}}
-
-\CustomizeMathJax{\newcommand{\LWRketnostar}[1]{\left\lvert{#1}\right\rangle}}
-\CustomizeMathJax{\newcommand{\LWRketstar}[1]{\lvert{#1}\rangle}}
-\CustomizeMathJax{\DeclareIfstar{\ket}{\LWRketstar}{\LWRketnostar}}
-
-% must have two args
-\CustomizeMathJax{\newcommand{\LWRinnerproductnostar}[2]{%
-    \left\langle{#1}\middle\vert{#2}\right\rangle}%
-}
-\CustomizeMathJax{\newcommand{\LWRinnerproductstar}[2]{%
-    \langle{#1}\vert{#2}\rangle}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\innerproduct}
-        {\LWRinnerproductstar}{\LWRinnerproductnostar}
-}
-
-\CustomizeMathJax{\let\braket\innerproduct}
-\CustomizeMathJax{\let\ip\innerproduct}
-
-
-% must have two args
-\CustomizeMathJax{\newcommand{\LWRouterproductnostar}[2]{%
-    \left\lvert{#1}\middle\rangle\!\middle\langle#2\right\rvert}%
-}
-\CustomizeMathJax{\newcommand{\LWRouterproductstar}[2]{%
-    \lvert{#1}\rangle\!\langle#2\rvert}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\outerproduct}
-        {\LWRouterproductstar}{\LWRouterproductnostar}
-}
-
-\CustomizeMathJax{\let\dyad\outerproduct}
-\CustomizeMathJax{\let\op\outerproduct}
-
-
-% must have two args, unlike the MathJax version
-\CustomizeMathJax{%
-    \newcommand{\LWRexpectationvaluenostar}[2]{%
-        \vphantom{#1}%
-        \left\langle{#2}\middle\vert\smash{#1}\middle\vert{#2}%
-        \right\rangle%
-    }%
-}
-\CustomizeMathJax{%
-    \newcommand{\LWRexpectationvaluestar}[2]{%
-        \vphantom{#1#2}%
-        \left\langle\smash{#2}%
-        \middle\vert\smash{#1}\middle\vert\smash{#2}%
-        \right\rangle%
-    }%
-}
-\CustomizeMathJax{%
-    \newcommand{\LWRexpectationvaluedoublestar}[2]{%
-        \left\langle{#2}\middle\vert{#1}\middle\vert{#2}\right\rangle%
-    }%
-}
-\CustomizeMathJax{% second star
-    \DeclareIfstar{\LWRsubexpectationvalue}
-        {\LWRexpectationvaluedoublestar}{\LWRexpectationvaluestar}
-}
-\CustomizeMathJax{% first star
-    \DeclareIfstar{\expectationvalue}
-        {\LWRsubexpectationvalue}{\LWRexpectationvaluenostar}
-}
-
-\CustomizeMathJax{\let\expval\expectationvalue}
-\CustomizeMathJax{\let\ev\expectationvalue}
-
-
-\CustomizeMathJax{%
-    \newcommand{\LWRmatrixelementnostar}[3]{%
-        \vphantom{#2}\left\langle{#1}\middle\vert\smash{#2}\middle\vert{#3}\right\rangle%
-    }%
-}
-\CustomizeMathJax{%
-    \newcommand{\LWRmatrixelementstar}[3]{%
-        \vphantom{#1#2#3}%
-        \left\langle\smash{#1}%
-        \middle\vert\smash{#2}\middle\vert\smash{#3}%
-        \right\rangle%
-    }%
-}
-\CustomizeMathJax{%
-    \newcommand{\LWRmatrixelementdoublestar}[3]{%
-        \left\langle{#1}\middle\vert{#2}\middle\vert{#3}\right\rangle%
-    }%
-}
-\CustomizeMathJax{% second star
-    \DeclareIfstar{\LWRsubmatrixelement}
-        {\LWRmatrixelementdoublestar}{\LWRmatrixelementstar}
-}
-
-\CustomizeMathJax{% first star
-    \DeclareIfstar{\matrixelement}
-        {\LWRsubmatrixelement}{\LWRmatrixelementnostar}
-}
-
-\CustomizeMathJax{\let\mel\matrixelement}
-
-
-\CustomizeMathJax{\newcommand{\matrixquantity}[1]{\begin{matrix}#1\end{matrix}}}
-\CustomizeMathJax{\let\mqty\matrixquantity}
-
-
-\CustomizeMathJax{\newcommand{\pmqty}[1]{\begin{pmatrix}#1\end{pmatrix}}}
-\CustomizeMathJax{\newcommand{\Pmqty}[1]{%
-    \left\lgroup\begin{matrix}#1\end{matrix}\right\rgroup}%
-}
-\CustomizeMathJax{\newcommand{\bmqty}[1]{\begin{bmatrix}#1\end{bmatrix}}}
-\CustomizeMathJax{\newcommand{\vmqty}[1]{\begin{vmatrix}#1\end{vmatrix}}}
-
-\CustomizeMathJax{\newcommand{\smallmatrixquantity}[1]{%
-    \begin{smallmatrix}#1\end{smallmatrix}}%
-}
-\CustomizeMathJax{\let\smqty\smallmatrixquantity}
-\CustomizeMathJax{\newcommand{\spmqty}[1]{%
-    \pqty{\begin{smallmatrix}#1\end{smallmatrix}}}%
-}
-\CustomizeMathJax{\newcommand{\sPmqty}[1]{%
-    \left\lgroup\begin{smallmatrix}#1\end{smallmatrix}\right\rgroup}%
-}
-\CustomizeMathJax{\newcommand{\sbmqty}[1]{%
-    \bqty{\begin{smallmatrix}#1\end{smallmatrix}}}%
-}
-\CustomizeMathJax{\newcommand{\svmqty}[1]{%
-    \vqty{\begin{smallmatrix}#1\end{smallmatrix}}}%
-}
-
-\CustomizeMathJax{\let\matrixdeterminant\vmqty}
-\CustomizeMathJax{\let\mdet\vmqty}
-\CustomizeMathJax{\let\smdet\svmqty}
-
-\CustomizeMathJax{\newcommand{\identitymatrix}[1]{(\text{imat}\{#1\})}}
-\CustomizeMathJax{\let\imat\identitymatrix}
-
-\CustomizeMathJax{\newcommand{\LWRxmatrix}[3]{(\text{xmat}\{\}\{#2\}\{#3\})}}
-\CustomizeMathJax{\DeclareIfstar{\xmatrix}{\LWRxmatrix}{\LWRxmatrix}}
-\CustomizeMathJax{\let\xmat\xmatrix}
-
-\CustomizeMathJax{\newcommand{\zeromatrix}[2]{(\text{zmat}\{#1\}\{#2\})}}
-\CustomizeMathJax{\let\zmat\zeromatrix}
-
-\CustomizeMathJax{\newcommand{\paulimatrix}[1]{(\text{pmat}\{#1\})}}
-\CustomizeMathJax{\let\pmat\paulimatrix}
-
-\CustomizeMathJax{\newcommand{\diagonalmatrix}[2][]{%
-    \left(\text{dmat}\right)}%
-}
-\CustomizeMathJax{\let\dmat\diagonalmatrix}
-
-\CustomizeMathJax{\newcommand{\antidiagonalmatrix}[2][]{%
-    \left(\text{admat}\right)}%
-}
-\CustomizeMathJax{\let\admat\antidiagonalmatrix}
+\PackageWarningNoLine{lwarp, physics}{The MathJax v3 extension will be used}
+\CustomizeMathJax{\require{physics}}
 \end{warpMathJax}
 %    \end{macrocode}
 %
@@ -70271,8 +70047,70 @@
 %
 %
 %
+% \iffalse
+%<*splitbib>
+% \fi
 %
+% \part{lwarp-splitbib.sty}
+%
+% \section{splitbib}
+%
+% \credits{Nicolas Markey}
+%
+% \DescribePackage{splitbib}
+% \pkg{splitbib} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.87}{2020/05/17}{\pkg{splitbib}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{splitbib}[2005/12/22]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\NMSB at stylebox#1#2{%
+\begin{BlockClass}[text-align:center ; border: 1px solid black]{splitbibbox}
+    \csname SB\NMSB at level font\endcsname{\LWR at textcurrentfont{#1#2}}
+\end{BlockClass}
+}
+
+\def\NMSB at stylebar#1#2{%
+\begin{BlockClass}[%
+    text-align:center ;
+    border-top: 1px solid black ;
+    border-bottom: 1px solid black ;
+]{splitbibbar}
+    \csname SB\NMSB at level font\endcsname{\LWR at textcurrentfont{#1#2}}
+\end{BlockClass}
+}
+
+\def\NMSB at styledash#1#2{%
+\begin{BlockClass}[%
+    text-align:center ;
+]{splitbibdash}
+    \csname SB\NMSB at level font\endcsname{\LWR at textcurrentfont{---~#1#2~---}}
+\end{BlockClass}
+}
+
+\def\NMSB at stylenone#1#2{%
+    \par
+}
+
+\def\NMSB at stylesimple#1#2{%
+\par
+ \csname SB\NMSB at level font\endcsname{\LWR at textcurrentfont{#1#2}}
+\par
+}
+%    \end{macrocode}
+%
 % \iffalse
+%</splitbib>
+% \fi
+%
+%
+%
+% \iffalse
 %<*splitidx>
 % \fi
 %
@@ -70688,6 +70526,7 @@
 % \end{sourceverb}
 %
 % \changes{v0.81}{2020/02/28}{\pkg{statex2}: Added.}
+% \changes{v0.87}{2020/05/31}{\pkg{statex2}: \cs{pBin} exponent.}
 %
 % \codehtml
 %
@@ -70804,7 +70643,7 @@
     \I[#1]{\{0, 1,\., #2\}}, \where #3>0,\; #4>0 \and n=1, 2,\.}%
 }}
 \CustomizeMathJax{\newcommand{\pBin}[3][x]{%
-    \mb{\binom{#2}{#1}#3^#1} \LWRwrapparen{\mb{{1-#3}^{#2-#1}}}%
+    \mb{\binom{#2}{#1}#3^{#1}} \LWRwrapparen{\mb{{1-#3}^{#2-#1}}}%
     \mb{\I[#1]{\{0,1,\.,#2\}}, \where p \in (0, 1) \and n=1, 2,\.}%
 }}
 \CustomizeMathJax{\newcommand{\pPoi}[2][x]{%
@@ -77097,7 +76936,7 @@
 % \subsection{\cs{normalcolor}}
 %
 % \begin{macro}{\normalcolor}
-% \changes{v0.75}{2019/09/12}{Added for \HTML.}
+% \changes{v0.75}{2019/09/12}{\pkg{xcolor}: Added for \HTML.}
 %    \begin{macrocode}
 \DeclareRobustCommand{\LWR at HTML@normalcolor}{\color{black}}%
 
@@ -77153,7 +76992,7 @@
 %
 % \begin{noindmacro}{\LWR at colorstyle} \marg{2: model} \marg{3: color}
 %
-% \changes{v0.19}{2016/06/01}{Supports colored \cs{rule}.}
+% \changes{v0.19}{2016/06/01}{\pkg{xcolor}: Supports colored \cs{rule}.}
 % \changes{v0.36}{2017/08/11}{\pkg{xcolor}: Refactored \cs{LWR at colorstyle}.}
 %
 % For a color style, prints the color converted to \HTML\ colors.
@@ -77182,7 +77021,7 @@
 % Similar to \cs{textcolor}, but prints black text against a color background.
 %
 % Converted into an \HTML\ hex color span.
-% \changes{v0.44}{2017/11/10}{Added.}
+% \changes{v0.44}{2017/11/10}{\pkg{xcolor}: Added \cs{LWR at backgroundcolor}.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at backgroundcolor}{O{named} m m}{%
 \begingroup%
@@ -77223,7 +77062,7 @@
 % the lack of \HTML\ states and scoping limitations.
 % Use \cs{textcolor} if possible.
 %
-% \changes{v0.73}{2019/06/14}{Added \HTML\ support.}
+% \changes{v0.73}{2019/06/14}{\pkg{xcolor}: Added \HTML\ support.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at HTML@color}{o m}{%
 \IfValueTF{#1}{%
@@ -77322,7 +77161,7 @@
 \begingroup%
 \LWR at FBcancel%
 %    \end{macrocode}
-% \changes{v0.62}{2018/11/11}{Fix: Horiz white space.}
+% \changes{v0.62}{2018/11/11}{\pkg{xcolor}: Fix: Horiz white space.}
 %    \begin{macrocode}
 \LWR at stoppars%
 %    \end{macrocode}
@@ -77337,7 +77176,7 @@
 %    \end{macrocode}
 % Prevent paragraph tags around horizontal white space
 % until the start of the next paragraph:
-% \changes{v0.62}{2018/11/11}{Fix: Horiz white space.}
+% \changes{v0.62}{2018/11/11}{\pkg{xcolor}: Fix: Horiz white space.}
 %    \begin{macrocode}
 \global\booltrue{LWR at minipagethispar}%
 }
@@ -77399,7 +77238,7 @@
 \LWR at FBcancel%
 \LWR at forceminwidth{\fboxrule}%
 %    \end{macrocode}
-% \changes{v0.62}{2018/11/11}{Fix: Horiz white space.}
+% \changes{v0.62}{2018/11/11}{\pkg{xcolor}: Fix: Horiz white space.}
 %    \begin{macrocode}
 \LWR at stoppars%
 %    \end{macrocode}
@@ -77425,7 +77264,7 @@
 %    \end{macrocode}
 % Prevent paragraph tags around horizontal white space
 % until the start of the next paragraph:
-% \changes{v0.62}{2018/11/11}{Fix: Horiz white space.}
+% \changes{v0.62}{2018/11/11}{\pkg{xcolor}: Fix: Horiz white space.}
 %    \begin{macrocode}
 \global\booltrue{LWR at minipagethispar}%
 \LWR at traceinfo{HTML fcolorboxBlock done}%
@@ -77443,7 +77282,7 @@
 %
 % A print-output version is defined in the \pkg{lwarp} core: \cref{sec:xcolorpatches}
 %
-% \changes{v0.34}{2017/07/31}{Added.}
+% \changes{v0.34}{2017/07/31}{\pkg{xcolor}: Added \cs{LWR at subfcolorminipage}.}
 %
 % \begin{noindmacro}{\LWR at subfcolorminipage}
 %	\marg{framemodel} \marg{framecolor} \marg{background tag} \marg{height}
@@ -77450,7 +77289,7 @@
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at subfcolorminipage}{m m m m}{%
 %    \end{macrocode}
-% \changes{v0.62}{2018/11/11}{Fix: Horiz white space.}
+% \changes{v0.62}{2018/11/11}{\pkg{xcolor}: Fix: Horiz white space.}
 %    \begin{macrocode}
 \LWR at stoppars%
 %    \end{macrocode}
@@ -77492,7 +77331,7 @@
 %    \end{macrocode}
 % Prevent paragraph tags around horizontal white space
 % until the start of the next paragraph:
-% \changes{v0.62}{2018/11/11}{Fix: Horiz white space.}
+% \changes{v0.62}{2018/11/11}{\pkg{xcolor}: Fix: Horiz white space.}
 %    \begin{macrocode}
     \global\booltrue{LWR at minipagethispar}%
 }

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2020-06-03 21:24:42 UTC (rev 55405)
@@ -113,6 +113,7 @@
 \file{lwarp-chkfloat.sty}{\from{lwarp.dtx}{chkfloat}}
 \file{lwarp-chngpage.sty}{\from{lwarp.dtx}{chngpage}}
 \file{lwarp-cite.sty}{\from{lwarp.dtx}{cite}}
+\file{lwarp-citeref.sty}{\from{lwarp.dtx}{citeref}}
 \file{lwarp-CJK.sty}{\from{lwarp.dtx}{CJK}}
 \file{lwarp-CJKutf8.sty}{\from{lwarp.dtx}{CJKutf8}}
 \file{lwarp-clrdblpg.sty}{\from{lwarp.dtx}{clrdblpg}}
@@ -138,6 +139,7 @@
 \file{lwarp-draftcopy.sty}{\from{lwarp.dtx}{draftcopy}}
 \file{lwarp-draftfigure.sty}{\from{lwarp.dtx}{draftfigure}}
 \file{lwarp-draftwatermark.sty}{\from{lwarp.dtx}{draftwatermark}}
+\file{lwarp-drftcite.sty}{\from{lwarp.dtx}{drftcite}}
 \file{lwarp-easy-todo.sty}{\from{lwarp.dtx}{easy-todo}}
 \file{lwarp-ebook.sty}{\from{lwarp.dtx}{ebook}}
 \file{lwarp-econometrics.sty}{\from{lwarp.dtx}{econometrics}}
@@ -188,6 +190,7 @@
 \file{lwarp-fnbreak.sty}{\from{lwarp.dtx}{fnbreak}}
 \file{lwarp-fncychap.sty}{\from{lwarp.dtx}{fncychap}}
 \file{lwarp-fnlineno.sty}{\from{lwarp.dtx}{fnlineno}}
+\file{lwarp-fnpara.sty}{\from{lwarp.dtx}{fnpara}}
 \file{lwarp-fnpos.sty}{\from{lwarp.dtx}{fnpos}}
 \file{lwarp-fontawesome.sty}{\from{lwarp.dtx}{fontawesome}}
 \file{lwarp-fontawesome5.sty}{\from{lwarp.dtx}{fontawesome5}}
@@ -238,6 +241,7 @@
 \file{lwarp-index.sty}{\from{lwarp.dtx}{index}}
 \file{lwarp-inputtrc.sty}{\from{lwarp.dtx}{inputtrc}}
 \file{lwarp-intopdf.sty}{\from{lwarp.dtx}{intopdf}}
+\file{lwarp-jurabib.sty}{\from{lwarp.dtx}{jurabib}}
 \file{lwarp-karnaugh-map.sty}{\from{lwarp.dtx}{karnaugh-map}}
 \file{lwarp-keyfloat.sty}{\from{lwarp.dtx}{keyfloat}}
 \file{lwarp-layaureo.sty}{\from{lwarp.dtx}{layaureo}}
@@ -294,6 +298,7 @@
 \file{lwarp-moreverb.sty}{\from{lwarp.dtx}{moreverb}}
 \file{lwarp-movie15.sty}{\from{lwarp.dtx}{movie15}}
 \file{lwarp-mparhack.sty}{\from{lwarp.dtx}{mparhack}}
+\file{lwarp-multibib.sty}{\from{lwarp.dtx}{multibib}}
 \file{lwarp-multicap.sty}{\from{lwarp.dtx}{multicap}}
 \file{lwarp-multicol.sty}{\from{lwarp.dtx}{multicol}}
 \file{lwarp-multicolrule.sty}{\from{lwarp.dtx}{multicolrule}}
@@ -417,6 +422,7 @@
 \file{lwarp-soul.sty}{\from{lwarp.dtx}{soul}}
 \file{lwarp-soulpos.sty}{\from{lwarp.dtx}{soulpos}}
 \file{lwarp-soulutf8.sty}{\from{lwarp.dtx}{soulutf8}}
+\file{lwarp-splitbib.sty}{\from{lwarp.dtx}{splitbib}}
 \file{lwarp-splitidx.sty}{\from{lwarp.dtx}{splitidx}}
 \file{lwarp-srcltx.sty}{\from{lwarp.dtx}{srcltx}}
 \file{lwarp-srctex.sty}{\from{lwarp.dtx}{srctex}}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -17,8 +17,6 @@
 %% version 2005/12/01 or later.
 \LWR at ProvidesPackageDrop{afterpage}[2014/10/28]
 \newcommand{\afterpage}[1]{#1}
-\LWR at ProvidesPackageDrop{afterpage}[2014/10/28]
-\newcommand{\afterpage}[1]{#1}
 \endinput
 %%
 %% End of file `lwarp-afterpage.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-cancel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-cancel.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-cancel.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -45,6 +45,11 @@
 
 \LetLtxMacro\bcancel\cancel
 \LetLtxMacro\xcancel\cancel
+\begin{warpMathJax}
+\PackageWarningNoLine{lwarp, cancel}{The MathJax v3 extension will be used}
+\CustomizeMathJax{\require{cancel}}
+\end{warpMathJax}
+
 \endinput
 %%
 %% End of file `lwarp-cancel.sty'.

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-citeref.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-citeref.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-citeref.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -0,0 +1,35 @@
+%%
+%% This is file `lwarp-citeref.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `citeref')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{citeref}[1999/27/05]
+\def\@cprwrite#1={\write\@auxout{\string\citepageref{#1}{\theLWR at currentautosec}}}
+
+\def\citepageref#1#2{%
+    \xdef\cpr at testa{\@nameuse{cpr at last@#1}}%letzte Zitatstelle
+    \xdef\cpr at testb{#2}% Seite dieser Zitatstelle
+    \ifx\cpr at testa\cpr at testb%
+        \relax% Konsekutive identische Seitenangaben weglassen
+    \else%
+        \@namexdef{cpr at last@#1}{#2}%
+        \@ifundefined{cpr@#1}%
+            {\@namexdef{cpr@#1}{\ref{\BaseJobname-autopage-#2}}}%   lwarp
+            {\@namexdef{cpr@#1}{\@nameuse{cpr@#1}, \ref{\BaseJobname-autopage-#2}}}%    lwarp
+    \fi
+    }
+\endinput
+%%
+%% End of file `lwarp-citeref.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-citeref.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-drftcite.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-drftcite.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-drftcite.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -0,0 +1,28 @@
+%%
+%% This is file `lwarp-drftcite.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `drftcite')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{drftcite}[1995/01/23]
+\def\@lbibitem[#1]#2{\global\@HighCite\z@
+  \item[
+    \textsuperscript{\@nameuse{DCN@#2\@extra at b@citeb}}~%     lwarp
+    \@biblabel{\@ifundefined{DCN@#2\@extra at b@citeb}{\@warning
+    {Reference `#2' on page \thepage\space was never cited}}{}%
+   \@citeverb{#2}}\hfil]\if at filesw{\def\protect##1{\string ##1\space}%
+   \immediate\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+\endinput
+%%
+%% End of file `lwarp-drftcite.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-drftcite.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-embrac.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-embrac.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-embrac.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -16,6 +16,9 @@
 %% and version 1.3 or later is part of all distributions of LaTeX
 %% version 2005/12/01 or later.
 \LWR at ProvidesPackagePass{embrac}[2017/07/04]
+\ExplSyntaxOn
+\RenewDocumentCommand{\embrac_kern:n}{m}{}
+\ExplSyntaxOff
 \LetLtxMacro\LWR at orig@HTML at emph\LWR at HTML@emph
 \RenewDocumentCommand{\LWR at HTML@emph}{s m}{\LWR at orig@HTML at emph{#2}}
 

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


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-fnpara.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-jurabib.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-jurabib.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-jurabib.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -0,0 +1,76 @@
+%%
+%% This is file `lwarp-jurabib.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `jurabib')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{jurabib}[2004/01/25]
+\renewrobustcmd{\jblangle}{\textless}
+
+\renewrobustcmd{\jbrangle}{\textgreater}
+
+\renewcommand*{\jb at biblaw@item}{%
+    \hspace{0.5em}%
+    \HTMLunicode{25B7}%     lwarp
+    \hspace{0.5em}%
+}
+
+\renewrobustcmd{\jbarchsig}[2]{%
+     \ifjbweareinbib
+        \settowidth{\jb at subarchitemwidth}{\jbsamesubarchindent+#1}%
+        \setlength{\jb at subarchentrywidth}{\textwidth-\jb at subarchitemwidth-4em}%
+           #1\ifjb at dot\unskip\unskip\unskip.\fi
+            \quad%      lwarp
+            \ifthenelse{\equal{#2}{}}{}{\jbarchnameformat{#2}}%
+     \fi
+}%
+
+\xpatchcmd{\jb at do@post at item}
+    {\begin{tabular}{p{\jb at biblaw@item at width}j{\jb at biblaw@entry at width}}}
+    {}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 1}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\multicolumn{2}{p{\columnwidth}}{\jb@@name}}
+    {\jb@@name}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 2}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\jb at biblaw@item & \jb@@fulltitle}
+    {\jb at biblaw@item \quad \jb@@fulltitle}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 3}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\end{tabular}}
+    {}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 4}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\begin{minipage}[t]{\bibnumberwidth}}
+    {}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 5}}
+
+\xpatchcmd{\jb at do@post at item}
+    {\end{minipage}}
+    {\quad}
+    {}
+    {\LWR at patcherror{jurabib}{jb at do@post at item 6}}
+\endinput
+%%
+%% End of file `lwarp-jurabib.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-jurabib.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mathtools.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mathtools.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mathtools.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -68,10 +68,10 @@
 \CustomizeMathJax{\Newextarrow\xleftharpoonup{10,10}{0x21bc}}
 \CustomizeMathJax{\Newextarrow\xleftrightharpoons{10,10}{0x21cb}}
 
-\CustomizeMathJax{\newcommand{\LWRdounderbracket}[1]{\underline{#1}}}
+\CustomizeMathJax{\newcommand{\LWRdounderbracket}[3]{\underset{#3}{\underline{#1}}}}
 \CustomizeMathJax{\newcommand{\LWRunderbracket}[2][]{\LWRdounderbracket{#2}}}
 \CustomizeMathJax{\newcommand{\underbracket}[1][]{\LWRunderbracket}}
-\CustomizeMathJax{\newcommand{\LWRdooverbracket}[1]{\overline{#1}}}
+\CustomizeMathJax{\newcommand{\LWRdooverbracket}[3]{\overset{#3}{\overline{#1}}}}
 \CustomizeMathJax{\newcommand{\LWRoverbracket}[2][]{\LWRdooverbracket{#2}}}
 \CustomizeMathJax{\newcommand{\overbracket}[1][]{\LWRoverbracket}}
 
@@ -120,7 +120,7 @@
 }
 \CustomizeMathJax{
     \newcommand{\LWRABLines}[1][\Updownarrow]{#1 \notag \\}% star/nostar the same
-    \DeclareIfstar{\ArrowBetweenLines}{\LWRABLines}{\LWRABLines}
+    \newcommand{\ArrowBetweenLines}{\ifstar\LWRABLines\LWRABLines}
 }
 \CustomizeMathJax{\newcommand{\shortintertext}[1]{\text{#1}\notag \\}}
 
@@ -128,9 +128,8 @@
 \CustomizeMathJax{\newcommand{\LWRshortvdotswithinstar}[1]{\vdots \hspace{.5em} & \\}}
 \CustomizeMathJax{\newcommand{\LWRshortvdotswithinnostar}[1]{& \hspace{.5em}\vdots \\}}
 \CustomizeMathJax{%
-    \DeclareIfstar{\shortvdotswithin}%
-        {\LWRshortvdotswithinstar}%
-        {\LWRshortvdotswithinnostar}%
+    \newcommand{\shortvdotswithin}%
+        {\ifstar\LWRshortvdotswithinstar\LWRshortvdotswithinnostar}%
 }
 
 \CustomizeMathJax{\newcommand{\MTFlushSpaceAbove}{}}
@@ -159,9 +158,11 @@
     \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
     \appto\LWR at customizedMathJax{\LWRbackslash(}
     \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}DeclareIfstar\{\LWRbackslash{}\macrotocsname{#1}\}%
-        \{\LWRbackslash{}\macrotocsname{#1}LWRsubstar\}%
-        \{\LWRbackslash{}\macrotocsname{#1}LWRsubnostar\}%
+        \LWRbackslash{}newcommand\{\LWRbackslash{}\macrotocsname{#1}\}%
+        \{\LWRbackslash{}ifstar%
+            \LWRbackslash{}\macrotocsname{#1}LWRsubstar%
+            \LWRbackslash{}\macrotocsname{#1}LWRsubnostar%
+        \}%
     }%
     \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
 }
@@ -217,9 +218,13 @@
     \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
     \appto\LWR at customizedMathJax{\LWRbackslash(}
     \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}DeclareIfstar\{\LWRbackslash{}\macrotocsname{#1}\}%
-        \{\LWRbackslash{}\macrotocsname{#1}LWRsubstar\}%
-        \{\LWRbackslash{}\macrotocsname{#1}LWRsubnostar\}%
+        \LWRbackslash{}newcommand\{%
+            \LWRbackslash{}\macrotocsname{#1}%
+        \}%
+            \{\LWRbackslash{}ifstar%
+                \LWRbackslash{}\macrotocsname{#1}LWRsubstar%
+                \LWRbackslash{}\macrotocsname{#1}LWRsubnostar%
+            \}%
     }%
     \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
 }

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mhchem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mhchem.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mhchem.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -93,6 +93,10 @@
 \LetLtxMacro\cesplit\LWR at mhchem@origcesplit%
 }
 
+\begin{warpHTML}
+\CustomizeMathJax{\require{mhchem}}
+\end{warpHTML}
+
 \endinput
 %%
 %% End of file `lwarp-mhchem.sty'.

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multibib.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multibib.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multibib.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -0,0 +1,26 @@
+%%
+%% This is file `lwarp-multibib.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `multibib')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{multibib}[2008/12/10]
+\xpatchcmd{\newcites}
+    {{\@suffix}}
+    {{\@suffix_html}}
+    {}
+    {\LWR at patcherror{multibib}{newcites}}
+\endinput
+%%
+%% End of file `lwarp-multibib.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multibib.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccmath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccmath.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-nccmath.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -54,10 +54,10 @@
 \CustomizeMathJax{\newenvironment{darray}[2][c]{\begin{array}[#1]{#2}}{\end{array}}}
 \CustomizeMathJax{\newcommand{\dmulticolumn}[3]{#3}}
 \CustomizeMathJax{\newcommand{\LWRnrnostar}[1][0.5ex]{\\[#1]}}
-\CustomizeMathJax{\DeclareIfstar{\nr}{\LWRnrnostar}{\LWRnrnostar}}
+\CustomizeMathJax{\newcommand{\nr}{\ifstar\LWRnrnostar\LWRnrnostar}}
 
 \CustomizeMathJax{\newcommand{\mrel}[1]{\begin{aligned}#1\end{aligned}}}
-\CustomizeMathJax{\newcommand{\underrel}[2]{{#1}_{#2}}}
+\CustomizeMathJax{\newcommand{\underrel}[2]{\underset{#2}{#1}}}
 \CustomizeMathJax{\newcommand{\medmath}[1]{#1}}
 \CustomizeMathJax{\newcommand{\medop}[1]{#1}}
 \CustomizeMathJax{\newcommand{\medint}[1]{#1}}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-physics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-physics.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-physics.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -17,437 +17,8 @@
 %% version 2005/12/01 or later.
 \LWR at ProvidesPackagePass{physics}% No date is provided by the package.
 \begin{warpMathJax}
-\LWR at infoprocessingmathjax{physics}
-
-\CustomizeMathJax{\newcommand{\quantity}{}}
-\CustomizeMathJax{\let\qty\quantity}
-\CustomizeMathJax{\newcommand{\pqty}[1]{\left(#1\right)}}
-\CustomizeMathJax{\newcommand{\bqty}[1]{\left\lbrack#1\right\rbrack}}
-\CustomizeMathJax{\newcommand{\vqty}[1]{\left\vert#1\right\rvert}}
-\CustomizeMathJax{\newcommand{\Bqty}[1]{\left\lbrace#1\right\rbrace}}
-
-\CustomizeMathJax{\newcommand{\LWRabsolutevaluenostar}[1]{\left\lvert#1\right\rvert}}
-\CustomizeMathJax{\newcommand{\LWRabsolutevaluestar}[1]{\lvert#1\rvert}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\absolutevalue}{\LWRabsolutevaluestar}{\LWRabsolutevaluenostar}%
-}
-
-\CustomizeMathJax{\let\abs\absolutevalue}
-
-\CustomizeMathJax{%
-    \newcommand{\LWRnormnostar}[1]{\left\lvert\left\lvert#1\right\rvert\right\rvert}%
-}
-\CustomizeMathJax{\newcommand{\LWRnormstar}[1]{\lvert\lvert#1\rvert\rvert}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\norm}{\LWRnormstar}{\LWRnormnostar}%
-}
-
-\CustomizeMathJax{\newcommand{\LWRevaluatednostar}[1]{\left . #1\right\vert}}
-\CustomizeMathJax{\newcommand{\LWRevaluatedstar}[1]{#1\vert}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\evaluated}{\LWRevaluatedstar}{\LWRevaluatednostar}%
-}
-
-\CustomizeMathJax{\let\eval\evaluated}
-
-\CustomizeMathJax{\newcommand{\LWRordernostar}[1]{\mathcal{O}\left(#1\right)}}
-\CustomizeMathJax{\newcommand{\LWRorderstar}[1]{\mathcal{O}(#1)}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\order}{\LWRorderstar}{\LWRordernostar}%
-}
-
-\CustomizeMathJax{\newcommand{\LWRcommutatornostar}[2]{\left\lbrack#1,#2\right\rbrack}}
-\CustomizeMathJax{\newcommand{\LWRcommutatorstar}[2]{\lbrack#1,#2\rbrack}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\commutator}{\LWRcommutatorstar}{\LWRcommutatornostar}%
-}
-
-\CustomizeMathJax{\let\comm\commutator}
-
-\CustomizeMathJax{\newcommand{\LWRanticommutatornostar}[2]{%
-    \left\lbrace#1,#2\right\rbrace}%
-}
-\CustomizeMathJax{\newcommand{\LWRanticommutatorstar}[2]{%
-    \lbrace#1,#2\rbrace}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\anticommutator}{\LWRanticommutatorstar}{\LWRanticommutatornostar}%
-}
-
-\CustomizeMathJax{\let\acomm\anticommutator}
-
-\CustomizeMathJax{\let\poissonbracket\anticommutator}
-\CustomizeMathJax{\let\pb\anticommutator}
-
-\CustomizeMathJax{\newcommand{\LWRvectorboldnostar}[1]{\mathbf{#1}}}
-\CustomizeMathJax{\newcommand{\LWRvectorboldstar}[1]{\pmb{#1}}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\vectorbold}{\LWRvectorboldstar}{\LWRvectorboldnostar}%
-}
-\CustomizeMathJax{\let\vb\vectorbold}
-
-\CustomizeMathJax{\newcommand{\LWRvectorarrownostar}[1]{\vec{\mathbf{#1}}}}
-\CustomizeMathJax{\newcommand{\LWRvectorarrowstar}[1]{\vec{\pmb{#1}}}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\vectorarrow}{\LWRvectorarrowstar}{\LWRvectorarrownostar}%
-}
-\CustomizeMathJax{\let\va\vectorarrow}
-
-\CustomizeMathJax{\newcommand{\LWRvectorunitnostar}[1]{\mathbf{\hat{#1}}}}
-\CustomizeMathJax{\newcommand{\LWRvectorunitstar}[1]{\pmb{\hat{#1}}}}
-\CustomizeMathJax{%
-    \DeclareIfstar{\vectorunit}{\LWRvectorunitstar}{\LWRvectorunitnostar}%
-}
-\CustomizeMathJax{\let\va\vectorunit}
-
-\CustomizeMathJax{\newcommand{\dotproduct}{\boldsymbol\cdot}}
-\CustomizeMathJax{\let\vdot\dotproduct}
-
-\CustomizeMathJax{\newcommand{\crossproduct}{\boldsymbol\times}}
-\CustomizeMathJax{\let\cross\crossproduct}
-\CustomizeMathJax{\let\cp\crossproduct}
-
-\CustomizeMathJax{\newcommand{\gradient}{\mathbf{\nabla}}}
-\CustomizeMathJax{\let\grad\gradient}
-
-\CustomizeMathJax{\let\divisionsymbol\div}
-
-\CustomizeMathJax{\newcommand{\divergence}{\nabla\vdot}}
-\CustomizeMathJax{\let\div\divergence}
-
-\CustomizeMathJax{\newcommand{\curl}{\nabla\cross}}
-
-\CustomizeMathJax{\newcommand{\laplacian}{\nabla^2}}
-
-\ifx\trigopt 1
-    \CustomizeMathJax{\DeclareMathOperator{\sine}{sin}}
-    \CustomizeMathJax{\DeclareMathOperator{\cosine}{cos}}
-    \CustomizeMathJax{\DeclareMathOperator{\tangent}{tan}}
-    \CustomizeMathJax{\DeclareMathOperator{\cosecant}{csc}}
-    \CustomizeMathJax{\DeclareMathOperator{\secant}{sec}}
-    \CustomizeMathJax{\DeclareMathOperator{\cotangent}{cot}}
-    \CustomizeMathJax{\DeclareMathOperator{\arcsine}{arcsin}}
-    \CustomizeMathJax{\DeclareMathOperator{\arccosine}{arccos}}
-    \CustomizeMathJax{\DeclareMathOperator{\arctangent}{arctan}}
-    \CustomizeMathJax{\DeclareMathOperator{\hypsine}{sinh}}
-    \CustomizeMathJax{\DeclareMathOperator{\hypcosine}{cosh}}
-    \CustomizeMathJax{\DeclareMathOperator{\hyptangent}{tanh}}
-    \CustomizeMathJax{\DeclareMathOperator{\hypcotangent}{coth}}
-    \CustomizeMathJax{\DeclareMathOperator{\exponential}{exp}}
-    \CustomizeMathJax{\DeclareMathOperator{\logarithm}{log}}
-    \CustomizeMathJax{\DeclareMathOperator{\naturallogarithm}{\ln}}
-    \CustomizeMathJax{\DeclareMathOperator{\determinant}{det}}
-    \CustomizeMathJax{\DeclareMathOperator{\Probability}{Pr}}
-    \CustomizeMathJax{\newcommand{\sin}[1][{}]{\mathrm{sin}^#1}}
-    \CustomizeMathJax{\newcommand{\sinh}[1][{}]{\mathrm{sinh}^#1}}
-    \CustomizeMathJax{\newcommand{\arcsin}[1][{}]{\mathrm{arcsin}^#1}}
-    \CustomizeMathJax{\newcommand{\asin}[1][{}]{\mathrm{asin}^#1}}
-    \CustomizeMathJax{\newcommand{\cos}[1][{}]{\mathrm{cos}^#1}}
-    \CustomizeMathJax{\newcommand{\cosh}[1][{}]{\mathrm{cosh}^#1}}
-    \CustomizeMathJax{\newcommand{\arccos}[1][{}]{\mathrm{arccos}^#1}}
-    \CustomizeMathJax{\newcommand{\acos}[1][{}]{\mathrm{acos}^#1}}
-    \CustomizeMathJax{\newcommand{\tan}[1][{}]{\mathrm{tan}^#1}}
-    \CustomizeMathJax{\newcommand{\tanh}[1][{}]{\mathrm{tanh}^#1}}
-    \CustomizeMathJax{\newcommand{\arctan}[1][{}]{\mathrm{arctan}^#1}}
-    \CustomizeMathJax{\newcommand{\atan}[1][{}]{\mathrm{atan}^#1}}
-    \CustomizeMathJax{\newcommand{\csc}[1][{}]{\mathrm{csc}^#1}}
-    \CustomizeMathJax{\newcommand{\csch}[1][{}]{\mathrm{csch}^#1}}
-    \CustomizeMathJax{\newcommand{\arccsc}[1][{}]{\mathrm{arccsc}^#1}}
-    \CustomizeMathJax{\newcommand{\acsc}[1][{}]{\mathrm{acsc}^#1}}
-    \CustomizeMathJax{\newcommand{\sec}[1][{}]{\mathrm{sec}^#1}}
-    \CustomizeMathJax{\newcommand{\sech}[1][{}]{\mathrm{sech}^#1}}
-    \CustomizeMathJax{\newcommand{\arcsec}[1][{}]{\mathrm{arcsec}^#1}}
-    \CustomizeMathJax{\newcommand{\asec}[1][{}]{\mathrm{asec}^#1}}
-    \CustomizeMathJax{\newcommand{\cot}[1][{}]{\mathrm{cot}^#1}}
-    \CustomizeMathJax{\newcommand{\coth}[1][{}]{\mathrm{coth}^#1}}
-    \CustomizeMathJax{\newcommand{\arccot}[1][{}]{\mathrm{arccot}^#1}}
-    \CustomizeMathJax{\newcommand{\acot}[1][{}]{\mathrm{acot}^#1}}
-\else
-    \CustomizeMathJax{\DeclareMathOperator{\arccsc}{arccsc}}
-    \CustomizeMathJax{\DeclareMathOperator{\arcsec}{arcsec}}
-    \CustomizeMathJax{\DeclareMathOperator{\arccot}{arccot}}
-    \CustomizeMathJax{\DeclareMathOperator{\asin}{asin}}
-    \CustomizeMathJax{\DeclareMathOperator{\acos}{acos}}
-    \CustomizeMathJax{\DeclareMathOperator{\atan}{atan}}
-    \CustomizeMathJax{\DeclareMathOperator{\acsc}{acsc}}
-    \CustomizeMathJax{\DeclareMathOperator{\asec}{asec}}
-    \CustomizeMathJax{\DeclareMathOperator{\acot}{acot}}
-    \CustomizeMathJax{\DeclareMathOperator{\csch}{csch}}
-    \CustomizeMathJax{\DeclareMathOperator{\sech}{sech}}
-    \CustomizeMathJax{\newcommand{\tr}{\trace}}
-    \CustomizeMathJax{\newcommand{\Tr}{\Trace}}
-    \CustomizeMathJax{\newcommand{\Res}{\Residue}}
-\fi
-
-\CustomizeMathJax{\DeclareMathOperator{\trace}{tr}}
-\CustomizeMathJax{\let\tr\trace}
-\CustomizeMathJax{\DeclareMathOperator{\Trace}{Tr}}
-\CustomizeMathJax{\let\Tr\Trace}
-\CustomizeMathJax{\DeclareMathOperator{\rank}{rank}}
-\CustomizeMathJax{\DeclareMathOperator{\erf}{erf}}
-\CustomizeMathJax{\DeclareMathOperator{\Residue}{Res}}
-\CustomizeMathJax{\newcommand{\principalvalue}{\mathcal{P}}}
-\CustomizeMathJax{\let\pv\principalvalue}
-\CustomizeMathJax{\newcommand{\PV}{\text{P.V.}}}
-\CustomizeMathJax{\newcommand{\real}{\mathcal{R}}}
-\CustomizeMathJax{\newcommand{\imaginary}{\mathcal{I}}}
-
-\CustomizeMathJax{\newcommand{\Re}[1]{\mathrm{Re}\left\lbrace#1\right\rbrace}}
-\CustomizeMathJax{\newcommand{\Im}[1]{\mathrm{Im}\left\lbrace#1\right\rbrace}}
-
-\CustomizeMathJax{\newcommand{\LWRqqtextnostar}[1]{\quad\mathrm{#1}\quad}}
-\CustomizeMathJax{\newcommand{\LWRqqtextstar}[1]{\mathrm{#1}\quad}}
-\CustomizeMathJax{\DeclareIfstar{\qqtext}{\LWRqqtextstar}{\LWRqqtextnostar}}
-\CustomizeMathJax{\let\qq\qqtext}
-
-\CustomizeMathJax{\newcommand{\qqcomma}{\text{,}\quad}}
-\CustomizeMathJax{\let\qc\qqcomma}
-
-\newcommand*{\LWR at physics@qtext}[2]{%
-    \appto\LWR at customizedMathJax{\LWRbackslash(}
-    \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}newcommand\{\LWRbackslash{}LWR\macrotocsname{#1}subnostar\}%
-    }%
-    \appto\LWR at customizedMathJax{\{}%
-    \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}quad\LWRbackslash{}text\{#2\}\LWRbackslash{}quad%
-    }%
-    \appto\LWR at customizedMathJax{\}}%
-    \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
-    \appto\LWR at customizedMathJax{\LWRbackslash(}
-    \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}newcommand\{\LWRbackslash{}LWR\macrotocsname{#1}substar\}%
-    }%
-    \appto\LWR at customizedMathJax{\{}%
-    \appto\LWR at customizedMathJax{\LWRbackslash{}text\{#2\}\LWRbackslash{}quad}%
-    \appto\LWR at customizedMathJax{\}}%
-    \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
-    \appto\LWR at customizedMathJax{\LWRbackslash(}
-    \appto\LWR at customizedMathJax{%
-        \LWRbackslash{}DeclareIfstar\{\LWRbackslash\macrotocsname{#1}\}%
-    }%
-    \appto\LWR at customizedMathJax{\{}%
-    \appto\LWR at customizedMathJax{\LWRbackslash{}LWR\macrotocsname{#1}substar\}}%
-    \appto\LWR at customizedMathJax{\LWRbackslash{}LWR\macrotocsname{#1}subnostar\}}%
-    \appto\LWR at customizedMathJax{\LWRbackslash)\par}%
-}
-
-\LWR at physics@qtext{\qcc}{c.c.}
-\LWR at physics@qtext{\qif}{if}
-\LWR at physics@qtext{\qthen}{then}
-\LWR at physics@qtext{\qelse}{else}
-\LWR at physics@qtext{\qotherwise}{otherwise}
-\LWR at physics@qtext{\qunless}{unless}
-\LWR at physics@qtext{\qgiven}{given}
-\LWR at physics@qtext{\qusing}{using}
-\LWR at physics@qtext{\qassume}{assume}
-\LWR at physics@qtext{\qsince}{since}
-\LWR at physics@qtext{\qlet}{let}
-\LWR at physics@qtext{\qfor}{for}
-\LWR at physics@qtext{\qall}{all}
-\LWR at physics@qtext{\qeven}{even}
-\LWR at physics@qtext{\qodd}{odd}
-\LWR at physics@qtext{\qinteger}{integer}
-\LWR at physics@qtext{\qand}{and}
-\LWR at physics@qtext{\qor}{or}
-\LWR at physics@qtext{\qas}{as}
-\LWR at physics@qtext{\qin}{in}
-
-\CustomizeMathJax{\newcommand{\differential}[1][]{\text{d}^{#1}}}
-\CustomizeMathJax{\let\dd\differential}
-
-\CustomizeMathJax{\newcommand{\LWRderivativenostar}[3][]{%
-    \frac{\text{d}^{#1}#2}{\text{d}#3^{#1}}}%
-}
-\CustomizeMathJax{\newcommand{\LWRderivativestar}[3][]{%
-    {\text{d}^{#1}#2}/{\text{d}#3^{#1}}}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\derivative}{\LWRderivativestar}{\LWRderivativenostar}%
-}
-
-\CustomizeMathJax{\let\dv\derivative}
-
-\CustomizeMathJax{\newcommand{\LWRpartialderivativenostar}[3][]{%
-    \frac{\partial^{#1}#2}{\partial#3^{#1}}}%
-}
-\CustomizeMathJax{\newcommand{\LWRpartialderivativestar}[3][]{%
-    {\partial^{#1}#2}/{\partial#3^{#1}}}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\partialderivative}%
-        {\LWRpartialderivativestar}{\LWRpartialderivativenostar}
-}
-
-\CustomizeMathJax{\let\pderivative\partialderivative}
-\CustomizeMathJax{\let\pdv\partialderivative}
-
-\CustomizeMathJax{\newcommand{\variation}{\delta}}
-\CustomizeMathJax{\let\var\variation}
-
-\CustomizeMathJax{\newcommand{\LWRfunctionalderivativenostar}[3][]{%
-    \frac{\delta^{#1}#2}{\delta#3^{#1}}}%
-}
-\CustomizeMathJax{\newcommand{\LWRfunctionalderivativestar}[3][]{%
-    {\delta^{#1}#2}/{\delta#3^{#1}}}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\functionalderivative}
-        {\LWRfunctionalderivativestar}{\LWRfunctionalderivativenostar}
-}
-\CustomizeMathJax{\let\fdv\functionalderivative}
-
-\CustomizeMathJax{\newcommand{\LWRbranostar}[1]{\left\langle{#1}\right\rvert}}
-\CustomizeMathJax{\newcommand{\LWRbrastar}[1]{\langle{#1}\rvert}}
-\CustomizeMathJax{\DeclareIfstar{\bra}{\LWRbrastar}{\LWRbranostar}}
-
-\CustomizeMathJax{\newcommand{\LWRketnostar}[1]{\left\lvert{#1}\right\rangle}}
-\CustomizeMathJax{\newcommand{\LWRketstar}[1]{\lvert{#1}\rangle}}
-\CustomizeMathJax{\DeclareIfstar{\ket}{\LWRketstar}{\LWRketnostar}}
-
-\CustomizeMathJax{\newcommand{\LWRinnerproductnostar}[2]{%
-    \left\langle{#1}\middle\vert{#2}\right\rangle}%
-}
-\CustomizeMathJax{\newcommand{\LWRinnerproductstar}[2]{%
-    \langle{#1}\vert{#2}\rangle}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\innerproduct}
-        {\LWRinnerproductstar}{\LWRinnerproductnostar}
-}
-
-\CustomizeMathJax{\let\braket\innerproduct}
-\CustomizeMathJax{\let\ip\innerproduct}
-
-\CustomizeMathJax{\newcommand{\LWRouterproductnostar}[2]{%
-    \left\lvert{#1}\middle\rangle\!\middle\langle#2\right\rvert}%
-}
-\CustomizeMathJax{\newcommand{\LWRouterproductstar}[2]{%
-    \lvert{#1}\rangle\!\langle#2\rvert}%
-}
-\CustomizeMathJax{%
-    \DeclareIfstar{\outerproduct}
-        {\LWRouterproductstar}{\LWRouterproductnostar}
-}
-
-\CustomizeMathJax{\let\dyad\outerproduct}
-\CustomizeMathJax{\let\op\outerproduct}
-
-\CustomizeMathJax{%
-    \newcommand{\LWRexpectationvaluenostar}[2]{%
-        \vphantom{#1}%
-        \left\langle{#2}\middle\vert\smash{#1}\middle\vert{#2}%
-        \right\rangle%
-    }%
-}
-\CustomizeMathJax{%
-    \newcommand{\LWRexpectationvaluestar}[2]{%
-        \vphantom{#1#2}%
-        \left\langle\smash{#2}%
-        \middle\vert\smash{#1}\middle\vert\smash{#2}%
-        \right\rangle%
-    }%
-}
-\CustomizeMathJax{%
-    \newcommand{\LWRexpectationvaluedoublestar}[2]{%
-        \left\langle{#2}\middle\vert{#1}\middle\vert{#2}\right\rangle%
-    }%
-}
-\CustomizeMathJax{% second star
-    \DeclareIfstar{\LWRsubexpectationvalue}
-        {\LWRexpectationvaluedoublestar}{\LWRexpectationvaluestar}
-}
-\CustomizeMathJax{% first star
-    \DeclareIfstar{\expectationvalue}
-        {\LWRsubexpectationvalue}{\LWRexpectationvaluenostar}
-}
-
-\CustomizeMathJax{\let\expval\expectationvalue}
-\CustomizeMathJax{\let\ev\expectationvalue}
-
-\CustomizeMathJax{%
-    \newcommand{\LWRmatrixelementnostar}[3]{%
-        \vphantom{#2}\left\langle{#1}\middle\vert\smash{#2}\middle\vert{#3}\right\rangle%
-    }%
-}
-\CustomizeMathJax{%
-    \newcommand{\LWRmatrixelementstar}[3]{%
-        \vphantom{#1#2#3}%
-        \left\langle\smash{#1}%
-        \middle\vert\smash{#2}\middle\vert\smash{#3}%
-        \right\rangle%
-    }%
-}
-\CustomizeMathJax{%
-    \newcommand{\LWRmatrixelementdoublestar}[3]{%
-        \left\langle{#1}\middle\vert{#2}\middle\vert{#3}\right\rangle%
-    }%
-}
-\CustomizeMathJax{% second star
-    \DeclareIfstar{\LWRsubmatrixelement}
-        {\LWRmatrixelementdoublestar}{\LWRmatrixelementstar}
-}
-
-\CustomizeMathJax{% first star
-    \DeclareIfstar{\matrixelement}
-        {\LWRsubmatrixelement}{\LWRmatrixelementnostar}
-}
-
-\CustomizeMathJax{\let\mel\matrixelement}
-
-\CustomizeMathJax{\newcommand{\matrixquantity}[1]{\begin{matrix}#1\end{matrix}}}
-\CustomizeMathJax{\let\mqty\matrixquantity}
-
-\CustomizeMathJax{\newcommand{\pmqty}[1]{\begin{pmatrix}#1\end{pmatrix}}}
-\CustomizeMathJax{\newcommand{\Pmqty}[1]{%
-    \left\lgroup\begin{matrix}#1\end{matrix}\right\rgroup}%
-}
-\CustomizeMathJax{\newcommand{\bmqty}[1]{\begin{bmatrix}#1\end{bmatrix}}}
-\CustomizeMathJax{\newcommand{\vmqty}[1]{\begin{vmatrix}#1\end{vmatrix}}}
-
-\CustomizeMathJax{\newcommand{\smallmatrixquantity}[1]{%
-    \begin{smallmatrix}#1\end{smallmatrix}}%
-}
-\CustomizeMathJax{\let\smqty\smallmatrixquantity}
-\CustomizeMathJax{\newcommand{\spmqty}[1]{%
-    \pqty{\begin{smallmatrix}#1\end{smallmatrix}}}%
-}
-\CustomizeMathJax{\newcommand{\sPmqty}[1]{%
-    \left\lgroup\begin{smallmatrix}#1\end{smallmatrix}\right\rgroup}%
-}
-\CustomizeMathJax{\newcommand{\sbmqty}[1]{%
-    \bqty{\begin{smallmatrix}#1\end{smallmatrix}}}%
-}
-\CustomizeMathJax{\newcommand{\svmqty}[1]{%
-    \vqty{\begin{smallmatrix}#1\end{smallmatrix}}}%
-}
-
-\CustomizeMathJax{\let\matrixdeterminant\vmqty}
-\CustomizeMathJax{\let\mdet\vmqty}
-\CustomizeMathJax{\let\smdet\svmqty}
-
-\CustomizeMathJax{\newcommand{\identitymatrix}[1]{(\text{imat}\{#1\})}}
-\CustomizeMathJax{\let\imat\identitymatrix}
-
-\CustomizeMathJax{\newcommand{\LWRxmatrix}[3]{(\text{xmat}\{\}\{#2\}\{#3\})}}
-\CustomizeMathJax{\DeclareIfstar{\xmatrix}{\LWRxmatrix}{\LWRxmatrix}}
-\CustomizeMathJax{\let\xmat\xmatrix}
-
-\CustomizeMathJax{\newcommand{\zeromatrix}[2]{(\text{zmat}\{#1\}\{#2\})}}
-\CustomizeMathJax{\let\zmat\zeromatrix}
-
-\CustomizeMathJax{\newcommand{\paulimatrix}[1]{(\text{pmat}\{#1\})}}
-\CustomizeMathJax{\let\pmat\paulimatrix}
-
-\CustomizeMathJax{\newcommand{\diagonalmatrix}[2][]{%
-    \left(\text{dmat}\right)}%
-}
-\CustomizeMathJax{\let\dmat\diagonalmatrix}
-
-\CustomizeMathJax{\newcommand{\antidiagonalmatrix}[2][]{%
-    \left(\text{admat}\right)}%
-}
-\CustomizeMathJax{\let\admat\antidiagonalmatrix}
+\PackageWarningNoLine{lwarp, physics}{The MathJax v3 extension will be used}
+\CustomizeMathJax{\require{physics}}
 \end{warpMathJax}
 \endinput
 %%

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-splitbib.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-splitbib.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-splitbib.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -0,0 +1,54 @@
+%%
+%% This is file `lwarp-splitbib.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `splitbib')
+%% This is a generated file.
+%% Copyright 2016-2020 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{splitbib}[2005/12/22]
+\def\NMSB at stylebox#1#2{%
+\begin{BlockClass}[text-align:center ; border: 1px solid black]{splitbibbox}
+    \csname SB\NMSB at level font\endcsname{\LWR at textcurrentfont{#1#2}}
+\end{BlockClass}
+}
+
+\def\NMSB at stylebar#1#2{%
+\begin{BlockClass}[%
+    text-align:center ;
+    border-top: 1px solid black ;
+    border-bottom: 1px solid black ;
+]{splitbibbar}
+    \csname SB\NMSB at level font\endcsname{\LWR at textcurrentfont{#1#2}}
+\end{BlockClass}
+}
+
+\def\NMSB at styledash#1#2{%
+\begin{BlockClass}[%
+    text-align:center ;
+]{splitbibdash}
+    \csname SB\NMSB at level font\endcsname{\LWR at textcurrentfont{---~#1#2~---}}
+\end{BlockClass}
+}
+
+\def\NMSB at stylenone#1#2{%
+    \par
+}
+
+\def\NMSB at stylesimple#1#2{%
+\par
+ \csname SB\NMSB at level font\endcsname{\LWR at textcurrentfont{#1#2}}
+\par
+}
+\endinput
+%%
+%% End of file `lwarp-splitbib.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-splitbib.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-statex2.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-statex2.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-statex2.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -118,7 +118,7 @@
     \I[#1]{\{0, 1,\., #2\}}, \where #3>0,\; #4>0 \and n=1, 2,\.}%
 }}
 \CustomizeMathJax{\newcommand{\pBin}[3][x]{%
-    \mb{\binom{#2}{#1}#3^#1} \LWRwrapparen{\mb{{1-#3}^{#2-#1}}}%
+    \mb{\binom{#2}{#1}#3^{#1}} \LWRwrapparen{\mb{{1-#3}^{#2-#1}}}%
     \mb{\I[#1]{\{0,1,\.,#2\}}, \where p \in (0, 1) \and n=1, 2,\.}%
 }}
 \CustomizeMathJax{\newcommand{\pPoi}[2][x]{%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2020-06-03 21:23:43 UTC (rev 55404)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2020-06-03 21:24:42 UTC (rev 55405)
@@ -17,7 +17,7 @@
 %% version 2005/12/01 or later.
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{lwarp}
-    [2020/05/12 v0.86  Allows LaTeX to directly produce HTML5 output.]
+    [2020/06/03 v0.87  Allows LaTeX to directly produce HTML5 output.]
 
 
 
@@ -26,6 +26,8 @@
 
 
 \RequirePackage{iftex}[2019/11/07]
+\RequirePackage{ifpdf}
+\RequirePackage{ifptex}
 
 \newif\ifxetexorluatex
 
@@ -152,6 +154,7 @@
 \LWR at earlyloadnever{bitfield}{bytefield}
 \LWR at earlyloadnever{caption2}{caption}
 \LWR at earlyloadnever{colortab}{colortbl}
+\LWR at earlyloadnever{csvtools}{datatool}
 \LWR at earlyloadnever{doublespace}{setspace}
 \LWR at earlyloadnever{epsf}{graphicx}
 \LWR at earlyloadnever{fancyheadings}{fancyhdr}
@@ -256,6 +259,7 @@
 \LWR at loadafter{chkfloat}
 \LWR at notmemoirloadafter{chngpage}
 \LWR at loadafter{cite}
+\LWR at loadafter{citeref}
 \LWR at loadafter{cmdtrack}
 \LWR at loadafter{colonequals}
 \LWR at loadafter{color}
@@ -278,6 +282,7 @@
 \LWR at loadafter{draftcopy}
 \LWR at loadafter{draftfigure}
 \LWR at loadafter{draftwatermark}
+\LWR at loadafter{drftcite}
 \LWR at loadafter{easy-todo}
 \LWR at loadafter{ebook}
 \LWR at loadafter{econometrics}
@@ -374,6 +379,7 @@
 \LWR at loadafter{imakeidx}
 \LWR at notmemoirloadafter{index}
 \LWR at loadafter{intopdf}
+\LWR at loadafter{jurabib}
 \LWR at loadafter{karnaugh-map}
 \LWR at loadafter{keyfloat}
 \LWR at loadafter{layaureo}
@@ -426,6 +432,7 @@
 \LWR at notmemoirloadafter{moreverb}
 \LWR at notmemoirloadafter{movie15}
 \LWR at notmemoirloadafter{mparhack}
+\LWR at loadafter{multibib}
 \LWR at loadafter{multicap}
 \LWR at loadafter{multicolrule}
 \LWR at loadafter{multimedia}
@@ -548,6 +555,7 @@
 \LWR at loadafter{soul}
 \LWR at loadafter{soulpos}
 \LWR at loadafter{soulutf8}
+\LWR at loadafter{splitbib}
 \LWR at loadafter{splitidx}
 \LWR at loadafter{srcltx}
 \LWR at loadafter{srctex}
@@ -1271,6 +1279,7 @@
 \LWR at checkloadnever{#1}{caption2}{caption}
 \LWR at checkloadnever{#1}{ccaption}{caption}% might be preloaded by memoir
 \LWR at checkloadnever{#1}{colortab}{colortbl}
+\LWR at checkloadnever{#1}{csvtools}{datatool}
 \LWR at checkloadnever{#1}{doublespace}{setspace}
 \LWR at checkloadnever{#1}{epsf}{graphicx}
 \LWR at checkloadnever{#1}{fancyheadings}{fancyhdr}
@@ -4187,13 +4196,13 @@
 \begin{filecontents*}[overwrite]{lwarp_mathjax.txt}
 <script>
 // Lwarp MathJax emulation code
+//
 // Based on code by Davide P. Cervone.
-// Original code: https://github.com/mathjax/MathJax/issues/2313
-// Modified by Brian Dunn to adjust equation numbering, add subequations,
-// and add starred macros.
 // Equation numbering: https://github.com/mathjax/MathJax/issues/2427
-// Starred macros: https://github.com/mathjax/MathJax/issues/2428
+// Starred and ifnextchar macros: https://github.com/mathjax/MathJax/issues/2428
 //
+// Modified by Brian Dunn to adjust equation numbering and add subequations.
+//
 // LaTeX can use \seteqnumber{subequations?}{section}{number} before each equation.
 // subequations? is 0 usually, 1 if inside subequations.
 // section is a string printed as-is, or empty.
@@ -4207,10 +4216,8 @@
   },
   startup: {
     ready() {
-      //
       //  These would be replaced by import commands if you wanted to make
       //  a proper extension.
-      //
       const Configuration = MathJax._.input.tex.Configuration.Configuration;
       const CommandMap = MathJax._.input.tex.SymbolMap.CommandMap;
       const Macro = MathJax._.input.tex.Symbol.Macro;
@@ -4218,170 +4225,65 @@
       const ParseUtil = MathJax._.input.tex.ParseUtil.default;
       const expandable = MathJax._.util.Options.expandable;
 
-      //
-      //  These are the names of the command maps:
-      //
-      const SETEQNUMBERMAP = 'seteqnumberCoreMap' ;
-
-      //
-      //  These functions implement the macros:
-      //
-      const seteqnumberFunction = (parser, name) => {
-        //  Get the macro parameters
-        const star = parser.GetStar();                  // true if there is a *
-        const optBrackets = parser.GetBrackets(name);   // contents of optional brackets
-        const newsubequations = parser.GetArgument(name);  // the subequations argument
-        const neweqsection = parser.GetArgument(name);  // the eq section argument
-        const neweqnumber = parser.GetArgument(name);   // the eq number argument
-        MathJax.config.subequations=newsubequations ;   // a string with boolean meaning
-        MathJax.config.section=neweqsection ;           // a string with numeric meaning
-        parser.tags.counter = parser.tags.allCounter = neweqnumber ;
-      };
-
-      //
-      //  This is the configuration for the seteqnumberFunctionConfig TeX extension.
-      //
-      const seteqnumberFunctionConfig = Configuration.create('seteqnumberCore', {
-        //
-        // Initialize the extension by creating the command map,
-        // then append the command map to the given configuration as a macro handler.
-        //
-        init(config) {
-          const map = new CommandMap(SETEQNUMBERMAP,{},{});
-          config.append(
-            Configuration.create(
-                'seteqnumberDefs',
-                {handler: {macro: [SETEQNUMBERMAP]}}
-            )
-          );
-        },
-
-        //
-        //  Add options (from the
-        //  seteqnumberCore configuration object in the document's
-        //  option list, if any).
-        //
-        config(config, jax) {
-          const map = jax.parseOptions.handlers.retrieve(SETEQNUMBERMAP);
-          const options = jax.parseOptions.options.seteqnumberCore;
-          for (const cs of Object.keys(options)) {
-            map.add(cs, new Macro(cs, seteqnumberFunction, options[cs]));
-          }
-        },
-
-        options: {
-          seteqnumberCore: expandable({})
-        }
-      }
-      );
-
-      const IFSTARMAP = 'ifstarMap';
-
-      //
-      //  This function implements an ifstar macro.
-      //
-      const IfstarFunction = (parser, name, resultstar, resultnostar) => {
-        //
-        //  Get the macro parameters
-        //
-        const star = parser.GetStar();          // true if there is a *
-        //
-        //  Construct the replacement string for the macro
-        //
-        const macro = [(star ? resultstar : resultnostar)].join('');
-        //
-        //  Insert the replacement string into the TeX string, and check
-        //  that there haven't been too many maxro substitutions (prevents
-        //  infinite loops).
-        //
-        parser.string = ParseUtil.addArgs(parser, macro, parser.string.slice(parser.i));
+      //  Insert the replacement string into the TeX string, and check
+      //  that there haven't been too many maxro substitutions (prevents
+      //  infinite loops).
+      const useArgument = (parser, text) => {
+        parser.string = ParseUtil.addArgs(parser, text, parser.string.slice(parser.i));
         parser.i = 0;
         if (++parser.macroCount > parser.configuration.options.maxMacros) {
           throw new TexError('MaxMacroSub1',
-                             'MathJax maximum macro substitution count exceeded; ' +
-                             'is there a recursive macro call?');
+          'MathJax maximum macro substitution count exceeded; ' +
+          'is there a recursive macro call?');
         }
-      };
+      }
 
-      //
-      //  This is the configuration for the IfstarConfiguration TeX extension.
-      //
-      const IfstarConfiguration = Configuration.create('Ifstar', {
-        //
-        //  Initialize the extension by creating the command map for the
-        //  macros defined by \DeclareIfstar, and add the
-        //  \DeclareIfstar macro itself.  Then append the
-        //  command map to the given configuration as a macro handler
-        //
-        init(config) {
-          const map = new CommandMap(IFSTARMAP, {
-            DeclareIfstar: ['Declare_Ifstar']
-          }, {
-            //
-            //  Implements \DeclareIfstar control sequence.
-            //
-            Declare_Ifstar(parser, name) {
-              //
-              //  Get the control sequence to define and the starred and
-              //  non-starred macros to use.
-              //
-              let cs = ParseUtil.trimSpaces(parser.GetArgument(name));
-              const resultstar = parser.GetArgument(name);
-              const resultnostar = parser.GetArgument(name);
-              //
-              //  Check that the control sequence name is valid
-              //
-              if (cs.charAt(0) === '\\') cs = cs.substr(1);
-              if (!cs.match(/^(.|[a-z]+)$/i)) {  //$ syntax highlighting
-                throw new TexError(
-                    'IllegalControlSequenceName',
-                    'Illegal control sequence name for %1',
-                    name
-                );
-              }
-              //
-              //  Look up the command map and add the new macro to it using
-              //  IfstarFunction as the function and passing it the
-              //  given starred and non-starred macros.
-              //
-              const map = parser.configuration.handlers.retrieve(IFSTARMAP);
-              map.add(cs, new Macro(cs, IfstarFunction, [resultstar, resultnostar]));
-            }
-          });
-          config.append(
-            Configuration.create('IfstarDefs', {handler: {macro: [IFSTARMAP]}})
-          );
+      //  Create the command map for \ifstar, \ifnextchar, \seteqnumber
+      new CommandMap('ifstar-ifnextchar-setequnumber', {
+        ifstar: 'IfstarFunction',
+        ifnextchar: 'IfnextcharFunction',
+        seteqnumber: 'SeteqnumberFunction'
+      }, {
+        //  This function implements an ifstar macro.
+        IfstarFunction(parser, name) {
+          const resultstar = parser.GetArgument(name);
+          const resultnostar = parser.GetArgument(name);
+          const star = parser.GetStar();                 // true if there is a *
+          useArgument(parser, star ? resultstar : resultnostar);
         },
 
-        //
-        //  Add any user-defined starred/non-starred macros (from the
-        //  Ifstar configuration object in the document's
-        //  option list), if any.
-        //
-        config(config, jax) {
-          const map = jax.parseOptions.handlers.retrieve(IFSTARMAP);
-          const starmacros = jax.parseOptions.options.Ifstar;
-          for (const cs of Object.keys(starmacros)) {
-            map.add(cs, new Macro(cs, IfstarFunction, starmacros[cs]));
+        //  This function implements an ifnextchar macro.
+        IfnextcharFunction(parser, name) {
+          let whichchar = parser.GetArgument(name);
+          if (whichchar.match(/^(?:0x[0-9A-F]+|[0-9]+)$/i)) {
+            // $ syntax highlighting
+            whichchar = String.fromCodePoint(parseInt(whichchar));
           }
+          const resultnextchar = parser.GetArgument(name);
+          const resultnotnextchar = parser.GetArgument(name);
+          const gotchar = (parser.GetNext() === whichchar);
+          useArgument(parser, gotchar ? resultnextchar : resultnotnextchar);
         },
 
-        //
-        //  Indicate that Ifstar is a valid option, and can have
-        //  any number of definitions.  The format is
-        //
-        //      name: [starred, non-starred]
-        //
-        //  where 'name' is the macro name, and starred and non-starred are the
-        //  macros to use for the \name macro.  You can include
-        //  pre-defined macros here, which will be available without
-        //  further configuration.
-        //
-        options: {
-          Ifstar: expandable({})
+        //  This function modifies the equation numbers.
+        SeteqnumberFunction(parser, name) {
+            //  Get the macro parameters
+            const star = parser.GetStar();                  // true if there is a *
+            const optBrackets = parser.GetBrackets(name);   // contents of optional brackets
+            const newsubequations = parser.GetArgument(name);  // the subequations argument
+            const neweqsection = parser.GetArgument(name);  // the eq section argument
+            const neweqnumber = parser.GetArgument(name);   // the eq number argument
+            MathJax.config.subequations=newsubequations ;   // a string with boolean meaning
+            MathJax.config.section=neweqsection ;           // a string with numeric meaning
+            parser.tags.counter = parser.tags.allCounter = neweqnumber ;
         }
       });
 
+      //  Create the ifstar-ifnextchar-setequnumber package
+      Configuration.create('ifstar-ifnextchar-setequnumber', {
+        handler: {macro: ['ifstar-ifnextchar-setequnumber']}
+      });
+
       MathJax.startup.defaultReady();
 
       // For forward references:
@@ -4401,10 +4303,7 @@
   },    // startup
 
   tex: {
-    packages: {'[+]': ['seteqnumberCore', 'tagFormat', 'Ifstar']},
-    seteqnumberCore: {
-      seteqnumber: []   // a user-defined macro
-    },
+    packages: {'[+]': ['tagFormat', 'ifstar-ifnextchar-setequnumber']},
     tags: "ams",
         tagFormat: {
             number: function (n) {
@@ -4434,7 +4333,7 @@
 
 -- Copyright 2016-2020 Brian Dunn
 
-printversion = "v0.86"
+printversion = "v0.87"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -10915,14 +10814,6 @@
 \providecommand{\glo at name}{}
 \end{warpall}
 \begin{warpHTML}
-\def\bibliography#1{%
-    \if at filesw
-    \immediate\write\@auxout{\string\bibdata{#1}}%
-    \fi
-    \begingroup%
-    \@input@{\BaseJobname.bbl}% lwarp
-    \endgroup%
-}
 \renewcommand{\@biblabel}[1]{[#1]\quad}
 \AtBeginDocument{
 
@@ -12810,6 +12701,13 @@
 \end{warpHTML}
 
 
+\begin{warpall}
+
+\newbool{FixSmallCaps}
+\boolfalse{FixSmallCaps}
+
+\end{warpall}
+
 \begin{warpHTML}
 
 
@@ -13061,7 +12959,9 @@
 \AtBeginDocument{\LWR at formatted{itshape}}
 
 \newrobustcmd*{\LWR at HTML@scshape}{%
-    \LWR at print@scshape%
+    \ifbool{FixSmallCaps}{}{%
+        \LWR at print@scshape%
+    }%
     \renewcommand*{\LWR at f@shapecaps}{sc}%
 }
 \AtBeginDocument{\LWR at formatted{scshape}}
@@ -13079,7 +12979,9 @@
     \LetLtxMacro\sishape\scshape
 }{}
 \newrobustcmd*{\LWR at HTML@sishape}{%
-    \LWR at print@sishape%
+    \ifbool{FixSmallCaps}{}{%
+        \LWR at print@sishape%
+    }%
     \renewcommand*{\LWR at f@shape}{it}
     \renewcommand*{\LWR at f@shapecaps}{sc}%
 }
@@ -13728,6 +13630,11 @@
             {Enclose its uses inside lateximage\MessageBreak
             environments to force SVG output}
         \LWR at mathjaxwarn{jkmath}{}
+        \LWR at mathjaxwarn{mathtools}
+            {See the Lwarp manual regarding the disallowspaces\MessageBreak
+            and showonlyrefs options, the alignat environment,\MessageBreak
+            and \protect\DeclarePairedDelimiter\space and related%
+            }
         \LWR at mathjaxwarn{mathspec}{}
         \LWR at mathjaxwarn{multirow}
             {Multirow works as expected in text mode, but\MessageBreak
@@ -13737,11 +13644,6 @@
         \LWR at mathjaxwarn{pb-diagram}
             {Enclose its uses inside lateximage environments\MessageBreak
             to force SVG output}
-        \LWR at mathjaxwarn{physics}
-            {The third-party extension is not used.\MessageBreak
-            Avoid automatic delimiters.\MessageBreak
-            Use all mandatory arguments, adding empty as needed.\MessageBreak
-            See the Lwarp manual for details}
         \LWR at mathjaxwarn{unicode-math}
             {Not all characters are encoded correctly.\MessageBreak
             Some symbol fonts are not supported by MathJax,\MessageBreak



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