From bcdf6c829c6761de02484473ebe43fa3760adcaa Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 12 May 2021 03:01:15 +0000 Subject: CTAN sync 202105120301 --- support/TeX4ht/source/tex4ht-mathltx.tex | 4149 ++++++++++++++++++++++++++++++ 1 file changed, 4149 insertions(+) create mode 100644 support/TeX4ht/source/tex4ht-mathltx.tex (limited to 'support/TeX4ht/source/tex4ht-mathltx.tex') diff --git a/support/TeX4ht/source/tex4ht-mathltx.tex b/support/TeX4ht/source/tex4ht-mathltx.tex new file mode 100644 index 0000000000..6890d0091f --- /dev/null +++ b/support/TeX4ht/source/tex4ht-mathltx.tex @@ -0,0 +1,4149 @@ +% $Id: tex4ht-mathltx.tex 184 2016-07-04 17:35:09Z karl $ +% compile 3 times: latex tex4ht-mathltx +% or xhlatex tex4ht-mathltx "html,3,sections+" +% +% Copyright 2009-2016 TeX Users Group +% Copyright 2005-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{mathltx,html-mltx} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Constructs} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Background} +%%%%%%%%%%%%%%%%%% + +\Link[http://www.math.union.edu/\string + ~dpvc/jsMath/welcome.html]{}{}jsmath\EndLink + + +\begin{verbatim} + + + +
+\left(a^b\right) +
+ + + + + f(u) + +\end{verbatim} + +\begin{verbatim} +htlatex try "xhtml,mathltx" " -cmozhtf" +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The equation Environment} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\let\A:equation|=\a:equation +\let\B:equation|=\b:equation +\let\C:equation|=\c:equation +\Configure{equation} + {\A:equation|} + {\B:equation}{\C:equation} +>>> + +\<<< +\Configure{equation} + {\IgnorePar|\EndP + \HCode{
}\IgnorePar + |} + {\ifvmode \IgnorePar\fi\EndP\HCode{}} + {\HCode{
}|} +\Css{.equation td{text-align:center; vertical-align:middle; }} +\Css{td.eq-no{ width:5\%; }} +\Css{table.equation { width:100\%; } } +>>> + +\<<< +\csname a:equation\string$\string$\endcsname +>>> + +\<<< +\NewConfigure{equation$$}{1} +\Configure{equation$$} + {\Configure{$$} + {\Configure{@math}{div}\IgnorePar\EndP\DviMath} + {\EndDviMath\EndP} + {\DisplayMathtrue}% + } +>>> + + + + +\<<< +display="block" +>>> + + +\<<< +display="inline" +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{AmsMath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\Configure{equation} + {\Configure{gather} + {\HCode{}\IgnorePar } + {\HCode{}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{}\fi } + {} + }{}{} +\Configure{equation*} + {\Configure{gather*} + {\HCode{}\IgnorePar } + {\HCode{}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{}\fi } + {} + }{} +\Css{.equation-star td{text-align:center; }} +\Css{table.equation-star { width:100\%; }} +>>> + + + +\<<< +\Configure{equation} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}% + |% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP \HCode{}} + {\ifvmode \IgnorePar\fi\EndP \HCode{
}% + \IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}% + |% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP \HCode{
}% + \IgnoreIndent\par} +>>> + + +\<<< +\Configure{equation} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}% + |% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{}% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{
}% + \IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}% + |% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{
}% + \IgnoreIndent\par} +>>> + + +\<<< +\Configure{equation} + {\ifvmode \IgnorePar\fi\EndP + \HCode{
}% + |% + |% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{}% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{
}% + \ShowPar\IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi\EndP + \HCode{
}% + |% + |% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{
}% + \ShowPar\IgnoreIndent\par} +>>> + + + +\<<< +\csname a:equation\string$\string$\endcsname +>>> + +\<<< +\Configure{equation$$} + {\Configure{$$} + {\IgnorePar \Configure{@math}{div}\EndP\DviMath + \HCode{\string\begin{equation}}} + {\HCode{\string\end{equation}}\EndDviMath\EndP} + {\DisplayMathtrue}% + } +>>> + + +\<<< +|% +>>> + + + + + + + +\<<< +\Configure{gather} + {} + {} + {} + {} + {} + {}% +>>> + +\<<< +\Configure{$$}{}{}{}% +\Configure{gather} + {\Configure{$$} + {\Configure{@math}{\mml:class="equation"}\IgnorePar\EndP\DviMath} + {\EndDviMath\EndP}% + {}% + \IgnorePar + }{}{}{}{}{} +>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Mathltx} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% +\section{?????} +%%%%%%%%%%%%%%%%% + + + +\<<< +\ifx \a:mathltx\:UnDef + \NewConfigure{mathltx}{1} + \Configure{mathltx}{} +\fi +\def\mml:class{class} +>>> + + +\<<< +| +| +>>> + + +\<<< +\let\A:displaylines|=\a:displaylines +\let\B:displaylines|=\b:displaylines +\let\C:displaylines|=\c:displaylines +\let\D:displaylines|=\d:displaylines +\Configure{displaylines} + {\ifmmode + \def\A:displaylines{\HCode{}}% + \def\B:displaylines{\HCode{}}% + \def\C:displaylines{\HCode{}}% + \def\D:displaylines{\HCode{}}% + \fi + \A:displaylines} + {\B:displaylines} {\C:displaylines}{\D:displaylines} +>>> + + + +\<<< +\def\m:env#1{\HCode{}% + \def\endm:env{\HCode + {}}} +>>> + + +\<<< +\Configure{pmatrix} + {\bgroup\m:env{pmatrix}} + {\endm:env\egroup} +\Configure{multline} + {\HCode{}} {\HCode{}} + {\HCode{}}{\HCode{}} +\Configure{smallmatrix} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{bmatrix} + {\bgroup\m:env{bmatrix}} + {\endm:env\egroup} +\Configure{vmatrix}{\bgroup\m:env{vmatrix}}{\endm:env\egroup} +\Configure{Vmatrix}{\bgroup\m:env{Vmatrix}}{\endm:env\egroup} +\Configure{aligned} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{xalignat} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{xxalignat} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{alignedat} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{gathered} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +>>> + + +\<<< +% mathltx.4ht (|version), generated from |jobname.tex +% Copyright 2009-2014 TeX Users Group +% Copyright |CopyYear.2005. Eitan M. Gurari +| +>>> + +\<<< +% html-mltx.4ht (|version), generated from |jobname.tex +% Copyright 2009-2016 TeX Users Group +% Copyright |CopyYear.2005. Eitan M. Gurari +| +>>> + +\<<< +| +| +| +>>> + + + + + + + + + + +\<<< +\Configure{htf}{0}{+}{}{}% +\Configure{htf}{1}{+}{}% +\Configure{htf}{3}{+}{}% +\Configure{htf}{4}{+}{}{}% +\Configure{htf}{6}{+}{}{}% +\Configure{htf}{8}{+} + {}{}{}{}{}{}{}% +\Configure{htf}{10}{+} + {}{}{}{}{}{}{}% +\Configure{htf}{12}{+} + {}{}{}{}{}{}{}% +>>> + +\<<< +\Configure{htf}{0}{+}{}{}{}{}{}{}{}% +\Configure{htf}{1}{+}{}{}{}{}{}{}{}% +\Configure{htf}{3}{+}{}{}{}{}{}{}{}% +\Configure{htf}{4}{+}{}{}{}{}{}{}{}% +\Configure{htf}{6}{+}{}{}{}{}{}{}{}% +\Configure{htf}{8}{+}{}{}{}{}{}{}{}% +\Configure{htf}{10}{+}{}{}{}{}{}{}{}% +\Configure{htf}{12}{+}{}{}{}{}{}{}{}% +>>> + + + + + +\<<< +\def\mml:htfsym{\Configure + {htf}{254}{+}{}} +\def\ext:htfsym{\Configure{htf}{254}{+}{}{}{}{}{}{}{}} +>>> + + +\<<< +\append:def\mml:htfsym{|} +\append:def\ext:htfsym{|} +>>> + + +We reserve code 254 (and 255) for unknown symbols. + + + + \<<< +\:CheckOption{core}\if:Option \expandafter\endinput \fi +| +| +>>> + +\<<< +| +>>> + +\<<< +\:CheckOption{core}\if:Option \expandafter\endinput \fi +| +| +| +>>> + +\<<< +| +| +>>> + +\<<< +| +| +| +>>> + +\<<< +\Configure{intertext} + {\IgnorePar \ifinalign@ + \HCode{<\a:mathltx + mtr>}% + \else \ifingather@ + \HCode{}% + \fi\fi + \AA:text{intertext}% + } + {\BB:text \ifvmode \IgnorePar \fi \EndP\ifinalign@ + \HCode{<\a:mathltx + mtr>}% + \else \ifingather@ + \HCode{}% + \fi\fi + } +>>> + + + +\<<< +\Configure{maketag} + {\ifmathltx + \ifmtext \expandafter\expandafter\expandafter\no:maketag\fi + \else \expandafter\no:maketag\fi + \AA:text{maketag}\hbox\bgroup\:gobbleIII :@:} + {\egroup\BB:text } +\def\no:maketag#1:@:#2\b:maketag{\hbox{#2}} +>>> + + +\<<< +\Configure{text}{\AA:text{text}}{\BB:text} +>>> + + +\<<< +\def\:tempc{\DOTSI\protect\:idotsint} +\HLet\idotsint|=\:tempc +\def\:idotsint{% + \mathop{\intop\cdotp\cdotp\cdotp\intop }\ilimits@ +} +>>> + +\<<< +| +>>> + +\<<< +% amstex.sty +| +| +| + >>> + +\<<< +% amstex.tex +| +| +>>> + + \<<< + | + >>> + + \<<< +\let\mathltx:on|=\relax +\Configure{ } + {\ifmathltx \ifmtext \space \else\HCode{\string\ }\fi + \else \:nbsp\fi} +>>> + + +\<<< +\Configure{hspace} + {\ifmathltx\ifmtext\else + \HCode{\string\l:brace\the\tmp:dim\r:brace}\fi\fi}{}{ } +>>> + + + + +\<<< +\Configure{romannumeral} + {\ifmathltx\ifmtext\else \HCode{}\fi\fi} + {\ifmathltx\ifmtext\else \HCode{}\fi\fi} +>>> + +\<<< +\Configure{romannumeral} + {\ifmtext\else + \HCode{<\ifmathltx mrow \else span \fi \mml:class="romannumeral">}\fi + } + {\ifmtext\else \HCode{}\fi } +>>> + + +\<<< +\Configure{hspace} + {\ifmathltx \ifmtext \else + \HCode{\string\l:brace\the\tmp:dim\r:brace}\fi\fi} + {}{\ifmathltx \else \:nbsp\fi} +>>> + + + \<<< +| +>>> + + +\<<< +| +>>> + +\<<< +\def\:tempc#1{\HCode{\string\widehat\l:brace}#1\HCode{\r:brace}} +\HLet\widehat=\:tempc +\def\:tempc#1{\HCode{\string\widetilde\l:brace}#1\HCode{\r:brace}} +\HLet\widetilde=\:tempc +>>> + +\<<< +\:CheckOption{new-accents} \if:Option \else + \ifx \mathltx:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|% + \ht:special{t4ht@[}\if!#1!x\else#2\fi\ht:special{t4ht@]}}} + {\ifmmode + \Tg\mathord{#3}\Tg% + \else \HCode{}#3\HCode{}% + \fi + }% + \fi +\fi +>>> + + + + \<<< +\:CheckOption{new-accents} \if:Option \else + \ifx \mathltx:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|% + \ht:special{t4ht@[}\if!#1!x\else#2\fi\ht:special{t4ht@]}}} + {\Tg\mathord{#3}\Tg% + }% + \fi +\fi +>>> + + + + + + + +\<<< +\leavevmode +\if !#1!\ht:special{t4ht@+&{35}x#2;}% +\else \expandafter \ifx\csname U#2#1\endcsname\relax + \ht:special{t4ht@+&{35}x#2;}% +\else + \ht:special{t4ht@+&{35}x\csname U#2#1\endcsname;}% +\fi \fi x% +>>> + + +The special replaces the `x' character. + + +\<<< +\Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET} +\:CheckOption{no-DOCTYPE} \if:Option + \Configure{PROLOG}{VERSION,*XML-STYLESHEET} +\fi +>>> + + +\<<< +\Configure{DOCTYPE}{\HCode + {% + >\Hnewline +}} +>>> + + +\<<< +PUBLIC + "-//W3C//DTD XHTML 1.1 plus Mathltx 2.0//|"\Hnewline + "http://www.w3.org/Math/DTD/mathltx2/xhtml-math11-f.dtd" +>>> + + + +\<<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + + +\<<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + +\<<< +\let\mml:TeX|=\TeX +\def\TeX{\ifmathltx + \HCode{TeX}\else \mml:TeX\fi} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{TeX Engine} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{SUB} + {\Send{BACK} + {\l:brace}\HCode{\r:brace\string_\l:brace}\trap:base} + {\HCode{\r:brace}} +\Configure{SUP} + {\Send{BACK} + {\l:brace}\HCode{\r:brace\string^\l:brace}\trap:base} + {\HCode{\r:brace}} +\Configure{SUBSUP} + {\Send{BACK} + {\l:brace}\HCode{\r:brace\string_\l:brace}\trap:base} + {\HCode{\r:brace\string^\l:brace}\trap:base} + {\HCode{\r:brace}} +\def\trap:base{{\HCode{}}} +>>> + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + +\<<< +\LinkCommand\mtxt:link{mtext, xlink:href, id,,,} +\LinkCommand\msp:link{mstyle-3,% + xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href, + id, \mml:class="label",,} +\let\M:Link|=\Link +\def\Link{\ifmathltx + \ifmtext |\HCode{\%\Hnewline\%\string\begin{ref}}% + \bgroup \let\:newlnch\space + \expandafter\expandafter\expandafter\mtxt:link + \else \expandafter\expandafter\expandafter\msp:link\fi + \else \expandafter\M:Link\fi} +\let\M:EndLink|=\EndLink +\def\EndLink{\ifmathltx + \ifmtext |% + \egroup \HCode{\%\Hnewline\%}\Endmtxt:link + \HCode{\string\end{ref}\Hnewline}|% + \else \HCode{}\fi + \else \expandafter\M:EndLink\fi} +>>> + + + + + + +\<<< +\Configure{DviMath} + {\HCode{}% + \a:DviMathltx \mathltxtrue + \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% + \IgnoreRule \a:math + |\HCode{}\EndIgnoreRule + \ifOption{mml-fonts}{}{|%\ext:htfsym|%\EndNoFonts}% + \mathltxfalse \After:Math \b:DviMathltx + |} +\NewConfigure{DviMathltx}{2} +>>> + + +\<<< +\def\After:Math{\After:EndMath + \global\let\After:EndMath=\empty} +\let\After:EndMath=\empty +\def\AfterMath#1{\append:def\After:EndMath{#1}% + \global\let\After:EndMath=\After:EndMath} +>>> + +\<<< +\let\m:Make:Label\Make:Label +\def\Make:Label#1#2{% + \ifmathltx \edef\:temp{#1}% + \expandafter\AfterMath\expandafter{\expandafter\Make:Label + \expandafter{\:temp}{#2}}% + \else \m:Make:Label{#1}{#2}% + \fi +} +>>> + + + +\<<< +\newif\ifmathltx \mathltxfalse +\newif\ifmtext \mtextfalse +| +\NewConfigure{math}{1} +\NewConfigure{@math}{1} +\def\IgnoreRule{\ht:special{t4ht@\string_}} +\def\EndIgnoreRule{\ht:special{t4ht@\string_\string_}} +\Configure{$$} + {\Configure{@math}{|}\IgnorePar + |\EndP\DviMath + \HCode{\string $\string $}} + {\HCode{\string $\string $}\EndDviMath + \ShowPar\par{\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue} +\Configure{$} + {\Configure{@math}{|}\DviMath + \HCode{\string $}} + {\HCode{\string $}\EndDviMath}{} + +\newif\ifDisplayMath \DisplayMathfalse +>>> + + +\<<< +\Configure{$$} + {\Configure{@math}{|}\IgnorePar + |\EndP\DviMath } + {\EndDviMath\ShowPar\csname par\endcsname + {\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue}% +>>> + + + + +\<<< +\Configure{radical} + {\HCode{\string\sqrt} + \special{t4ht\string~!e<\string{}% + \special{t4ht\string~!e>\string}}% + \special{t4ht\string~!ee/}% + \special{t4ht\string~!ese-}% + } +>>> + + + + +\<<< +\ifvmode\else \HCode{}\fi +>>> + + +\<<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {}{}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> + + +\<<< +\sv:ignore +>>> + +\<<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +The \verb'\MathRow' requests a \verb'...', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + +\<<< +\def\:MT{\ifmathltx m\fi} +\Configure{halignTB}{\HCode{<\:MT table }\halignTBL}{\HCode{>}} +\Configure{halignTBL} + {t}{\ifmathltx \HCode{ align="baseline 1" }\fi} + {b}{\ifmathltx \HCode{ align="baseline -1" }\fi} + {c}{\ifmathltx \HCode{ align="axis" }\fi} + {} +\def\t:HA{\HCode{}} +\def\R:HA{\HCode{<\:MT tr \Hnewline style="vertical-align:baseline;">}} +\def\r:HA{\HCode{}} +\def\D:HA{\HCode{<\:MT td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}} +\def\d:HA{\HCode{}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{latex.ltx} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\def\set:label#1{\ifmathltx + \HCode{\%\Hnewline\%\string\begin{label}}% + {\ht:special{t4ht@, }\let\:newlnch\space \mathltxfalse #1}% + \HCode{\string\end{label}\Hnewline}% + \else #1\fi +} +>>> + + +\<<< +\HAssign\set:labelN=0 +\def\set:label#1{\ifmmode + \gHAdvance\set:labelN by 1 + \expandafter\gdef\csname sl:\set:labelN\endcsname + {\set:label{#1}}% + \expandafter\aftergroup\csname sl:\set:labelN\endcsname + \else \gHAssign\set:labelN=0 #1\fi +} +>>> + + +\<<< +\ht:special{t4ht@,&\#x00A0;}% +>>> + +\<<< +\ht:special{t4ht@, }% +>>> + +\<<< +\ht:special{t4ht@,}% +>>> + + +\<<< +\Configure{newline} + {\ifmtext |\HCode{}% + |% + \else \Tg\fi} +>>> + +\<<< +\Configure{newline} + {|\HCode{<\a:mathltx + mtext\Hnewline \mml:class="newline">}|} +>>> + + + +\<<< +\Configure{[]} + {\Configure{@math}{|}\csname a:mathltx[]\endcsname + \DviMath\HCode{\string\[}$$\DisplayMathtrue } + {$$\HCode{\string\]}\EndDviMath\csname b:mathltx[]\endcsname} +\Configure{()} + {\Configure{@math}{|}\csname a:mathltx()\endcsname + \DviMath\HCode{\string\(}$} + {$\HCode{\string\)}\EndDviMath\csname b:mathltx()\endcsname} +\NewConfigure{mathltx[]}{2} +\NewConfigure{mathltx()}{2} +| +>>> + +\<<< +\Configure{mathltx[]} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\endgraf\EndP + \HCode{
}} + {\HCode{
}|} +\Css{div.math-display, div.par-math-display{text-align:center;}} +>>> + + + + +\<<< +\Configure{[]} + {\Configure{@math}{|}\csname a:mathltx[]\endcsname + \DviMath\Tg$$\DisplayMathtrue } + {$$\Tg\EndDviMath\csname b:mathltx[]\endcsname + \if@rl\else\beginR\fi } +>>> + + + + + +\<<< +| +>>> + +\<<< +\Configure{halignTB<>}{array}{\HCode{\Hnewline + equalrows="false" + equalcolumns="false" class="array"}<>\HAlign} +\Configure{array} + {\expandafter\tmp:toks\expandafter{\Clr}% + \HCode{\string\begin{array}{\the\tmp:toks}\Hnewline}} + {\ifvmode \IgnorePar\fi \HCode{\string\end{array}}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} + {} + {|} + {} +\ConfigureEnv{array} + {\bgroup\Configure{$}{}{}{}} + {\egroup} + {}{} +>>> + +\<<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + +\<<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + + +\<<< +\HCode{\ifnum \HCol>1 \a:math:amp\fi + \ifnum 1<\HMultispan + \string\multicolumn\l:brace\HMultispan\r:brace \fi}% +>>> + +\<<< +\HCode{\ifnum \HCol>1 \a:math:amp\fi + \ifnum 1<\HMultispan + \string\multicolumn\l:brace\HMultispan\r:brace \fi}% +>>> + +\<<< +\NewConfigure{math:amp}{1} +\Configure{math:amp}{\string&} +>>> + + +\<<< +\expandafter\tmp:toks\expandafter{\Clr}% +\HCode{}% +>>> + + + + + +\<<< +\def\:MM{m} +\Configure{HBorder} + {} + {|} + {} + {} + {} + {|} + {} + {} + {} + {} +>>> + +\<<< +\def\:MM{\ifmathltx m\fi} +\Configure{HBorder} + {<\:MM tr\Hnewline + \ifmathltx \expandafter\mml:class\else class\fi="hline">} + {\ifmathltx|\else + \fi} + {} + {<\:MM tr\Hnewline + \ifmathltx \expandafter\mml:class\else class\fi ="cline">} + {<\:MM td>} + {\ifmathltx|\else + \fi} + {} + {<\:MM tr\Hnewline + \ifmathltx \expandafter\mml:class\else class\fi="vspace" + style="font-size:\HBorderspace">} + {<\:MM td\Hnewline>\ifmathltx\else\string&\#x00A0;\fi + } + {} +\Configure{halign} + {\EndP\halignTB{halign}} \t:HA + \R:HA\r:HA\D:HA\d:HA +>>> + + + +\<<< + \string&\#x0332; +>>> + + + + +\<<< +| +\let\A:fbox=\a:fbox +\let\B:fbox=\b:fbox +\let\OLDf:box=\fbox +\def\fbox{\relax\ifmmode + \Configure{fbox}{\leavevmode\Configure{HtmlPar}{}{}{}{}\IgnoreRule + \AA:text{fbox}}{\BB:text\EndIgnoreRule}\else + \Configure{fbox}{\leavevmode + \IgnoreRule\A:fbox}{\B:fbox\EndIgnoreRule}\fi + \OLDf:box} +\let\A:mbox|=\a:mbox +\let\B:mbox|=\b:mbox +\let\OLD:mbox|=\mbox +\def\mbox{\relax\ifmmode \Configure{mbox}{\AA:text{mbox}}{\BB:text}\else + \Configure{mbox}{\A:mbox}{\B:mbox}\fi\OLD:mbox} +| +>>> + + +\<<< +\NewConfigure{@mtext}{1} +\Configure{@mtext}{\string\text} +\def\AA:text#1{|} +\def\BB:text{|} +>>> + + +\<<< +\mtexttrue +\HCode{\a:@mtext\l:brace}|\PauseMathClass + |% +>>> + + +\<<< +\mtextfalse\EndPauseMathClass|\HCode + {\r:brace}% +>>> + +\<<< +\Configure{$}% + {\EndPauseMathClass \mtextfalse + |\HCode{\string$}}% + {\HCode{\string$}|\PauseMathClass \mtexttrue}% + {}% +>>> + + + + + +\<<< +| +\Configure{text}{\AA:text{text}}{\BB:text} +\Configure{format} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +>>> + + + +\<<< +\Configure{above} + {\Send{GROUP}{0}{\l:brace}% + \HCode{\string\above\space \the\tmp:dim\space}\o:@@over:\:gobbleII} + {\Send{EndGROUP}{0}{\r:brace}} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{}% + \HCode{}\o:over: + \HCode{}\Send{EndGROUP}{0}{} + \else + \Send{GROUP}{0}{}% + \HCode{}\o:@@over: + \HCode{}\Send{EndGROUP}{0}{} + \fi + } +>>> + + +\<<< +\Configure{over} + {\Send{GROUP}{0}{\string\bgroup\space}} + {\HCode{\string\over\space}\Send{EndGROUP}{0}{\string\egroup\space}} +\Configure{atop} + {\Send{GROUP}{0}{\string\bgroup\space}} + {\HCode{\string\atop\space}\Send{EndGROUP}{0}{\string\egroup\space}} +\Configure{above} + {\Send{GROUP}{0}{}% + \HCode{}\o:over:\:gobbleII} + {\HCode{}\Send{EndGROUP}{0}{}} +>>> + +\<<< +\Configure{abovewithdelims} + {\abovewithdelims:III} + {} +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{}% + \HCode{}\o:over: + \HCode{}\Send{EndGROUP}{0}{} + \else + \Send{GROUP}{0}{}% + \HCode{}\o:over: + \HCode{}\Send{EndGROUP}{0}{} + \fi + \tmp:dim + } +\Configure{atopwithdelims} + {\atopwithdelims:III} + {} +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{}% + \HCode{}\o:atop: + \HCode{}\Send{EndGROUP}{0}{} + \else + \Send{GROUP}{0}{}% + \HCode{}\o:atop: + \HCode{}\Send{EndGROUP}{0}{} + \fi + } +\Configure{overwithdelims} + {\overwithdelims:III} + {} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{}% + \HCode{}\o:over: + \HCode{}\Send{EndGROUP}{0}{} + \else + \Send{GROUP}{0}{}% + \HCode{}\o:over: + \HCode{}\Send{EndGROUP}{0}{} + \fi + } +>>> + + + +\<<< +\Configure{abovewithdelims} + {\abovewithdelims:III} + {} +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{}% + \HCode{}\o:@@over: + \HCode{}\Send{EndGROUP}{0}{} + \else + \Send{GROUP}{0}{\l:brace}% + \HCode{\string\abovewithdelims + ||\the\tmp:dim\space}\o:@@over: + \Send{EndGROUP}{0}{\r:brace}% + \fi + \tmp:dim + } +\Configure{atopwithdelims} + {\atopwithdelims:III} + {} +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{}% + \HCode{}\o:@@atop: + \HCode{}\Send{EndGROUP}{0}{} + \else + \Send{GROUP}{0}{}% + \HCode{}\o:@@atop: + \HCode{}\Send{EndGROUP}{0}{} + \fi + } +\Configure{overwithdelims} + {\overwithdelims:III} + {} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{}% + \HCode{}\o:@@over: + \HCode{}\Send{EndGROUP}{0}{} + \else + \Send{GROUP}{0}{\l:brace}% + \HCode{\string\overwithdelims + ||}\o:@@over: + \Send{EndGROUP}{0}{\r:brace}% + \fi + } +>>> + + + +\<<< +\Configure{frac} + {\HCode{\string\frac\l:brace}} + {\HCode{\r:brace}\Configure{over}{}{}} + {\HCode{\l:brace}} + {\HCode{\r:brace}} +>>> + + + +\<<< +\ifx \mathdisplay@@pop\:UnDef + \ifx \emdf@La\:UnDef + | + \else + | + \fi +\else + | +\fi +>>> + + + +\<<< +\Configure{tmspace} + {\HCode{\string\tmspace{\textspace}}} +>>> + + + + + +\<<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + + + +\<<< +\Configure{texttt} + {\ifmathltx \Configure{@mtext}{\string\texttt}\fi} + {}% +\Configure{textit} + {\ifmathltx \Configure{@mtext}{\string\textit}\fi} + {}% +\Configure{textrm} + {\ifmathltx \Configure{@mtext}{\string\textrm}\fi} + {}% +\Configure{textup} + {\ifmathltx \Configure{@mtext}{\string\textup}\fi} + {}% +\Configure{textsl} + {\ifmathltx \Configure{@mtext}{\string\textsl}\fi} + {}% +\Configure{textsf} + {\ifmathltx \Configure{@mtext}{\string\textsf}\fi} + {}% +\Configure{textbf} + {\ifmathltx \Configure{@mtext}{\string\textbf}\fi} + {}% +\Configure{textsc} + {\ifmathltx \Configure{@mtext}{\string\textsc}\fi} + {}% +\Configure{emph} + {\ifmathltx \Configure{@mtext}{\string\emph}\fi} + {}% +>>> + + + + +\<<< +\:CheckOption{fonts} \if:Option +\Configure{texttt} + {\ifmathltx \Configure{@mtext}{\mml:class="texttt" mathvariant="monospace" }% + \else \HCode{}\fi} + {\ifmathltx \else \HCode{}\fi} + \Configure{textit} + {\ifmathltx \Configure{@mtext}{\mml:class="textit" mathvariant="italic" }% + \else \HCode{}\fi} + {\ifmathltx\else \HCode{}\fi} + \Configure{textrm} + {\ifmathltx \Configure{@mtext}{ \mml:class="textrm" mathvariant="normal" }% + \else \HCode{}\fi} + {\ifmathltx\else \HCode{}\fi} + \Configure{textup} + {\ifmathltx \Configure{@mtext}{ \mml:class="textup" mathvariant="normal" }% + \else \HCode{}\fi} + {\ifmathltx\else \HCode{}\fi} + \Configure{textsl} + {\ifmathltx \Configure{@mtext}{ \mml:class="textst" mathvariant="italic" }% + \else \HCode{}\fi} + {\ifmathltx\else \HCode{}\fi} + \Configure{textsf} + {\ifmathltx \Configure{@mtext}{ \mml:class="textsf" mathvariant="sans-serif" }% + \else \HCode{}\fi} + {\ifmathltx\else \HCode{}\fi} + \Configure{textbf} + {\ifmathltx \Configure{@mtext}{ \mml:class="textbf" mathvariant="bold" }% + \else \HCode{}\fi} + {\ifmathltx\else \HCode{}\fi} + \Configure{textsc} + {\ifmathltx \Configure{@mtext}{ \mml:class="textsc" mathvariant="normal" }% + \else \HCode{}\fi} + {\ifmathltx\else \HCode{}\fi} + \Configure{emph} + {\ifmathltx \Configure{@mtext}{ \mml:class="emph" mathvariant="italic" }% + \else \HCode{}\fi} + {\ifmathltx\else \HCode{}\fi} +\fi +>>> + +The \verb+\bgroup...\egroup+ is to handle cases like +\verb+\nathbf{a}^x+. + + + +\<<< +\def\bold:version{bold} +\Configure{mathbf}% + {\bgroup \HCode{\string\mathbf\l:brace}}% + {\HCode{\r:brace}\egroup }% +\Configure{mathit}% + {\bgroup \HCode{\string\mathit\l:brace}}% + {\HCode{\r:brace}\egroup }% +\Configure{mathrm}% + {\bgroup \HCode{\string\mathrm\l:brace}}% + {\HCode{\r:brace}\egroup }% +\Configure{mathsf}% + {\bgroup \HCode{\string\mathsf\l:brace}}% + {\HCode{\r:brace}\egroup }% +\Configure{mathtt}% + {\bgroup \HCode{\string\mathtt\l:brace}}% + {\HCode{\r:brace}\egroup }% +>>> + +\<<< +\Configure{mathbb}{}{} +\Configure{mathfrak}{}{} +>>> + + + +Used to be + +\begin{verbatim} + \Configure{mathrm}{\Tg\PauseMathClass}% + {\EndPauseMathClass\Tg}% + \Configure{mathbf}{\Tg\PauseMathClass}% + {\EndPauseMathClass\Tg}% +\end{verbatim} + + +\<<< +\Css{math .texttt { font-family: monospace; }} +\Css{math .textit { font-style: italic; }} +\Css{math .textsl { font-style: oblique; }} +\Css{math .textsf { font-family: sans-serif; }} +\Css{math .textbf { font-weight: bold; }} +>>> + + + + + +\<<< +\Configure{'} + {\let\:primes=\empty} + {\def\:tempa{\prime\prime}\ifx \:tempa\:primes + \HCode{''}\else + \def\:tempa{\prime\prime\prime}\ifx \:tempa\:primes + \HCode{'''}\else + \HCode{\:primes}\fi\fi + } + {\xdef\:primes{\:primes'}} +>>> + +LaTeX places the primes within superscript, and mathltx seems to follow +suit (maybe because of the use of latex fonts in mozilla). However, +unicode maps already seem to assume raised representation for the +primes. + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{plain.sty} +%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<<< + \Configure{eqalign} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\IgnorePar\HCode{}} + {\HCode{\ifnum \HCol=3 \fi + }} + {\HCode{}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Palin + LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The default \verb'\left' and \verb'\right' in their default definition +with tex produce multi-part delimiters, from cmex, on large +subformulas. Hence, the `'.' below is needed. + +\<<< +\def\left#1{\bgroup \a:left{#1}\b:left{#1}} +\def\right#1{\a:right{#1}\b:right{#1}\egroup} +\Configure{left} + {} + {\HCode{\string\left\space}#1\bgroup} +\Configure{right} + {\egroup\HCode{\string\right\space}#1} + {} +\def\{{{\HCode{\back:slash\l:brace}}} +\def\}{{\HCode{\back:slash\r:brace}}} +\let\lbrace\{ +\let\rbrace\} +\def\def:DEL#1{\def\:DEL{#1}} +\def\check:DEL#1#2{\def\:tempa{#1}\ifx \:tempa\:DEL \def\:DEL{#2}\fi} +\NewConfigure{mfenced}[2]{\append:defI\def:DEL{\check:DEL{#1}{#2}}} +| +\:CheckOption{new-accents} \if:Option \else + | +\fi +\def\mathinner#1{\HCode{\string\mathinner\l:brace}#1\HCode{\r:brace}} +>>> + + +\<<< +\def\:tempc#1{\a:middle\mathrel{\left:right#1\:EMPTY}\b:middle} +\HLet\middle=\:tempc +\NewConfigure{middle}{2} +\Configure{middle} + {\bgroup + \Configure{mathrel}{*} + {} + {} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +>>> + + +The \verb+\root ...\of {...}+ creates the following structure. + +\begin{verbatim} +PUSH + ...root value... +POP +PUSH + PUSH + PUSH + ...root sign characters with PUSH-POP... + POP + PUSH + RIGHT4: 15213546 + DOWN3: -1553322 + PUT_RULE: height: 26213 + length: 1197667 + DOWN3: 1553322 + PUSH + ...root content... + POP + POP + POP +POP +\end{verbatim} + + + +\<<< +\Configure{root}{\rev:root}{}{} +\def\rev:root #1\b:root#2\c:root{% + \HCode{\string\root\l:brace}{#1}% + {\HCode{\r:brace\string \of\l:brace}#2}\HCode{\r:brace}} +\def\AccentMath#1{\relax\ifmmode #1\else $#1$\fi} +>>> + + +\<<< +\expandafter +\ifx \csname \string#2:lr del\endcsname\relax #2\else + \csname \string#2:lr del\endcsname\fi +>>> + + +\<<< +\expandafter +\ifx \csname \string#3:lr del\endcsname\relax #3\else + \csname \string#3:lr del\endcsname\fi +>>> + + +\<<< +\NewConfigure{mfenced}[2]{\expandafter + \def\csname \string#1:lr del\endcsname{#2}} +| +>>> + +\<<< +\Configure{mfenced}{\lvert}{\string\lvert} |%vertical line|% +\Configure{mfenced}{\rvert}{\string\rvert} |%double vertical line|% +\Configure{mfenced}{\lVert}{\string\lVert} +\Configure{mfenced}{\rVert}{\string\rVert} +>>> + +\<<< +\Configure{mfenced}{\lvert}{\string\lvert} +\Configure{mfenced}{\rvert}{\string\rvert} +\Configure{mfenced}{\lVert}{\string\lVert} +\Configure{mfenced}{\rVert}{\string\rVert} +>>> + + + + + +\<<< +\Configure{mfenced}{\||}{\string&\#x2225;} +\Configure{mfenced}{.}{} +\Configure{mfenced}{\langle}{\string&\#x27E8;} |%lang|% +\Configure{mfenced}{\rangle}{\string&\#x27E9;} |%rang|% +\Configure{mfenced}{\vert}{||} +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\{}{\string\{}}\:temp +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\}}{\string\}}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\lbrace}{\string\lbrace}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\rbrace}{\string\rbrace}}\:temp +\Configure{mfenced}{<}{\string&\#x003C;} |%lt|% +\Configure{mfenced}{>}{\string&\#x003E;} |%gt|% +\Configure{mfenced}{\lceil}{\string&\#x2308;} +\Configure{mfenced}{\rceil}{\string&\#x2309;} +\Configure{mfenced}{\lfloor}{\string&\#x230A;} +\Configure{mfenced}{\rfloor}{\string&\#x230B;} +\Configure{mfenced}{\Vert}{\string&\#x2225;} +\Configure{mfenced}{\rgroup}{)} +\Configure{mfenced}{\lgroup}{(} +\Configure{mfenced}{\bracevert}{||} +\Configure{mfenced}{\bracevert}{||} +\Configure{mfenced}{\downarrow}{\string&\#x2193;} +\Configure{mfenced}{\uparrow}{\string&\#x2191;} +\Configure{mfenced}{\Uparrow}{\string&\#x21D1;} +\Configure{mfenced}{\updownarrow}{\string&\#x2195;} +\Configure{mfenced}{\Updownarrow}{\string&\#x21D5;} +\Configure{mfenced}{\Downarrow}{\string&\#x21D3;} +\Configure{mfenced}{\backslash}{\string&\#x2216;} +\Configure{mfenced}{\rmoustache}{\string&\#x25DD;} +\Configure{mfenced}{\lmoustache}{\string&\#x25DC;} +\Configure{mfenced}{\Arrowvert}{\string&\#x2225;} +\Configure{mfenced}{\arrowvert}{\string&\#x007C;} +>>> + +% \def\:tempa{\{}\ifx \:tempa\:DEL \let\:DEL\lbrc: \else +% \def\:tempa{\}}\ifx \:tempa\:DEL \let\:DEL\rbrc: \else +% \def\:tempa{<}\ifx \:tempa\:DEL \def\:DEL{\string<}\else +% \def\:tempa{>}\ifx \:tempa\:DEL \def\:DEL{\string>}% +% \fi\fi\fi\fi } +% \edef\lbrc:{\string{} \edef\rbrc:{\string}} + +% \HCode{\string#1;}% + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Amsmath} +%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\edef\:tempc{\hskip -\noexpand\arraycolsep + \let\noexpand\@ifnextchar\noexpand\new@ifnextchar + \noexpand\array{*{\the\c@MaxMatrixCols}c}} +\HLet\env@matrix\:tempc +>>> + + +\<<< +\Configure{@begin} + {split} + {\let\tagform@=\:gobble } +>>> + + +\<<< +\Configure{split} + {\HCode{\string\begin\l:brace split\r:brace}} + {\ifvmode\IgnorePar\fi + \HCode{\string\end \l:brace split\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|} {} +>>> + +\<<< +\ConfigureEnv{multline} + {\bgroup |} {\egroup} + {}{} +\Configure{multline} + {\HCode{\string\begin\l:brace multline\r:brace}} + {\HCode{\string\end \l:brace multline\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|} {} +\ConfigureEnv{multline*} + {\bgroup |} {\egroup} + {}{} +\Configure{multline*} + {\HCode{\string\begin\l:brace multline*\r:brace}} + {\HCode{\string\end \l:brace multline*\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} + {} +>>> + + +\marginpar{?math delimiters not removed for gather*?} + + +\<<< +\ConfigureEnv{gather} + {\bgroup |} {\egroup} + {}{} +\Configure{gather} + {\HCode{\string\begin\l:brace gather\r:brace}} + {\HCode{\string\end \l:brace gather\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|} {} +\ConfigureEnv{gather*} + {\bgroup |} {\egroup} + {}{} +\Configure{gather*} + {\HCode{\string\begin\l:brace gather*\r:brace}} + {\HCode{\string\end \l:brace gather*\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|} {} +>>> + +\<<< +\Configure{subarray} + {\HCode{\string\begin\l:brace subarray\r:brace + \l:brace \Hlcr\r:brace}} + {\HCode{\string\end \l:brace subarray\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} +\Configure{smallmatrix} + {\HCode{\string\begin\l:brace smallmatrix\r:brace}} + {\HCode{\string\end \l:brace smallmatrix\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|} {} +>>> + +\<<< +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\def\end:al:env{}\ifmmode\else + \ifvmode\else \def\end:al:env{\par\ShowPar\IgnoreIndent}\fi\fi} + {\end:al:env } + {}{}% + \Configure{#1} + {\IgnorePar + \ifvmode \EndP \else \EndP \HCode{}\fi + \ifmathltx + \Tg\def\end:mathalign{\Tg}% + \else + \Configure{@math}{|}\DviMath + \def\end:mathalign{\EndDviMath \DisplayMathfalse}% + \DisplayMathtrue + \fi + \HCode{\string\begin\l:brace #2\r:brace}} + {\HCode{\string\end \l:brace #2\r:brace}\end:mathalign } + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|} + {\HCode{|}}} +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align*} +\:tempc{alignat*}{alignat*} +\:tempc{xalignat*}{xalignat*} +\:tempc{flalign*}{flalign*} +>>> + + +\<<< +\Css{mtd.align-odd{margin-left:2em; text-align:right;}} +\Css{mtd.align-even{margin-right:2em; text-align:left;}} +>>> + +\<<< +\ifodd\HCol\space\else \string\hspace\l:brace2em\r:brace\fi +>>> + +\<<< +\ifodd\HCol columnalign="right" \fi +>>> + +Setting \verb+#1+ below within mrow is problematic in the sense that +arrows don't stretch over multi-characters content \verb+#2+. +A \verb+accent="true"+ move the arrow lower, but also distribute the +characters further apart. + +\<<< +\Tg% +\Tg#2\Tg% +#1% +\Tg% +>>> + +\<<< +\Tg% +\Tg{#2#3}\Tg% +#1% +\Tg% +>>> + + + + +% \Tg#1\Tg% +% \Tg#1\Tg% + + +\<<< +\Configure{underarrow@} + {\Tg\Tg} + {\Tg\Tg} + {\Tg\Tg} +\Configure{overarrow@} + {\Tg\Tg} + {\Tg\Tg} + {\Tg\Tg} +\def\:tempc#1#2#3{\a:overarrow@ + \hbox{$\m@th#2#3$}\b:overarrow@ + \hbox{#1#2}\c:overarrow@ + } +\HLet\overarrow@\:tempc +>>> + + + + + +\<<< +\ifx \o:overrightarrow:\:UnDef\else + \HRestore\overrightarrow + \HRestore\overleftarrow + \HRestore\overleftrightarrow +\fi +>>> + + + +\<<< +\Configure{overrightarrow} + {\HCode{\string\overrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +\Configure{overleftarrow} + {\HCode{\string\overleftarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +>>> + + +\<<< +\Configure{underrightarrow} + {\HCode{\string\underrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +\Configure{underleftarrow} + {\HCode{\string\underleftarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +>>> + + +\<<< +\Configure{overleftrightarrow} + {\HCode{\string\overleftrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +\Configure{underleftrightarrow} + {\HCode{\string\underleftrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +>>> + + + + + +\<<< +| +\renewcommand{\xrightarrow}[2][]{% + \HCode{\string\xrightarrow[}#1\HCode{]\l:brace}% + #2\HCode{\r:brace}} +\renewcommand{\xleftarrow}[2][]{% + \HCode{\string\xleftarrow[}#1\HCode{]\l:brace}% + #2\HCode{\r:brace}} + +\def\overset#1#2{{% + \HCode{\string\overset\l:brace}#1\HCode{\r:brace\l:brace}% + #2\HCode{\r:brace}}} +\def\underset#1#2{{% + \HCode{\string\underset\l:brace}#1\HCode{\r:brace\l:brace}% + #2\HCode{\r:brace}}} + +\def\sideset#1#2#3{{\HCode{\string\sideset\l:brace}% + {\HCode{}}#1\HCode{\r:brace\l:brace}% + {\HCode{}}#2\HCode{\r:brace}% + {{\HCode{}}#3}% + }} + +\renewcommand{\hdotsfor}[1]{% + \ifx[#1\@xp\shdots@for\else\hdots@for\@ne{#1}\fi} +\def\shdots@for#1]{\hdots@for{#1}} +\def\hdots@for#1#2{\multicolumn{#2}c% + {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@ + \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}% + \hfill + \mkern-#1\dotsspace@}% + } +\ConfigureEnv{eqxample}{}{}{}{} +\ConfigureEnv{gather*}{}{}{}{} +\ConfigureEnv{gathered}{}{}{}{} +\ConfigureEnv{matrix}{}{}{}{} +>>> + + The \verb'\HCode{}' in \verb'\sideset' is for catching superscripts and subscripts + + + + + +\<<< +\def\:tempc{\HCode{\string\mod\space}} +\HLet\bmod\:tempc +\def\:tempc#1{\HCode{\string\pod\l:brace}#1\HCode{\r:brace}} +\HLet\pod=\:tempc +\def\:tempc#1{\HCode{\string\pmod\l:brace}#1\HCode{\r:brace}} +\HLet\pmod=\:tempc +\def\:tempc#1{\HCode{\string\mod\l:brace}#1\HCode{\r:brace}} +\HLet\mod=\:tempc +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{amsopn} +%%%%%%%%%%%%%%%%%%%% + + +\<<< +\def\varinjlim{{\underrightarrow\lim}} +\def\varprojlim{{\underleftarrow\lim}} +\def\varlimsup{{\overline\lim}} +\def\varliminf{{\underline\lim}} +\def\:tempc#1#2#3{\hbox{{\mtexttrue + \HCode{}|\PauseMathClass + \Configure{$}{\EndPauseMathClass\mtextfalse + |\HCode{<\a:mathltx + mrow\Hnewline \mml:class="math">}} + {|\HCode{}\mtexttrue\PauseMathClass}{#1} + \let\f@size#2\selectfont #3}% + \mtextfalse \EndPauseMathClass |\HCode + {}}} +\HLet\textdef@\:tempc +>>> + + +The original definitions for the following macros contain small spaces +\verb+\,+ in the names, and the spaces imply improper mathltx outcome +of the form \verb+......+. + + +\<<< +\def\:tempc{\qopname\relax m{lim inf}} +\HLet\liminf=\:tempc +\def\:tempc{\qopname\relax m{lim sup}} +\HLet\limsup=\:tempc +\def\:tempc{\qopname\relax m{proj lim}} +\HLet\projlim=\:tempc +\def\:tempc{\qopname\relax m{inj lim}} +\HLet\injlim=\:tempc +>>> + + + + + +Why originally the accents are defined within a group? (knuth answer +this in the texbook.) + +\<<< +\let\A:oalign|=\a:oalign +\let\B:oalign|=\b:oalign +\Configure{oalign} + {\ifmmode \Configure{$}{\Tg}{\Tg}{}% + \let\halign|=\TeXhalign + \Tg\else\A:oalign + \fi} + {\ifmmode \Tg\else\B:oalign\fi} +>>> + + +\<<< +\Configure{qopname} + {\Configure{mathop}{*} + {\string\mathop\l:brace} + {\r:brace} + {}} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{Eqnarray} +%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{eqnarray} + {\HCode{\string\begin{eqnarray\ifx + \@seqncr\@eqncr\else *\fi}}} + {\HCode{\string\end{eqnarray\ifx + \@seqncr\@eqncr\else *\fi}}} + {} + {\HCode{\string\\\Hnewline}} + {\ifnum \HCol>1 + \ifnum \HCol=4 + \HCode{\%}% + |\PauseMathClass + \mtexttrue + \fi \HCode{\a:math:amp}% + \fi} + {\ifnum \HCol=4 \mtextfalse + \EndPauseMathClass |\fi } +>>> + + + + +\<<< +| +>>> + + +\<<< +| +>>> + + +\<<< +\Configure{multicolumn} + {\let\sv:VBorder\VBorder + \let\VBorder\empty + \Configure{VBorder}{}{}{}{}% + } + {\let\VBorder\sv:VBorder} + {\ifmmode \HCode{\l:brace}% + {|\HColAlign}% + \HCode{\r:brace\l:brace}\else + \ifvmode\IgnorePar\fi + \HCode{
}\fi } + {\ifmmode \HCode{\r:brace}\else + \ifvmode\IgnorePar\fi \EndP\HCode{
}\fi } +\def\gob:sp#1{#1} +>>> + + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{l}} + {-}{\HCode{c}} + {>}{\HCode{r}} + {p}{\HCode{l}} + {}% +>>> + + +\<<< +\Configure{halignTD} {}{} + {<}{\ifmathltx \HCode{ columnalign="left-0"}\else + \HCode{ style="text-align:left; white-space:nowrap;"}\fi} + {-}{\ifmathltx \HCode{ columnalign="center"}\else + \HCode{ style="text-align:center; white-space:nowrap;"}\fi} + {>}{\ifmathltx \HCode{ columnalign="right"}\else + \HCode{ style="text-align:right; white-space:nowrap;"}\fi} + {^}{\ifmathltx \HCode{ rowalign="top"}\else + \HCode{ style="vertical-align:top; white-space:nowrap;"}\fi} + {=}{\ifmathltx \HCode{ rowalign="baseline"}\else + \HCode{ style="vertical-align:baseline; white-space:nowrap;"}\fi} + {||}{\ifmathltx \HCode{ rowalign="center"}\else + \HCode{ style="vertical-align:middle; white-space:nowrap;"}\fi} + {_}{\ifmathltx \HCode{ rowalign="bottom"}\else + \HCode{ style="vertical-align:bottom; white-space:nowrap;"}\fi} + {p}{\ifmathltx \HCode{ columnalign="left-1"}\else + \HCode{ style="text-align:left;"}\fi} + {} +>>> + + + + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{ columnalign="left-3"}} + {-}{\HCode{ columnalign="center"}} + {>}{\HCode{ columnalign="right"}} + {^}{\HCode{ rowalign="top"}} + {=}{\HCode{ rowalign="baseline"}} + {||}{\HCode{ rowalign="center"}} + {_}{\HCode{ rowalign="bottom"}} + {p}{\HCode{ columnalign="left-4"}} + {} +>>> +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Big, BIG, ....} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\def\:tempc#1{\HCode{\l:brace\string\bigl\space\string#1}} +\HLet\bigl=\:tempc +\def\:tempc#1{\HCode{\string\bigm\space\string#1}} +\HLet\bigm=\:tempc +\def\:tempc#1{\HCode{\string\bigr\space\string #1\r:brace}} +\HLet\bigr=\:tempc +\def\:tempc#1{\HCode{\l:brace\string\Bigl\space\string#1}} +\HLet\Bigl=\:tempc +\def\:tempc#1{\HCode{\string\Bigm\space\string#1}} +\HLet\Bigm=\:tempc +\def\:tempc#1{\HCode{\string\Bigr\space\string #1\r:brace}} +\HLet\Bigr=\:tempc +\def\:tempc#1{\HCode{\l:brace\string\biggl\space\string#1}} +\HLet\biggl=\:tempc +\def\:tempc#1{\HCode{\string\biggm\space\string#1}} +\HLet\biggm=\:tempc +\def\:tempc#1{\HCode{\string\biggr\space\string #1\r:brace}} +\HLet\biggr=\:tempc +\def\:tempc#1{\HCode{\l:brace\string\Biggl\space\string#1}} +\HLet\Biggl=\:tempc +\def\:tempc#1{\HCode{\string\Biggm\space\string#1}} +\HLet\Biggm=\:tempc +\def\:tempc#1{\HCode{\string\Biggr\space\string #1\r:brace}} +\HLet\Biggr=\:tempc +>>> + + + +\<<< +\def\:tempc#1{{\HCode{\string\big\string{}\string#1\HCode{\string}}}} +\HLet\big=\:tempc +\def\:tempc#1{{\HCode{\string\Big\string{}\string#1\HCode{\string}}}} +\HLet\Big=\:tempc +\def\:tempc#1{{\HCode{\string\bigg\string{}\string#1\HCode{\string}}}} +\HLet\bigg=\:tempc +\def\:tempc#1{{\HCode{\string\Bigg\string{}\string #1\HCode{\string}}}} +\HLet\Bigg=\:tempc +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{stackrel} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\def\:temp#1#2{{\a:stackrel{#1}\b:stackrel {#2}\c:stackrel}} +\HLet\stackrel|=\:temp +\:CheckOption{stackrel-} \if:Option + \Configure{stackrel} + {\mathrel\bgroup \HCode{}\egroup} + \def\put:arg{\HCode{{\the\tmp:toks}}} +\else + \Configure{stackrel} + {\HCode{\string\stackrel\l:brace}}% + {\HCode{\r:brace\l:brace}|\mathop} + {\HCode{\r:brace}} +\fi +>>> + +\<<< +\Configure{mathop*}{*} + {\string\mathop\l:brace} + {\r:brace} + {\Configure{mathop}{}{}{}{}}% +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{fontmath.ltx} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\bgroup + \catcode`\{=12 \catcode`\}=12 + \catcode`\[=1 \catcode`\]=2 + \catcode`\/=0 \catcode`\\=12 + /gdef/l:brace[{] + /gdef/r:brace[}] + /gdef/back:slash[\] +/egroup +>>> + +\<<< +\Configure{overbrace} + {\Configure{mathop*}{*} + {\string\overbrace\l:brace} + {\r:brace} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:overbrace:=\displaystyle} + {} +\Configure{underbrace} + {\Configure{mathop*}{*} + {\string\underbrace\l:brace} + {\r:brace} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:underbrace:=\displaystyle} + {} +>>> + + +\<<< +% \Configure{MathClass}{0}{*}{}{}{} + \Configure{MathClass}{1}{*}{\string\mathop\l:brace}{\r:brace}{} +% \Configure{MathClass}{2}{*}{}{}{} +% \Configure{MathClass}{3}{*}{}{}{} +\:CheckOption{mathltx-} \if:Option + \Configure{MathClass}{4}{*}{}{}{} + \Configure{MathClass}{5}{*}{}{}{} +\else + \Log:Note{for sources failing to produce + clean mathltx code, try the command line option `mathltx-'}% +\fi + +%\Configure{MathClass}{6}{*}{}{}{} +% \Configure{MathClass}{7}{*}{}{} +% {0123456789} +\Configure{FormulaClass}{0}{}{}{} +\Configure{FormulaClass}{1}{}{}{} +\Configure{FormulaClass}{2}{}{}{} +\Configure{FormulaClass}{3}{}{}{} +\Configure{FormulaClass}{4}{}{}{} +\Configure{FormulaClass}{5}{}{}{} +\Configure{FormulaClass}{6}{}{}{} +>>> + + +\<<< +\def\:tempa#1{% + \def\:temp{\HCode{\string\firstOfOne}\,\HCode{\string#1\space}}% + \HLet#1\:temp } +\:tempa\bigcap +\:tempa\bigcirc +\:tempa\bigcup +\:tempa\bigodot +\:tempa\bigoplus +\:tempa\bigotimes +\:tempa\bigsqcup +\:tempa\bigtriangledown +\:tempa\bigtriangleup +\:tempa\biguplus +\:tempa\bigvee +\:tempa\bigwedge +\:tempa\coprod +\:tempa\int +\:tempa\intop +\:tempa\ointop +\:tempa\prod +\:tempa\sum +>>> + + + + + +\<<< +\def\:tempa#1{% + \def\:temp{\HCode{\string#1\space}}% + \HLet#1\:temp } +\:tempa\Delta +\:tempa\Gamma +\:tempa\Im +\:tempa\Lambda +\:tempa\Leftarrow +\:tempa\Leftrightarrow +\:tempa\Omega +\:tempa\Phi +\:tempa\Pi +\:tempa\Psi +\:tempa\Re +\:tempa\Rightarrow +\:tempa\Sigma +\:tempa\Theta +\:tempa\Upsilon +\:tempa\Xi +\:tempa\aleph +\:tempa\alpha +\:tempa\amalg +\:tempa\angle +\:tempa\approx +\:tempa\ast +\:tempa\asymp +\:tempa\beta +\:tempa\bot +\:tempa\bullet +\:tempa\cap +\:tempa\cdot +\:tempa\chi +\:tempa\circ +\:tempa\clubsuit +\:tempa\coprod +\:tempa\cup +\:tempa\dagger +\:tempa\dashv +\:tempa\ddagger +\:tempa\delta +\:tempa\diamond +\:tempa\diamondsuit +\:tempa\div +\:tempa\ell +\:tempa\emptyset +\:tempa\epsilon +\:tempa\equiv +\:tempa\eta +\:tempa\exists +\:tempa\flat +\:tempa\forall +\:tempa\frown +\:tempa\gamma +\:tempa\ge +\:tempa\geq +\:tempa\gg +\:tempa\hbar +\:tempa\heartsuit +\:tempa\imath +\:tempa\in +\:tempa\infty +\:tempa\intop +\:tempa\iota +\:tempa\jmath +\:tempa\kappa +\:tempa\lambda +\:tempa\land +\:tempa\le +\:tempa\leftarrow +\:tempa\leftharpoondown +\:tempa\leftharpoonup +\:tempa\leftrightarrow +\:tempa\leq +\:tempa\ll +\:tempa\lnot +\:tempa\lor +\:tempa\mapstochar +\:tempa\mid +\:tempa\mp +\:tempa\mu +\:tempa\nabla +\:tempa\natural +\:tempa\ne +\:tempa\nearrow +\:tempa\neg +\:tempa\neq +\:tempa\ni +\:tempa\not +\:tempa\nu +\:tempa\nwarrow +\:tempa\odot +\:tempa\oint +\:tempa\ointop +\:tempa\omega +\:tempa\ominus +\:tempa\oplus +\:tempa\oslash +\:tempa\otimes +\:tempa\parallel +\:tempa\partial +\:tempa\perp +\:tempa\phi +\:tempa\pi +\:tempa\pm +\:tempa\prec +\:tempa\preceq +\:tempa\prime +\:tempa\prod +\:tempa\propto +\:tempa\psi +\:tempa\rho +\:tempa\rightarrow +\:tempa\rightharpoondown +\:tempa\rightharpoonup +\:tempa\searrow +\:tempa\setminus +\:tempa\sharp +\:tempa\sigma +\:tempa\sim +\:tempa\sim +\:tempa\simeq +\:tempa\simeq +\:tempa\smallint +\:tempa\smile +\:tempa\spadesuit +\:tempa\sqcap +\:tempa\sqcup +\:tempa\sqsubseteq +\:tempa\sqsupseteq +\:tempa\star +\:tempa\subset +\:tempa\subseteq +\:tempa\succ +\:tempa\succeq +\:tempa\sum +\:tempa\supset +\:tempa\supseteq +\:tempa\surd +\:tempa\swarrow +\:tempa\tau +\:tempa\theta +\:tempa\times +\:tempa\top +\:tempa\triangle +\:tempa\triangleleft +\:tempa\triangleright +\:tempa\uplus +\:tempa\upsilon +\:tempa\varbigtriangledown +\:tempa\varbigtriangleup +\:tempa\varepsilon +\:tempa\varphi +\:tempa\varpi +\:tempa\varrho +\:tempa\varsigma +\:tempa\vartheta +\:tempa\vdash +\:tempa\vee +\:tempa\wedge +\:tempa\wp +\:tempa\wr +\:tempa\xi +\:tempa\zeta +>>> + + + + +\<<< +\def\:temp{\HCode{\string\firstOfOne}\,\HCode{\string\int + \string\int\space}} +\HLet\iint\:temp +\def\:temp{\HCode{\string\firstOfOne}\,\HCode{\string\int + \string\int\string\int\space}} +\HLet\iiint\:temp +\def\:temp{\HCode{\string\Rightarrow }} +\HLet\implies\:temp +\def\:temp{\HCode{\string\Leftarrow }} +\HLet\impliedby\:temp +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Limits of Sub- snd Super- Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{nolimits}{\HCode{\string\nolimits\space}} +\Configure{limits} + {\let|=\:UnDef + \let|=\:UnDef + \ifx \:temp\sp |\else + \ifx \:temp\sb |\fi\fi + |% + } +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Simultaneously Sub- and Super- Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +|% +\Configure{SUBSUP} + {\ifx |\:UnDef\else |\fi + \ifx |\:UnDef\else |\fi + |% + \Send{BACK}{\l:brace}\HCode{\r:brace + \string_\l:brace}\trap:base + } + {\HCode{\r:brace\string^\l:brace}\trap:base} + {\HCode{\r:brace}} +>>> + + +\<<< +\let\pl:SUBSUP=\SUBSUP: +>>> + +\<<< +\ifx \pl:SUBSUP\:UnDef \else + \let\SUBSUP:=\pl:SUBSUP +\fi +>>> + +\<<< +\ifx \a:putSUB\:UnDef \else + \pend:def\a:putSUB{\ifx \pl:SUBSUP\:UnDef\else + \let\SUBSUP:=\pl:SUBSUP + \let\pl:SUBSUP=\:UnDef + \fi}% +\fi +\ifx \a:putSUP\:UnDef \else + \pend:def\a:putSUP{\ifx \pl:SUBSUP\:UnDef\else + \let\SUBSUP:=\pl:SUBSUP + \let\pl:SUBSUP=\:UnDef + \fi}% +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Superscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +|% +\Configure{SUP} + {|\bgroup + |% + |\trap:base} + {}% +>>> + +\<<< +\def\pl:SUP{\Configure{SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\a:SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\b:SUP}}% +>>> + + +\<<< +\Configure{SUP} + {|\bgroup + |\trap:base} + {\egroup|}% +>>> + + +\<<< +\Configure{SUP} + {|\bgroup \trap:base} + {\egroup |}% +>>> + + +\<<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string^\l:brace}\trap:base +>>> + + +\<<< +\HCode{\r:brace}\aftergroup|% +>>> + +\<<< +\pl:SUP >>> + + +\<<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string^\l:brace}\trap:base +>>> + +\<<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string^\l:brace}% +>>> + +\<<< +\HCode{\r:brace}% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Subscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<<< +|% +\Configure{SUB} + {|\bgroup + |% + |\trap:base} + {}% +>>> + +\<<< +\def\pl:SUB{\Configure{SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\a:SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\b:SUB}}% +>>> + +\<<< +\Configure{SUB} + {|\bgroup + |\trap:base} + {\egroup|}% +>>> + + +\<<< +\Configure{SUB} + {|\bgroup \trap:base} + {\egroup |}% +>>> + + +\<<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string_\l:brace}% +>>> + +\<<< +\HCode{\r:brace}\aftergroup|% +>>> + +\<<< +\pl:SUB >>> + +\<<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string_\l:brace}% +>>> + +\<<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string_\l:brace}% +>>> + +\<<< +\HCode{\r:brace}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sized Operations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\def\mathop:prefix#1{% + \Configure{mathop}{*}{}{}% + {\Configure{mathop}{*}{\string\mathop\l:brace}{\r:brace}{}}} +>>> + +The nested configuration of mathop is needed for cases similar to that +of \verb!\log! i. +\verb/$$ \sum_a^b =\log 2 $$/ + + +\<<< +\pend:def\n:iint:{\ifDisplayMath\mathop:prefix{mathsize="big"}\fi} +\pend:def\n:iiint:{\ifDisplayMath\mathop:prefix{mathsize="big"}\fi} +\pend:def\n:idotsint:{\ifDisplayMath\mathop:prefix{mathsize="big"}\fi} +>>> + +\<<< +\def\:tempd#1#2{% + \expandafter\def\csname #1\endcsname{\mathchar"13#2\relax}% + \MathSymbol\mathop{#1}% + \expandafter\def\csname #1:limits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\limits}% + \expandafter\def\csname #1:nolimits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\nolimits}% + \expandafter\edef\csname n:#1:\endcsname{\noexpand\ifDisplayMath + \noexpand\expandafter \expandafter\noexpand + \csname #1:limits\endcsname + \noexpand\else \noexpand\expandafter + \expandafter\noexpand + \csname #1:nolimits\endcsname\noexpand\fi}% + \expandafter\pend:def\csname n:#1:\endcsname{\ifDisplayMath + \mathop:prefix{mathsize="big"}\fi}% +} +\:tempd{bigcap}{54} +\:tempd{bigcup}{53} +\:tempd{bigodot}{4A} +\:tempd{bigoplus}{4C} +\:tempd{bigotimes}{4E} +\:tempd{bigsqcup}{46} +\:tempd{biguplus}{55} +\:tempd{bigvee}{57} +\:tempd{bigwedge}{56} +\:tempd{coprod}{60} +\:tempd{intop}{52} +\:tempd{ointop}{48} +\:tempd{prod}{51} +\:tempd{sum}{50} +>>> + +\<<< +\def\math:sym#1#2{{\relax\ifmmode \expandafter#1\fi + {\ifmmode\HCode{\string#1\l:brace}\fi + \csname a:#2\endcsname + \ifmmode\HCode{\r:brace}\fi}}} +>>> + + +\<<< +\ifx \ilimits@\o:nolimits: + \let\ilimits@\nolimits +\fi +\ifx \ilimits@\o:nolimits: + \let\slimits@\nolimits +\fi +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Accent through `accents' Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +| +>>> + +\<<< +| +\def\:tempc#1{\HCode{\string\dddot\l:brace}#1\HCode{\r:brace}} +\HLet\dddot=\:tempc +\def\:tempc#1{\HCode{\string\ddddot\l:brace}#1\HCode{\r:brace}} +\HLet\ddddot=\:tempc +>>> + +\<<< +\def\:tempc#1{\HCode{\string\H\l:brace}#1\HCode{\r:brace}} +\HLet\H=\:tempc +\def\:tempc#1{\HCode{\string\acute\l:brace}#1\HCode{\r:brace}} +\HLet\acute=\:tempc +\def\:tempc#1{\HCode{\string\bar\l:brace}#1\HCode{\r:brace}} +\HLet\bar=\:tempc +\def\:tempc#1{\HCode{\string\breve\l:brace}#1\HCode{\r:brace}} +\HLet\breve=\:tempc +\def\:tempc#1{\HCode{\string\c\l:brace}#1\HCode{\r:brace}} +\HLet\c=\:tempc +\def\:tempc#1{\HCode{\string\cedil\l:brace}#1\HCode{\r:brace}} +\HLet\cedil=\:tempc +\def\:tempc#1{\HCode{\string\check\l:brace}#1\HCode{\r:brace}} +\HLet\check=\:tempc +\def\:tempc#1{\HCode{\string\d\l:brace}#1\HCode{\r:brace}} +\HLet\d=\:tempc +\def\:tempc#1{\HCode{\string\ddot\l:brace}#1\HCode{\r:brace}} +\HLet\ddot=\:tempc +\def\:tempc#1{\HCode{\string\dot\l:brace}#1\HCode{\r:brace}} +\HLet\dot=\:tempc +\def\:tempc#1{\HCode{\string\grave\l:brace}#1\HCode{\r:brace}} +\HLet\grave=\:tempc +\def\:tempc#1{\HCode{\string\hat\l:brace}#1\HCode{\r:brace}} +\HLet\hat=\:tempc +\def\:tempc#1{\HCode{\string\ring\l:brace}#1\HCode{\r:brace}} +\HLet\ring=\:tempc +\def\:tempc#1{\HCode{\string\t\l:brace}#1\HCode{\r:brace}} +\HLet\t=\:tempc +\def\:tempc#1{\HCode{\string\tilde\l:brace}#1\HCode{\r:brace}} +\HLet\tilde=\:tempc +\def\:tempc#1{\HCode{\string\udot\l:brace}#1\HCode{\r:brace}} +\HLet\udot=\:tempc +\def\:tempc#1{\HCode{\string\uml\l:brace}#1\HCode{\r:brace}} +\HLet\uml=\:tempc +\def\:tempc#1{\HCode{\string\vec\l:brace}#1\HCode{\r:brace}} +\HLet\vec=\:tempc +>>> + +Can \verb=\r= appear in math mode? If not, the following is not needed. + +\<<< +\ifx\jsm:r\:UnDef + \let\jsm:r\r + \def\:tempc#1{\ifmmode\HCode{\string\r\l:brace}#1\HCode{\r:brace}% + \else \jsm:r{#1}\fi } + \HLet\r=\:tempc +\fi +>>> + +\<<< +| +\Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|% + \ht:special{t4ht@[}\if!#1!x\else#2\fi + \ht:special{t4ht@]}}} + {\ifmathltx + \ifmtext |% + \else \AccentMath{|}\fi + \else |\fi + } +>>> + +\<<< +\expandafter\ifx \csname :#1:over\endcsname\relax + \expandafter\ifx \csname :#1:under\endcsname\relax + \AccentMath{|}% + \else #3\csname :#1:under\endcsname \fi +\else #3\csname :#1:over\endcsname \fi +>>> + +\<<< +\expandafter\ifx \csname :#1:over\endcsname\relax + |% +\else \expandafter\ifx \csname :#1:under\endcsname\relax + |% +\else + |% +\fi \fi +>>> + +\<<< +\HCode{}#3\HCode{}% + \csname :#1:under\endcsname + \HCode{}% +>>> + +\<<< +\HCode{}#3\HCode{}% + \csname :#1:over\endcsname + \HCode{}% +>>> + +\<<< +\HCode{}#3\HCode{}% + \csname :#1:under\endcsname + \csname :#1:over\endcsname + \HCode{}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Underline and Overline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{overline} + {\bgroup\ifmathltx |\else + \HCode{}\fi} + {\ifmathltx |\else \HCode{}\fi\egroup} +\Configure{underline} + {\bgroup + \ifmathltx |% + \else |\HCode{}\fi} + {\ifmathltx |\else \HCode{}\fi \egroup} +>>> + + +\<<< +| +>>> + +\<<< +| +>>> + + +\<<< +\Configure{overline} + {\bgroup |} + {|\egroup} +\Configure{underline} + {\bgroup \ifmmode |\else + |\fi} + {|\egroup} +>>> + +\<<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + + + + + + + + + + + +\<<< +\HCode{\string\overline\l:brace}% +>>> + +\<<< +\HCode{\r:brace}% +>>> + + +\<<< +\HCode{\string\underline\l:brace}% +>>> + +\<<< +\HCode{\r:brace}% +>>> + + +\verb'̲' is the code of \verb'_' + + + + + +\<<< +| +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{footnote-mark} + {\ifmathltx \ifmtext \else + \HCode{}\fi + \else \HCode{}\fi } + {\ifmathltx \ifmtext \else \HCode{}\fi + \else \HCode{}\fi } +\Configure{thank-mark} + {\HCode{<\ifmathltx mrow \expandafter\mml:class\else span class\fi + ="thank-mark">}} + {\HCode{}} +>>> + + + + + +The following code segments handle the different listed cases, +with possible exception of the last. + +\begin{verbatim} +a\footnote{b c} + +$a\footnote{b c}$ + +$a\footnote{\hbox{b c}}$ + +$a\footnote{\mbox{b c}}$ + +$a\mbox{\footnote{b c}}$ +\end{verbatim} + + +We have the following hooks + + +\begin{verbatim} +\def\@footnotemark{...\a:@makefnmark\@makefnmark + \b:@makefnmark...} +\long\def\@footnotetext#1{...\a:footnote-text\a:@makefntext + \@makefntext{\b:@makefntext + \a:@makefnbody #1\b:@makefnbody + }\c:@makefntext\b:footnote-text...} +\end{verbatim} + + + + + +\<<< +\:CheckOption{fn-in}\if:Option \else + \expandafter\let\csname A:footnote-text\expandafter\endcsname + \csname a:footnote-text\endcsname + \expandafter\let\csname B:footnote-text\expandafter\endcsname + \csname b:footnote-text\endcsname + \NewConfigure{footnote-text}[2]{% + \expandafter\def\csname a:footnote-text\endcsname{% + #1% + \ifmathltx + \HCode{<\a:@math\Hnewline + \csname a:math-xmlns\endcsname \Hnewline >% + \ifmtext \fi} + \fi + \ifmathltx \fi + }% + \expandafter\def\csname b:footnote-text\endcsname{% + \ifmathltx + \HCode{\ifmtext\fi }% + \fi + #2% + }% + } + \Configure{footnote-text} + {\csname A:footnote-text\endcsname} + {\csname B:footnote-text\endcsname} +\fi +>>> + + + +\<<< +\let\A:footnotetext=\a:footnotetext +\let\B:footnotetext=\b:footnotetext +\let\C:footnotetext=\c:footnotetext +\NewConfigure{footnotetext}[3]{% + \def\a:footnotetext{% + \ifmathltx \ifmtext |\fi\fi + #1% + \ifmathltx \ifmtext |\fi\fi + }% + \def\b:footnotetext{% + \ifmathltx \ifmtext |\fi\fi + #2% + \ifmathltx \ifmtext |\fi\fi + }% + \def\c:footnotetext{% + \ifmathltx \ifmtext |\fi\fi + #3% + \ifmathltx \ifmtext |\fi\fi + }% +} +\Configure{footnotetext} + {\A:footnotetext} + {\B:footnotetext} + {\C:footnotetext} +>>> + +\<<< +\Configure{footnotebody} + {\tmp:toks=} + {\ifmathltx \ifmmode $\mbox{$\the\tmp:toks$}$ + \else $\mbox{\the\tmp:toks}$\fi + \else \the\tmp:toks\fi} +>>> + + +\<<< +\:CheckOption{mouseover} \if:Option + \pend:def\js:on{\ifmathltx \ifmtext |\fi\fi} + \append:def\js:on{\ifmathltx \ifmtext |\fi\fi} +\fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Space Characters} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\def\:nbsp{\ifmtext |\else\ifmathltx + \Tg\else |\fi\fi} +>>> + +\<<< +\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x% +>>> + +% \HCode{\string&}\HChar{-35}\HCode{x00A0;}% + + +\<<< +\Configure{frenchb-nbsp} + {\ifmtext |\else\ifmathltx + \Tg% + \else + \ht:special{t4ht@?unhskip}\HCode{}% + |\HCode{}% + \fi\fi + \setbox\tmp:bx=\hbox\bgroup} + {\egroup} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Matrices} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Aligned} +%%%%%%%%%%%%% + + + +\<<< +\Configure{aligned} + {\HCode{\string\begin{aligned}}} + {\HCode{\string\end{aligned}}} + {} + {\HCode{\string\\}} + {\ifnum \HCol>1\HCode{\a:math:amp}\fi} {} +\Configure{alignedat} + {\HCode{\string\begin{alignedat}}} + {\HCode{\string\end{alignedat}}} + {} + {\HCode{\string\\}} + {\ifnum \HCol>1\HCode{\a:math:amp}\fi} {} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{Cases} +%%%%%%%%%%%%%%%%% + +\<<< +\Configure{cases} + {}{} + {\HCode{\string\cases\l:brace}} + {\ifvmode \IgnorePar\fi \HCode{\r:brace}} + {\ifnum \HRow>1 \HCode{\string\cr\space}\fi} + {} + {|} + {} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{matrix} +%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{matrix} + {\HCode{\string\matrix\l:brace}} + {\HCode{\r:brace}} + {\ifnum \HRow>1 \HCode{\string\cr\space}\fi} + {} + {|} + {} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{pmatrix} +%%%%%%%%%%%%%%%%%%%% + + +The grouping below is handle the case that the matrix is a base of an +exponent. + + +\<<< +\Configure{pmatrix} {\bgroup} {\egroup} +>>> + + + +The grouping below is handle the case that the matrix is a base of an +exponent. The \verb|\,| configurations is for facilitating the +catching of left subscripts and superscripts. + + +\<<< +\Configure{quad}{{\ifmathltx \ifmtext \o:quad:\else + {\HCode{\string\quad\space}}\fi + \else \o:quad: \fi}} +\Configure{qquad}{{\ifmathltx \ifmtext \o:qquad:\else + {\HCode{\string\qquad\space}}\fi + \else \o:qquad: \fi}} +\Configure{,} + {{\HCode{\string\,}}} +>>> + + + + +%%%%%%%%%%%%%%%%%%%% +\section{TeX} +%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{eqalignno} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{}}% + {\HCode{}}} +>>> + + +\<<< +\Configure{leqalignno} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{}}% + {\HCode{}}} +>>> + +\section{Fractions} + + + + + + + +\<<< +| +>>> + + +\<<< +\ConfigureEnv{aligned}{}{}{}{} +\Configure{aligned} + {\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} {\HCode{}} +>>> + + +\<<< +\Configure{multilimits} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{smallmatrix} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +>>> + +\<<< +\Configure{matrix} + {\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{|}} {\HCode{}} +>>> + +\<<< +\Configure{pmatrix}{\Tg} + {\Tg} +>>> + +\<<< +\Configure{align} + {\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} {\HCode{}} +\Configure{aligned} + {\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} {\HCode{}} +>>> + +\<<< +\Configure{cases} + {\Tg} + {\Tg} +\Configure{alignat} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{
}} +\Configure{gather} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{
}} +>>>> + +\<<< +\Configure{align} + {\EndP\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} {\HCode{}} +>>> + + + + + + + +% {\mathchar"0403} % \square +% {\mathchar"0404} % \blacksquare +% {\mathchar"0406} % \lozenge +% {\mathchar"0407} % \blacklozenge +% {\mathchar"0438} % \backprime +% {\mathchar"0446} % \bigstar +% {\mathchar"0448} % \blacktriangledown +% {\mathchar"044E} % \blacktriangle +% {\mathchar"044F} % \triangledown +% {\mathchar"045D} % \measuredangle +% {\mathchar"045E} % \sphericalangle +% {\mathchar"0473} % \circledS +% {\mathchar"047B} % \complement +% {\mathchar"051E} % \diagup +% {\mathchar"051F} % \diagdown +% {\mathchar"053F} % \varnothing +% {\mathchar"0540} % \nexists +% {\mathchar"0560} % \Finv +% {\mathchar"0561} % \Game +% {\mathchar"0567} % \eth +% {\mathchar"0569} % \beth +% {\mathchar"056A} % \gimel +% {\mathchar"056B} % \daleth +% {\mathchar"057A} % \digamma +% {\mathchar"057B} % \varkappa +% {\mathchar"057C} % \Bbbk +% {\mathchar"057D} % \hslash + + +\<<< +\def\:tempa#1"#2#3///{\Configure{MathClass}{#2}} +\def\:temp#1{\:tempa#1///{}{}{}{#1}} +\:temp{\mathchar"2400} |% \boxdot |% +\:temp{\mathchar"2401} |% \boxplus |% +\:temp{\mathchar"2402} |% \boxtimes |% +\:temp{\mathchar"2405} |% \centerdot |% +\:temp{\mathchar"240C} |% \boxminus |% +\:temp{\mathchar"2459} |% \veebar |% +\:temp{\mathchar"245A} |% \barwedge |% +\:temp{\mathchar"245B} |% \doublebarwedge |% +\:temp{\mathchar"2464} |% \Cup |% +\:temp{\mathchar"2465} |% \Cap |% +\:temp{\mathchar"2466} |% \curlywedge |% +\:temp{\mathchar"2467} |% \curlyvee |% +\:temp{\mathchar"2468} |% \leftthreetimes |% +\:temp{\mathchar"2469} |% \rightthreetimes |% +\:temp{\mathchar"2475} |% \dotplus |% +\:temp{\mathchar"247C} |% \intercal |% +\:temp{\mathchar"247D} |% \circledcirc |% +\:temp{\mathchar"247E} |% \circledast |% +\:temp{\mathchar"247F} |% \circleddash |% +\:temp{\mathchar"253E} |% \divideontimes |% +\:temp{\mathchar"256C} |% \lessdot |% +\:temp{\mathchar"256D} |% \gtrdot |% +\:temp{\mathchar"256E} |% \ltimes |% +\:temp{\mathchar"256F} |% \rtimes |% +\:temp{\mathchar"2572} |% \smallsetminus |% +\:temp{\mathchar"3408} |% \circlearrowright |% +\:temp{\mathchar"3409} |% \circlearrowleft |% +\:temp{\mathchar"340A} |% \rightleftharpoons |% +\:temp{\mathchar"340B} |% \leftrightharpoons |% +\:temp{\mathchar"340D} |% \Vdash |% +\:temp{\mathchar"340E} |% \Vvdash |% +\:temp{\mathchar"340F} |% \vDash |% +\:temp{\mathchar"3410} |% \twoheadrightarrow |% +\:temp{\mathchar"3411} |% \twoheadleftarrow |% +\:temp{\mathchar"3412} |% \leftleftarrows |% +\:temp{\mathchar"3413} |% \rightrightarrows |% +\:temp{\mathchar"3414} |% \upuparrows |% +\:temp{\mathchar"3415} |% \downdownarrows |% +\:temp{\mathchar"3416} |% \upharpoonright |% +\:temp{\mathchar"3417} |% \downharpoonright |% +\:temp{\mathchar"3418} |% \upharpoonleft |% +\:temp{\mathchar"3419} |% \downharpoonleft |% +\:temp{\mathchar"341A} |% \rightarrowtail |% +\:temp{\mathchar"341B} |% \leftarrowtail |% +\:temp{\mathchar"341C} |% \leftrightarrows |% +\:temp{\mathchar"341D} |% \rightleftarrows |% +\:temp{\mathchar"341E} |% \Lsh |% +\:temp{\mathchar"341F} |% \Rsh |% +\:temp{\mathchar"3420} |% \rightsquigarrow |% +\:temp{\mathchar"3421} |% \leftrightsquigarrow |% +\:temp{\mathchar"3422} |% \looparrowleft |% +\:temp{\mathchar"3423} |% \looparrowright |% +\:temp{\mathchar"3424} |% \circeq |% +\:temp{\mathchar"3425} |% \succsim |% +\:temp{\mathchar"3426} |% \gtrsim |% +\:temp{\mathchar"3427} |% \gtrapprox |% +\:temp{\mathchar"3428} |% \multimap |% +\:temp{\mathchar"3429} |% \therefore |% +\:temp{\mathchar"342A} |% \because |% +\:temp{\mathchar"342B} |% \doteqdot |% +\:temp{\mathchar"342C} |% \triangleq |% +\:temp{\mathchar"342D} |% \precsim |% +\:temp{\mathchar"342E} |% \lesssim |% +\:temp{\mathchar"342F} |% \lessapprox |% +\:temp{\mathchar"3430} |% \eqslantless |% +\:temp{\mathchar"3431} |% \eqslantgtr |% +\:temp{\mathchar"3432} |% \curlyeqprec |% +\:temp{\mathchar"3433} |% \curlyeqsucc |% +\:temp{\mathchar"3434} |% \preccurlyeq |% +\:temp{\mathchar"3435} |% \leqq |% +\:temp{\mathchar"3436} |% \leqslant |% +\:temp{\mathchar"3437} |% \lessgtr |% +\:temp{\mathchar"343A} |% \risingdotseq |% +\:temp{\mathchar"343B} |% \fallingdotseq |% +\:temp{\mathchar"343C} |% \succcurlyeq |% +\:temp{\mathchar"343D} |% \geqq |% +\:temp{\mathchar"343E} |% \geqslant |% +\:temp{\mathchar"343F} |% \gtrless |% +\:temp{\mathchar"3442} |% \vartriangleright |% +\:temp{\mathchar"3443} |% \vartriangleleft |% +\:temp{\mathchar"3444} |% \trianglerighteq |% +\:temp{\mathchar"3445} |% \trianglelefteq |% +\:temp{\mathchar"3447} |% \between |% +\:temp{\mathchar"3449} |% \blacktriangleright |% +\:temp{\mathchar"344A} |% \blacktriangleleft |% +\:temp{\mathchar"344D} |% \vartriangle |% +\:temp{\mathchar"3450} |% \eqcirc |% +\:temp{\mathchar"3451} |% \lesseqgtr |% +\:temp{\mathchar"3452} |% \gtreqless |% +\:temp{\mathchar"3453} |% \lesseqqgtr |% +\:temp{\mathchar"3454} |% \gtreqqless |% +\:temp{\mathchar"3456} |% \Rrightarrow |% +\:temp{\mathchar"3457} |% \Lleftarrow |% +\:temp{\mathchar"345F} |% \varpropto |% +\:temp{\mathchar"3460} |% \smallsmile |% +\:temp{\mathchar"3461} |% \smallfrown |% +\:temp{\mathchar"3462} |% \Subset |% +\:temp{\mathchar"3463} |% \Supset |% +\:temp{\mathchar"346A} |% \subseteqq |% +\:temp{\mathchar"346B} |% \supseteqq |% +\:temp{\mathchar"346C} |% \bumpeq |% +\:temp{\mathchar"346D} |% \Bumpeq |% +\:temp{\mathchar"346E} |% \lll |% +\:temp{\mathchar"346F} |% \ggg |% +\:temp{\mathchar"3474} |% \pitchfork |% +\:temp{\mathchar"3476} |% \backsim |% +\:temp{\mathchar"3477} |% \backsimeq |% +\:temp{\mathchar"3500} |% \lvertneqq |% +\:temp{\mathchar"3501} |% \gvertneqq |% +\:temp{\mathchar"3502} |% \nleq |% +\:temp{\mathchar"3503} |% \ngeq |% +\:temp{\mathchar"3504} |% \nless |% +\:temp{\mathchar"3505} |% \ngtr |% +\:temp{\mathchar"3506} |% \nprec |% +\:temp{\mathchar"3507} |% \nsucc |% +\:temp{\mathchar"3508} |% \lneqq |% +\:temp{\mathchar"3509} |% \gneqq |% +\:temp{\mathchar"350A} |% \nleqslant |% +\:temp{\mathchar"350B} |% \ngeqslant |% +\:temp{\mathchar"350C} |% \lneq |% +\:temp{\mathchar"350D} |% \gneq |% +\:temp{\mathchar"350E} |% \npreceq |% +\:temp{\mathchar"350F} |% \nsucceq |% +\:temp{\mathchar"3510} |% \precnsim |% +\:temp{\mathchar"3511} |% \succnsim |% +\:temp{\mathchar"3512} |% \lnsim |% +\:temp{\mathchar"3513} |% \gnsim |% +\:temp{\mathchar"3514} |% \nleqq |% +\:temp{\mathchar"3515} |% \ngeqq |% +\:temp{\mathchar"3516} |% \precneqq |% +\:temp{\mathchar"3517} |% \succneqq |% +\:temp{\mathchar"3518} |% \precnapprox |% +\:temp{\mathchar"3519} |% \succnapprox |% +\:temp{\mathchar"351A} |% \lnapprox |% +\:temp{\mathchar"351B} |% \gnapprox |% +\:temp{\mathchar"351C} |% \nsim |% +\:temp{\mathchar"351D} |% \ncong |% +\:temp{\mathchar"3520} |% \varsubsetneq |% +\:temp{\mathchar"3521} |% \varsupsetneq |% +\:temp{\mathchar"3522} |% \nsubseteqq |% +\:temp{\mathchar"3523} |% \nsupseteqq |% +\:temp{\mathchar"3524} |% \subsetneqq |% +\:temp{\mathchar"3525} |% \supsetneqq |% +\:temp{\mathchar"3526} |% \varsubsetneqq |% +\:temp{\mathchar"3527} |% \varsupsetneqq |% +\:temp{\mathchar"3528} |% \subsetneq |% +\:temp{\mathchar"3529} |% \supsetneq |% +\:temp{\mathchar"352A} |% \nsubseteq |% +\:temp{\mathchar"352B} |% \nsupseteq |% +\:temp{\mathchar"352C} |% \nparallel |% +\:temp{\mathchar"352D} |% \nmid |% +\:temp{\mathchar"352E} |% \nshortmid |% +\:temp{\mathchar"352F} |% \nshortparallel |% +\:temp{\mathchar"3530} |% \nvdash |% +\:temp{\mathchar"3531} |% \nVdash |% +\:temp{\mathchar"3532} |% \nvDash |% +\:temp{\mathchar"3533} |% \nVDash |% +\:temp{\mathchar"3534} |% \ntrianglerighteq |% +\:temp{\mathchar"3535} |% \ntrianglelefteq |% +\:temp{\mathchar"3536} |% \ntriangleleft |% +\:temp{\mathchar"3537} |% \ntriangleright |% +\:temp{\mathchar"3538} |% \nleftarrow |% +\:temp{\mathchar"3539} |% \nrightarrow |% +\:temp{\mathchar"353A} |% \nLeftarrow |% +\:temp{\mathchar"353B} |% \nRightarrow |% +\:temp{\mathchar"353C} |% \nLeftrightarrow |% +\:temp{\mathchar"353D} |% \nleftrightarrow |% +\:temp{\mathchar"3568} |% \eqsim |% +\:temp{\mathchar"3570} |% \shortmid |% +\:temp{\mathchar"3571} |% \shortparallel |% +\:temp{\mathchar"3573} |% \thicksim |% +\:temp{\mathchar"3574} |% \thickapprox |% +\:temp{\mathchar"3575} |% \approxeq |% +\:temp{\mathchar"3576} |% \succapprox |% +\:temp{\mathchar"3577} |% \precapprox |% +\:temp{\mathchar"3578} |% \curvearrowleft |% +\:temp{\mathchar"3579} |% \curvearrowright |% +\:temp{\mathchar"357F} |% \backepsilon |% +>>>> + + + + +%%%%%%%%%%%%%%%%%% +\chapter{Loose Ends} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Right-to-Left Babel} +%%%%%%%%%%%%%%%%%% + + + +\<<< +\expandafter\ifx \csname o@everypar\endcsname\relax \else +\expandafter\ifx \csname ht:everypar\endcsname\relax + \let\ht:everypar\o@everypar +\fi\fi +>>> + + + + + + +\<<< +dir="\if@rl rtl\else ltr\fi" +>>> + + +\<<< +\Configure{moreL} + {\ifmathltx |% + \else + \ifvmode \let\end:moreRL=\empty + \else\HCode{}% + \def\end:moreRL{\HCode{}}% + \fi + \fi + } + {\end:moreRL} +\Configure{moreR} + {\ifmathltx |% + \else + \ifvmode \let\end:moreRL=\empty + \else\HCode{}\def\end:moreRL{\HCode{}}\fi + \fi + } + {\end:moreRL} +\Css{.rtl {direction: rtl} + .ltr {direction: ltr} } +>>> + + + +\<<< +\ifmtext + \leavevmode\special{t4ht@+}x% + \def\end:moreRL{\HCode{}}% +\else + \let\end:moreRL=\empty +\fi +>>> + + + +\<<< +\ifmtext + \leavevmode\special{t4ht@+}x% + \def\end:moreRL{\HCode{}}% +\else + \let\end:moreRL=\empty +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{openmath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{itemitem}{}{}{\par\leavevmode}{} +>>> + + + + +Used to have also a \verb'\special{t4ht@[}...\special{t4ht@]}', +where the specials asked to igore the enclosed +content. It is provided for getting `realistic' measurements in mathltx +applets. a candidadte for delition. + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +>>> + + +\<<< +!*?: >>> + + +\<<< + cw:>>> + +\<<< +tail>>> + +\<<< +\xdef\:cursec{|
}% +>>> + + +\<<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \catcode`\noexpand :|=\the\catcode`:% + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`\:|=11 +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Boxed} +%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{boxed} + {\ifmathltx \HCode{\string\boxed\l:brace}% + \else \HCode{}\IgnorePar\fi} + {\ifmathltx \HCode{\r:brace}% + \else \HCode{}\fi} +\Css{.boxed{border: 1px solid black; padding-left:2px; + padding-right:2px;}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{fontmath} +%%%%%%%%%%%%%%%%%% + + + + +\<<< +\mathchar"3230 |%\prime|% +\mathchar"3231 |%\infty|% +\mathchar"323B |%\emptyset|% +\mathchar"323C |%\Re|% +\mathchar"323D |%\Im|% +\mathchar"3240 |%\aleph|% +>>> + +\<<< +\mathchar"3234 |%\triangle|% +\mathchar"3238 |%\forall|% +\mathchar"3239 |%\exists|% +\mathchar"323A |%\neg|% +\mathchar"323E |%\top|% +\mathchar"323F |%\bot|% +\mathchar"3272 |%\nabla|% +\mathchar"3278 |%\mathsection|% +\mathchar"327B |%\mathparagraph|% +\mathchar"327C |%\clubsuit|% +\mathchar"327D |%\diamondsuit|% +\mathchar"327E |%\heartsuit|% +\mathchar"327F |%\spadesuit|% +>>> + + + +\subsection{1: Large Operators} + +\begin{verbatim} +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 +\end{verbatim} + +\<<< +\Configure{MathClass}{1}{}{}{}{ + \mathchar"1360 + \mathchar"1357 + \mathchar"1356 + \mathchar"1355 + \mathchar"1354 + \mathchar"1353 + \mathchar"1352 + \mathchar"1351 + \mathchar"1350 + \mathchar"134E + \mathchar"134C + \mathchar"134A + \mathchar"1348 + \mathchar"1346 + \mathchar"1273 + |% +} +>>> + +% \mathchar"230 |%math prime|% + +A prime is typically placed on letters and digits. + + +\subsection{2: Binary Operations} + +\begin{verbatim} +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\-="2200 +\end{verbatim} + +\<<< +\Configure{MathClass}{2}{}{}{}{ +*-+/ +\mathchar"212F +\mathchar"212E +\mathchar"2234 +\mathchar"2235 +\mathchar"225E +\mathchar"225F +\mathchar"225C +\mathchar"225B +\mathchar"227A +\mathchar"2279 +\mathchar"2275 +\mathchar"2274 +\mathchar"225D +\mathchar"2271 +\mathchar"2205 +\mathchar"220F +\mathchar"226F +\mathchar"2204 +\mathchar"220C +\mathchar"220B +\mathchar"220A +\mathchar"2209 +\mathchar"2208 +\mathchar"2207 +\mathchar"2206 +\mathchar"220E +\mathchar"220D +\mathchar"226E +\mathchar"2201 +\mathchar"2203 +\mathchar"2202 +\mathchar"213F +} +>>> + + +\subsection{3: Relational Operations} + +The catcode is needed because 303A is \verb':'. + +\<<< +\Configure{MathClass}{3}{}{}{}{ + \mathchar"3128 + \mathchar"3129 + \mathchar"312A + \mathchar"312B + \mathchar"315E + \mathchar"315F + \mathchar"3210 + \mathchar"3211 + \mathchar"3212 + \mathchar"3213 + \mathchar"3214 + \mathchar"3215 + \mathchar"3216 + \mathchar"3217 + \mathchar"3218 + \mathchar"3219 + \mathchar"321A + \mathchar"321B + \mathchar"321C + \mathchar"321D + \mathchar"321E + \mathchar"321F + \mathchar"3220 + \mathchar"3221 + \mathchar"3224 + \mathchar"3227 + \mathchar"3232 + \mathchar"3233 + \mathchar"3236 + \mathchar"3237 + \mathchar"323F + :=>< + \mathchar"322F + \mathchar"3276 + \mathchar"3277 + \mathchar"326B + \mathchar"326A + \mathchar"3261 + \mathchar"3260 + \mathchar"3225 + \mathchar"3226 + \mathchar"322D + \mathchar"322E + \mathchar"322C + \mathchar"3228 + \mathchar"3229 +} +>>> + +% \mathchar"327C |%clubsuit|% +% \mathchar"327D |%diamondsuit|% +% \mathchar"327E |%heartsuit|% +% \mathchar"327F |%spadesuit|% + + + +% \mathchar"340A % rightleftharpoons +% \mathchar"340B % leftrightharpoons +% + +\begin{verbatim} +\mathcode`\>="313E +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\:="303A +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\set="321A +\mathchardef\supseteq="3213 +\mathchardef\seteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\end{verbatim} + + +\subsection{4/5: Delimiters} + +\begin{verbatim} +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\[="405B +\mathcode`\]="505D +\mathcode`\{="4266 +\mathcode`\}="5267 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated? +\def\vert{\delimiter"26A30C } " " " " " +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\end{verbatim} + +The comamnds \verb'\Configure{MathClass}{4}...' +and \verb'\Configure{MathClass}{5}...' +are for unmatched delimiters, and the comamnd +\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones. + + +\<<< +\Configure{MathClass}{4}{}{}{}{} +\Configure{MathDelimiters}{(}{)} +\Configure{MathDelimiters}{[}{]} +\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263} +\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265} +\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267} +\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269} +\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301} +\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303} +\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305} +\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307} +\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309} +\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B} +>>> + +\begin{verbatim} +\mathcode`\?="503F +\end{verbatim} + + +\subsection{6: Punctuation Marks} + +\begin{verbatim} +\mathcode`\;="603B +\mathcode`\,="613B +\end{verbatim} + +\<<< +\Configure{MathClass}{6}{}{}{}{ +\mathchar"613A % ldot +\mathchar"6201 % cdot +\mathchar"603A % colon +?; , +} +>>> + + +\subsection{Questions} + +\begin{verbatim} + + +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + + +\subsection{Type 4: Math Open} + + +latex.ltx, fontmath.ltx, plain.tex + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Notes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{To Do} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item Parametric commands as Superscripts or Subscripts: + \verb+$E^\frac{1}{2}$+ (instead of \verb+$E^{\frac{1}{2}}$+). + +\item + Numbering is not right justified: + +\begin{verbatim} +\documentclass{amsart} + \begin{document} + + \begin{eqnarray} + A &=& B + C + \end{eqnarray} + + \begin{align} + A &= B + C \qquad & N &= G + F + \end{align} + + \begin{alignat}{2} + A &= B + C \qquad \qquad & N & = G + F + \end{alignat} + +\begin{gather} +A = B + C \tag{my equation} \\ +B = \text{variable unknown} \notag \\ +Y = \max X + \log 10 +\end{gather} + +\end{document} +\end{verbatim} + + +\item +\begin{verbatim} +\begin{align} +e &= a + b \\ +\intertext{this should be located on the left browser hand margin} +a &= u +\end{align} + +\end{verbatim} + +\end{itemize} + +\endinput -- cgit v1.2.3