\:CheckOption{fonts} \if:Option
  
   \Configure{textbf}{\Protect\HCode{<span class="textbf">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{textit}{\Protect\HCode{<span class="textit">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{textrm}{\Protect\HCode{<span class="textrm">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{textup}{\Protect\HCode{<span class="textup">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{textsc}{\Protect\HCode{<span class="textsc">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{textsf}{\Protect\HCode{<span class="textsf">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{textsl}{\Protect\HCode{<span class="textsl">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{texttt}{\Protect\HCode{<span class="texttt">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{emph}{\Protect\HCode{<span class="emph">}}
  
                     {\Protect\HCode{</span>}}
  
   \Css{span.textbf { font-weight: bold; }}
  
   \Css{span.textit { font-style: italic; }}
  
   \Css{span.textrm { font-family: serif; }}
  
   \Css{span.textsc { font-variant: small-caps; }}
  
   \Css{span.textsf { font-family: sans-serif; }}
  
   \Css{span.texttt { font-family: monospace; }}
  
 \else
  
   \Log:Note{for tracing of latex font commands,
  
           use the command line option ‘fonts’}
  
 \fi
-_-_-
   
 
    \:CheckOption{fonts} \if:Option
  
   \Configure{mathit}{\Protect\HCode{<span class="mathit">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{mathbf}{\Protect\HCode{<span class="mathbf">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{mathtt}{\Protect\HCode{<span class="mathtt">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{mathsf}{\Protect\HCode{<span class="mathsf">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{mathrm}{\Protect\HCode{<span class="mathrm">}}
  
                     {\Protect\HCode{</span>}}
  
 \fi
-_-_-
   
 
    \:CheckOption{fonts} \if:Option
  
   \Configure{mathbb}{\Protect\HCode{<span class="mathbb">}}
  
                     {\Protect\HCode{</span>}}
  
   \Configure{mathfrak}{\Protect\HCode{<span class="mathfrak">}}
  
                     {\Protect\HCode{</span>}}
  
 \fi
-_-_-
   
 
   
   
\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
    \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
  
 }
-_-_-
   
 
   
   
\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
    \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
  
 }
-_-_-
   
 
   
The catcode is needed because 303A is :.
    \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
  
 }
-_-_-
   
 
   
\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
   
   
\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 }
   The comamnds \Configure{MathClass}{4}... and \Configure{MathClass}{5}...
are for unmatched delimiters, and the comamnd \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}
-_-_-
   
 
   
\mathcode‘\?="503F
   
   
\mathchardef\ldotp="613A % ldot as a punctuation mark
 
\mathchardef\cdotp="6201 % cdot as a punctuation mark
 
\mathchardef\colon="603A % colon as a punctuation mark
 
\mathcode‘\;="603B
 
\mathcode‘\,="613B
    \Configure{MathClass}{6}{}{}{}{
  
 \mathchar"613A
  
 \mathchar"6201
  
 \mathchar"603A
  
 ?; ,
  
 }
-_-_-
   
 
   
   
\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}
   
latex.ltx, fontmath.ltx, plain.tex
   
    \Configure{overrightarrow}
  
    {\leavevmode\IgnorePar}
  
    {}
  
 \Configure{overleftarrow}
  
    {\leavevmode\IgnorePar}
  
    {}
-_-_-