% $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