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