diff options
author | Karl Berry <karl@freefriends.org> | 2021-05-03 01:32:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-05-03 01:32:21 +0000 |
commit | 4feea2468d21899ed23a55816e5027793d73f0b0 (patch) | |
tree | 7fb702d574e37d9090b04cac03d7f824a12b77b7 /Master/texmf-dist/source/generic/tex4ht/tex4ht-moz.tex | |
parent | 51d9a33e68f1f36a2db54a1c8773032750b72201 (diff) |
tex4ht source files
git-svn-id: svn://tug.org/texlive/trunk@59059 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic/tex4ht/tex4ht-moz.tex')
-rw-r--r-- | Master/texmf-dist/source/generic/tex4ht/tex4ht-moz.tex | 1071 |
1 files changed, 1071 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/tex4ht/tex4ht-moz.tex b/Master/texmf-dist/source/generic/tex4ht/tex4ht-moz.tex new file mode 100644 index 00000000000..1ea4e220f40 --- /dev/null +++ b/Master/texmf-dist/source/generic/tex4ht/tex4ht-moz.tex @@ -0,0 +1,1071 @@ +% $Id: tex4ht-moz.tex 65 2010-11-17 19:16:45Z karl $ +% compile 3 times: latex tex4ht-moz +% or xhlatex tex4ht-moz "html,3,sections+" +% +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{mozilla} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common.tex} +\input{tex4ht-cpright.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<mozilla\><<< +% mozilla.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2000. Eitan M. Gurari, Paul Gartside +% gartside@maths.ox.ac.uk +|<TeX4ht copywrite|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Start Here} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure mozilla Preamble\><<< +\:CheckOption{xht} \if:Option + \Configure{ext}{xht} +\else + \Configure{ext}{xml} +\fi +>>> + +It looks like frames on (just current?) browsers require +html extension fot file names. + +Mozilla complaints about version 1.1 :-( + + +%\Configure{VERSION} +% {\IgnorePar \HCode{<?xml version="1.0"?>\Hnewline}} + +\<configure mozilla tex4ht\><<< +\:CheckOption{frames} \if:Option + \Configure{frames-altDOCTYPE}{|<no frames DOCTYPE|>} +\else + |<no frames DOCTYPE|> +\fi +\:CheckOption{-css} \if:Option \else + \Configure{XML-STYLESHEET} + {\HCode{<?xml-stylesheet type="text/css" + href="\aa:CssFile"?>\Hnewline}} +\fi +>>> + + +\<no frames DOCTYPE\><<< +\:CheckOption{pmathml} \if:Option + |<pmathml dtd|> +\else + |<non pmathml dtd|> +\fi +>>> + + + +\<non pmathml dtd\><<< +\Configure{DOCTYPE} + {\IgnorePar + \HCode{<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//|<dtd lang|>"\Hnewline + "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd" + >\Hnewline +% "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [\Hnewline +% <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">\Hnewline +% ]>\Hnewline + }} +>>> + + +\<dtd lang\><<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + + +% \Configure{@HEAD}{\HCode{<meta \Hnewline +% http-equiv="Content-Type" content="text/html; +% \ifx \a:charset\:UnDef \A:charset +% \else \a:charset\fi " \xml:empty>}} + + + +\<xmlns\><<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + +\<configure mozilla tex4ht\><<< +\Configure{HTML} + {\IgnorePar\HCode{<html \a:@HTML\Hnewline + \:xhtml{|<xmlns|>}\Hnewline>}} + {\HCode{\Hnewline</html>\Hnewline}} +>>> + +% + + + + + +\<configure mozilla tex4ht\><<< +\Configure{DviMath} + {\mathmltrue + \ifOption{mml-fonts}{|<mml fonts|>}{\NoFonts}\IgnoreRule\HCode{<!--l. + \the\inputlineno-->}{\Tg<\a:mathml math\Hnewline + |<math xmlns|>\a:@math>}\a:math + |<sv dvimath par|>\IgnorePar} + {\Tg</\a:mathml math>\EndIgnoreRule + \ifOption{mml-fonts}{|<html fonts|>}{\EndNoFonts}% + |<recall dvimath par|>\mathmlfalse} +>>> + + + + +\<html fonts\><<< +\Configure{htf}{0}{+}{<span\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</span>}% +>>> + +\<mml fonts\><<< +\Configure{htf}{0}{+}{<mstyle\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</mstyle>}% +>>> + + + +\<recall dvimath par\><<< +\sv:ignore +>>> + + + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +\<math xmlns\><<< +\csname a:math-xmlns\endcsname +>>> + +The amphersand chracter must be embeded within group parentheses, to +hide it in tables from halign. + + +\<configure mozilla tex4htDEPRECATED\><<< +\Configure{$$} + {\Configure{@math}{mode="display"}\IgnorePar\EndP\DviMath} + {\EndDviMath\ShowPar\par{\HCondtrue\noindent}}{} +\Configure{$} + {\Configure{@math}{mode="inline"}\DviMath} + {\EndDviMath}{} +>>> + +\<configure mozilla latexDEPRECATED\><<< +\Configure{[]} + {\Configure{@math}{mode="display"}\csname a:mathml[]\endcsname + \DviMath\Tg<\a:mathml mrow\Hnewline>$$} + {$$\Tg</\a:mathml mrow>\EndDviMath\csname b:mathml[]\endcsname} +>>> + +\<configure mozilla latexDEPRECATED\><<< +\Configure{()} + {\Configure{@math}{mode="inline"}\csname a:mathml()\endcsname + \DviMath\Tg<\a:mathml mrow\Hnewline>$} + {$\Tg</\a:mathml mrow>\EndDviMath\csname b:mathml()\endcsname} +\Css{math[mode="display"] + {margin-top:0.8em; margin-bottom:0.8em; display:block; text-align:center;}} +>>> + +\<configure mozilla latex\><<< +\Configure{Roman}{I}{V}{X}{L}{C}{D}{M} +\Configure{roman}{i}{v}{x}{l}{c}{d}{m} +>>> + +\<configure mozilla latex\><<< +\Configure{underline} + {\bgroup\ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<span class="underline">}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</span>}\fi\egroup} +>>> + +\<configure mozilla plain\><<< +\Configure{underline} + {\bgroup |<mathml underline|>} + {|<end mathml underline|>\egroup} +>>> + + + + + +\<mathml underline\><<< +\HCode{<\a:mathml munder +class="mml-underline"><\a:mathml mrow>}% +>>> + +\<end mathml underline\><<< +\HCode{</\a:mathml mrow><\a:mathml mo\Hnewline +accent="true">&\#x00AF;</\a:mathml mo></\a:mathml munder>}% +>>> + +The code 0332 for underbar is not recognized. Hence, we use the code +00AF of overbar (\verb+‾+ is not recognized anymore). + + + + +\<nomath underline\><<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + + +\<configure mozilla latex\><<< +\Configure{equation} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<table\Hnewline class="equation"><tr><td>}\IgnorePar + } + {\IgnorePar\EndP\HCode{</td><td class="eq-no">}} + {\end:TTT \ifmmode\else \ShowPar\par{\HCondtrue\noindent}\fi} +>>> + + + + +Mozilla has problem dealing with double and triple unicode prime characters. + +\<configure mozilla latex\><<< +|<plain,latex math|> +>>> + +\<configure mozilla plain\><<< +|<plain,latex math|> +>>> + +\<plain,latex math\><<< +\Configure{'} + {\let\:primes=\empty} + {\relax \csname SUB:prime\endcsname + \sp{\global\let\SUB:prime=\:UnDef \:primes}} + {\let\prime=\relax \xdef\:primes{\:primes\prime}} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Spaces after mtext} +%%%%%%%%%%%%%%%%%% + + +\<configure mozilla latex\><<< +|<mathml text util|> +>>> + +\<configure mathml amstex\><<< +|<mathml text util|> +>>> + +\<mathml text util\><<< +\def\AA:text#1{\mtexttrue + \HCode{<!--mstyle\Hnewline + class="#1"--><\a:mathml + mtext \a:@mtext>}|<start mtext space|>\PauseMathClass + |<math within mtext|>} +\def\BB:text{\mtextfalse\EndPauseMathClass|<end mtext space|>\HCode + {</\a:mathml mtext><!--/mstyle-->}} +>>> + +\<math within mtext\><<< +\Configure{$}{\EndPauseMathClass \mtextfalse + |<end mtext space|>\HCode{</\a:mathml + mtext><!--mstyle\Hnewline class="math"-->}} + {\HCode{<!--/mstyle--><\a:mathml mtext + \a:@mtext>}|<start mtext space|>\PauseMathClass + \mtexttrue}{} +>>> + +\<math within mtext\><<< +\Configure{()}% + {\EndPauseMathClass \mtextfalse + |<end mtext space|>\HCode{</\a:mathml mtext><\a:mathml + mstyle\Hnewline \mml:class="math">}$}% + {$\HCode{</\a:mathml mstyle><\a:mathml + mtext \a:@mtext>}|<start mtext space|>\PauseMathClass + \mtexttrue}% + {}% +>>> + + + +\<start mtext space\><<< +\ht:special{t4ht@,&\#x00A0;}% +>>> +\<end mtext space\><<< +\ht:special{t4ht@,}% +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Accents} +%%%%%%%%%%%%%%%%%% + +See test file at tex4ht-mathml + +\begin{verbatim} + > There is a problem in \dot{x}: it is never build well, but \dot{k} or + > \dot{V} are correctly arranged. + +It is a mozilla problem--it doesnt recognizes the unicode character +ẋ of \dot{x}. I modified the defintion to get a simulation of +the same effect, as is the case for \dot{k} and \dot{V}. + + > I detected that symbols \tilde and \widetilde are not being generated + > by TeX4ht + +I'm getting the same problem here. Tex4ht produces the combining +tilde U0303, but mozilla fails to recognize it. Changing it +to the small tilde character U02DC fixes the problem (now in the bug +fixes page of tex4ht). + +However, that is an improper behavior of mozilla. It can be seen with +the hat and widehat operations. There U0302 does the right job and +U02C6 doesn't. +\end{verbatim} + + + +\<old unicode accents\><<< +\expand:after{\Configure{accent}}\csname OT1\string\.\endcsname + \dot{{}{}} + {\a:accents{}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\"\endcsname + \ddot{{}{}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + +\<configure mozilla latex\><<< +\:CheckOption{new-accents} \if:Option \else + \def\:widetilde:over{\ifmmode \expandafter\mathop\fi + {\x:unicode{02DC}}} +% \def\:tilde:over{\mathop{\x:unicode{02DC}}} +\fi +>>> + +\<configure mozilla plain\><<< +\:CheckOption{new-accents} \if:Option \else + \def\:widetilde:over{\mathop{\ifmmode \expandafter\x:unicode\fi + {02DC}}} +% \def\:tilde:over{\mathop{\x:unicode{02DC}}} +\fi +>>> + + +\<old unicode accents\><<< +\:CheckOption{uniaccents} \if:Option \else + \Configure{accent}\dot\dot{|<dot above codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\.\expandafter + \endcsname + \csname OT1\string\.\endcsname{|<dot above codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\v\endcsname + \check{|<caron codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\=\endcsname + \bar{|<macron codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\`\endcsname + \grave{|<grave codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{grave}{#1}{#2}} + \expand:after{\Configure{accent}}\csname OT1\string\^\endcsname + \hat{|<circumflex codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\~\endcsname + \tilde{|<tilde codes|>{}{}} + {}{} + \Configure{accent}\ddot\ddot{|<diaeresis codes|>{}{34}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\"\expandafter + \endcsname + \csname OT1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {}{} +% \expand:after{\expand:after{\Configure{accent}}% +% \csname OT1\string\r\endcsname}% +% \csname OT1\string\r\endcsname{|<ring codes|>{}{}} +% {}{} + \expand:after{\Configure{accent}}\csname OT1\string\b\endcsname + \b{|<bar below codes|>{}{}} + {}{} + \expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\d\endcsname}% + \csname OT1\string\d\endcsname{|<dot below codes|>{}{}} + {}{} + \expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\c\endcsname}% + \csname OT1\string\c\endcsname{|<cedilla codes|>{}{}} + {}{} + \expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\H\endcsname}% + \csname OT1\string\H\endcsname{|<double acute code|>{}{}} + {}{} +\fi +>>> + + +\<dot above codes\><<< +C{010A}c{010B}E{0116}e{0117}G{0120}g{0121}% +I{0130}Z{017B}z{017C}A{0226}a{0227}O{022E}% +o{022F}B{1E02}b{1E03}D{1E0A}d{1E0B}F{1E1E}% +f{1E1F}H{1E22}h{1E23}M{1E40}m{1E41}N{1E44}% +n{1E45}P{1E56}p{1E57}R{1E58}r{1E59}S{1E60}% +s{1E61}T{1E6A}t{1E6B}W{1E86}w{1E87}X{1E8A}% +x{1E8B}Y{1E8E}y{1E8F}% +>>> + +\<caron codes\><<< +C{010C}c{010D}D{010E}d{010F}% +E{011A}e{011B}L{013D}l{013E}N{0147}n{0148}R{0158}r{0159}% +S{0160}s{0161}T{0164}t{0165}Z{017D}z{017E}A{01CD}a{01CE}I{01CF}% +i{01D0}O{01D1}o{01D2}U{01D3}u{01D4}G{01E6}g{01E7}K{01E8}k{01E9}% +j{01F0}\i{01D0}\j{01F0}% +>>> + +\<macron codes\><<< +A{0100}a{0101}E{0112}% +e{0113}I{012A}i{012B}O{014C}o{014D}U{016A}u{016B}% +G{1E20}g{1E21}% +>>> + +\<grave codes\><<< +A{00C0}E{00C8}I{00CC}N{01F8}O{00D2}U{00D9}W{1E80}% +Y{1EF2}a{00E0}e{00E8}o{00F2}u{00F9}% +w{1E81}y{1EF3}\i{00EC}% +>>> + +\<circumflex codes\><<< +A{00C2}E{00CA}I{00CE}O{00D4}U{00DB}a{00E2}e{00EA}% +i{00EE}o{00F4}u{00FB}C{0108}c{0109}G{011C}g{011D}% +H{0124}h{0125}J{0134}j{0135}S{015C}s{015D}W{0174}% +w{0175}Y{0176}y{0177}\i{00EE}\j{0135}% +>>> + +\<tilde codes\><<< +A{00C3}N{00D1}O{00D5}a{00E3}n{00F1}o{00F5}I{0128}% +i{0129}U{0168}u{0169}E{1EBC}e{1EBD}% +Y{1EF8}y{1EF9}\i{0129}% +>>> + +\<diaeresis codes\><<< +A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}% +a{00E4}e{00EB}i{00EF}o{00F6}u{00FC}y{00FF}% +Y{0178}\i{00EF}% +>>> + +\<bar below codes\><<< +D{1E0E}d{1E0F}K{1E34}k{1E35}L{1E3A}l{1E3B}N{1E48}n{1E49}% +R{1E5E}r{1E5F}T{1E6E}t{1E6F}Z{1E94}z{1E95}h{1E96}% +>>> + + +\<cedilla codes\><<< +K{0136}k{0137}L{013B}l{013C}N{0145}n{0146}% +R{0156}r{0157}S{015E}s{015F}T{0162}t{0163}% +E{0228}e{0229}H{1E28}h{1E29}% +C{00C7}c{00E7}G{0122}g{0123}% +>>> + + +\<dot below codes\><<< +A{1EA0}a{1Ea1}D{1E0C}d{1E0D}% +E{1EB8}e{1EB9}H{1E24}h{1E25}I{1ECA}i{1ECB}% +K{1E32}k{1E33}L{1E36}l{1E37}M{1E42}m{1E43}% +N{1E46}n{1E47}O{1ECC}o{1ECD}R{1E5A}r{1E5B}% +S{1E62}s{1E63}T{1E6C}t{1E6D}U{1EE4}u{1EE5}% +V{1E7E}v{1E7F}W{1E88}w{1E89}Y{1EF4}y{1EF5}% +>>> + + + + + + + + +\<old unicode accentsNO\><<< +\expand:after{\Configure{accent}}\csname OT1\string\`\endcsname + \grave{|<grave codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|<acute codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\^\endcsname + \hat{|<circumflex codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{hat}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\~\endcsname + \tilde{|<tilde codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\ddot\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\"\expandafter + \endcsname + \csname OT1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + +\<\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\r\endcsname}% + \csname OT1\string\r\endcsname{|<ring codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + +\<old unicode accentsNO\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\d\endcsname}% + \csname OT1\string\d\endcsname{|<dot below codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + + + + + + + + + +\<configure mozilla plain\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + +\<configure mozilla latex\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + + + +\<configure mozilla croatian\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + + +\<configure mozilla romanian\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + +\<configure mozilla slovak\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + +\<configure mozilla slovene\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + + + +%%%%%%%%%%%%%%%%%%%%% +\section{Thin Spaces} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure mozilla latex\><<< +\Configure{,}{\mskip\thinmuskip} +>>> + +\<configure mozilla plain\><<< +\Configure{,}{\mskip\thinmuskip} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%% +\section{Fonts} +%%%%%%%%%%%%%%%%%%%%% + +\<configure mozilla fontmath\><<< +|<math fonts utilities|> +|<set mathcal class|> +|<set mathcal symbols|> +|<set Re/Im class|> +|<set Re/Im symbols|> +|<set math sf class|> +|<set math sf symbols|> +>>> + + +\<configure mozilla euler\><<< +|<math fonts utilities|> +|<set fraktur class|> +|<set fraktur symbols|> +|<set math script class|> +|<set math script symbols|> +|<set math sf class|> +|<set math sf symbols|> +>>> + +\<configure mozilla eucal\><<< +|<set mathcal class|> +|<set mathcal symbols|> +>>> + +\<configure mozilla amsfonts\><<< +|<math fonts utilities|> +|<set mathbb class|> +|<set mathbb symbols|> +|<set fraktur class|> +|<set fraktur symbols at amsfonts|> +>>> + + +\<configure mozilla dsfont\><<< +|<math fonts utilities|> +|<configure mathds mathclass|> +>>> + + +\<math fonts utilities\><<< +\ifx \tmp:bx\:UnDef \csname newbox\endcsname \tmp:bx \fi +\def\find:set:mgroup#1#2#3{\bgroup + \def\use@mathgroup##1##2##3{\relax + \tmp:cnt=##2% + \xdef\:temp####1{\noexpand\Configure{MathClass}{#2}% + {}{}{}{\mathchar"0\the\tmp:cnt ####1}}% + }% + \setbox\tmp:bx=\hbox{$#1$}\setbox\tmp:bx=\hbox{}% + \set:mgroup#3{}{}% + \egroup +} +\def\set:mgroup#1#2{\if :#1#2:\else + \:temp{#1#2}\expandafter\set:mgroup \fi} +>>> + + + +\<set mathbb class\><<< +\ifx \mathbbMathClass\:UnDef + \NewMathClass\mathbbMathClass +\fi +\Configure{MathClass}{\mathbbMathClass}{*} + {<\a:mathml mi mathvariant="double-struck">}{</\a:mathml mi>}{} +>>> + + + +\<set mathbb symbols\><<< +\find:set:mgroup{\mathbb{A}}{\mathbbMathClass}% + {414244454647494A4B4C4D4F535455565758597C} |%A--Z (not CHNPQRZ),k|% +>>> + +The characters CHNPQRZ bet a \verb+<mi mathvariant="double-struck">+ decoration. + + + +Mathfrak might be conditionally loaded by latex, upon encountering +the mathfrak command. Hence, the indirect setting of math classes. + +\<set fraktur symbols at amsfonts\><<< +\expandafter\ifx \csname sv:@mathfrak:\endcsname\relax + \let\sv:@mathfrak:=\n:@mathfrak: +\fi +\def\n:@mathfrak:{\global\let\n:@mathfrak:=\sv:@mathfrak: + \global\let\sv:@mathfrak:=\:UnDef + |<set fraktur symbols|>% +} +\n:@mathfrak: +>>> + + +In version 1.4b \verb+<mi mathvariant="fraktur">𝔏</mi>+ +is needed. The representations + \verb+<mi>𝔏</mi>+ and + \verb+<mi mathvariant="fraktur">L</mi>+ +don't work. + +\<set fraktur class\><<< +\ifx \mathfrakMathClass\:UnDef + \NewMathClass\mathfrakMathClass +\fi +\Configure{MathClass}{\mathfrakMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="fraktur">}{</\a:mathml mi>}{} +>>> + +\<set fraktur symbols\><<< +\find:set:mgroup{\mathfrak{A}}{\mathfrakMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A% |%A--Z|% + 6162636465666768696A6B6C6D6E6F707172737475767778797A% |%a--z|% + 30313233343536373839}% |%0--9|% +>>> + + + +\<set fraktur class\><<< +\ifx \mathboldfrakMathClass\:UnDef + \NewMathClass\mathboldfrakMathClass +\fi +\Configure{MathClass}{\mathboldfrakMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="bold-fraktur">}{</\a:mathml mi>}{} +>>> + +\<set fraktur symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathfrak{A}}{\mathboldfrakMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A% |%A--Z|% + 6162636465666768696A6B6C6D6E6F707172737475767778797A% |%a--z|% + }% +\egroup +\fi +>>> + + + +\<set math script class\><<< +\ifx \mathscrMathClass\:UnDef + \NewMathClass\mathscrMathClass +\fi +\Configure{MathClass}{\mathscrMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="script">}{</\a:mathml mi>}{} +>>> + +\<set math script symbols\><<< +\find:set:mgroup{\mathscr{A}}{\mathscrMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +>>> + +\<set math script class\><<< +\ifx \mathboldscrMathClass\:UnDef + \NewMathClass\mathboldscrMathClass +\fi +\Configure{MathClass}{\mathboldscrMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="bold-script">}{</\a:mathml mi>}{} +>>> + +\<set math script symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathscr{A}}{\mathboldscrMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +\egroup +\fi +>>> + +\<set mathcal class\><<< +\ifx \mathcalMathClass\:UnDef + \NewMathClass\mathcalMathClass +\fi +\Configure{MathClass}{\mathcalMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="script">}{</\a:mathml mi>}{} +>>> + +\<set mathcal symbols\><<< +\find:set:mgroup{\mathcal{A}}{\mathcalMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +>>> + +\<set mathcal class\><<< +\ifx \mathboldcalMathClass\:UnDef + \NewMathClass\mathboldcalMathClass +\fi +\Configure{MathClass}{\mathboldcalMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="bold-script">}{</\a:mathml mi>}{} +>>> + +\<set mathcal symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathcal{A}}{\mathboldcalMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +\egroup +\fi +>>> + + + + +\<set math sf classBROKEN\><<< +\ifx \boldmathsfMathClass\:UnDef + \NewMathClass\boldmathsfMathClass +\fi +\Configure{MathClass}{\boldmathsfMathClass}{*} + {<\a:mathml mi mathvariant="bold-sans-serif">}{</\a:mathml mi>}{} +>>> + +\<set math sf symbolsBROKEN\><<< +\find:set:mgroup{{\boldmath\mathsf{A}}}{\boldmathsfMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A% |%A--Z|% + 6162636465666768696A6B6C6D6E6F707172737475767778797A% |%a--z|% + }% +>>> + +\<set math sf classBROKEN\><<< +\ifx \boldmathsfDigitMathClass\:UnDef + \NewMathClass\boldmathsfDigitMathClass +\fi +\Configure{MathClass}{\boldmathsfDigitMathClass}{*} + {<\a:mathml mn mathvariant="bold-sans-serif">}{</\a:mathml mn>}{} +>>> + +\<set math sf symbolsBROKEN\><<< +\find:set:mgroup{{\boldmath\mathsf{A}}}{\boldmathsfDigitMathClass}% + {30313233343536373839}% |%0--9|% +>>> + + +BROKEN: The above, for instance, fail for the prima math code: + +\begin{verbatim} +\documentclass{article} +\tracingmacros=2 +\begin{document} + +prima {\boldmath $\mathrm{{\csname HCode\endcsname{}}^{14}C}$} + +seconda {\boldmath $\mathsf{{\csname HCode\endcsname{}}^{15}C}$} + +terza {\boldmath $\mathrm{{\csname HCode\endcsname{}}^{16}C}$} + +quarta {\boldmath $\mathsf{{\csname HCode\endcsname{}}^{17}C}$} + + quinta {$\mathtt{{\csname HCode\endcsname{}}^{18}C}$} +\end{document} +\end{verbatim} + + + + + + +Double strike: + +\<configure mathds mathclass\><<< +\ifx \mathdsMathClass\:UnDef + \NewMathClass\mathdsMathClass +\fi +\Configure{MathClass}{\mathdsMathClass}{*} + {<\a:mathml mi mathvariant="double-struck">}{</\a:mathml mi>}{} +\find:set:mgroup{\mathds{A}}{\mathdsMathClass}% |%1,A--Z,A,h,k|% + {314142434445464748494A4B4C4D4E4F505152535455565758595A61686B} +>>> + + + + + + + +\<set Re/Im class\><<< +\ifx \mathReImMathClass\:UnDef + \NewMathClass\mathboldReImMathClass +\fi +\Configure{MathClass}{\mathboldReImMathClass}{*} + {<\a:mathml mi\Hnewline + fontweight="bold">}{</\a:mathml mi>}{} +>>> + +\<set Re/Im symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathcal{A}}{\mathboldReImMathClass}% + {3C3D} +\egroup +\fi +>>> + + + + +%%%%%%%%%%%%%%% +\chapter{pmathml.xsl} +%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%% +\section{Header Part} +%%%%%%%%%%%%%%%%%%%%% + +\<pmathml dtd\><<< +\Configure{DOCTYPE}{} +>>> + + + + +\<configure mozilla tex4ht\><<< +\:CheckOption{pmathml} \if:Option + |<pmathml configurations|> + \:CheckOption{pmathml-css} \if:Option \else + \Log:Note{If css rendering is preferred + for MathML, use option `pmathml-css' instead of `pmathml'.} + |<pmathml but not pmathml-css|> + \fi +\else + \:CheckOption{pmathml-css} \if:Option \else + \Log:Note{For multi-platform MathML + through stylesheet transforms, use the command line option + `pmathml'. If css rendering is preferred, use `pmathml-css'.} +\fi \fi +>>> + + +\<pmathml configurations\><<< +\:CheckOption{pmathml-css} \if:Option + \Configure{XML-STYLESHEET} + {\HCode{% + <?xml-stylesheet type="text/xsl" + href="pmathmlcss.xsl"?>\Hnewline + <!--http://www.w3.org/Math/XSL/pmathmlcss.xsl-->\Hnewline + }} +\else + \Configure{XML-STYLESHEET} + {\HCode{% + <?xml-stylesheet type="text/xsl" + href="pmathml.xsl"?>\Hnewline + <!--http://www.w3.org/Math/XSL/pmathml.xsl-->\Hnewline + }} +\fi +>>> + +\<pmathml configurations\><<< +\:CheckOption{pmathml-css} \if:Option + \Configure{@HTML} + {xmlns:math="http://www.w3.org/1998/Math/MathML"\Hnewline + xmlns:pref="http://www.w3.org/2002/Math/preference"\Hnewline + pref:renderer="css" + } +\fi +>>> + + +\<configure mozilla Preamble\><<< +\:CheckOption{pmathml-css} \if:Option + \edef\Preamble{\Preamble,pmathml} +\fi +>>> + + +\Link[http://www.w3.org/Math/XSL/Overview.html]{}{}% +http://www.w3.org/Math/XSL/Overview.html\EndLink{} and +\Link[http://www.w3.org/Math/XSL/Overview-tech.html]{}{}% +http://www.w3.org/Math/XSL/Overview-tech.html\EndLink{} explains how +to make .xml pages (in fact, Tex4ht option MOZILLA) to Explorer 6 even +WITHOUT Mathplayer: it requires two .xsl style sheets (pmathml.xsl and +pmathmlcss.xsl, they can be retrieved there) and replacing +\verb+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//|<dtd lang|>" "mathml.dtd">+ +with +\verb+<?xml-stylesheet type="text/xsl" href="pmathml.xsl"?>+. +Moreover, if one has Mathplayer installed, one must keep it away, for +check purposes, by replacing \verb+<html...>+ with + +\begin{verbatim} +<html + xmlns="http://www.w3.org/1999/xhtml" + xmlns:math="http://www.w3.org/1998/Math/MathML" + xmlns:pref="http://www.w3.org/2002/Math/preference" + pref:renderer="css" + > +\end{verbatim} + + +%%%%%%%%%%%%%%%%% +\section{Tables} +%%%%%%%%%%%%%%%%% + + +The attribute \verb+nowrap="nowrap"+ in table cells prevents +Mathplayer from displaying them its own way, and one gets minimal +cells, overlapped: it ought to be avoided altogether. + +It reappears in the option pmathml - as soon as Mathplayer is called +upon to deal with a table, the cells overlap from left to right, and +the last row is reduced almost to nothing. Pmathml-css, NOT calling on +Mathplayer, gives no trouble that way. + +\<pmathml but not pmathml-css\><<< +\Configure{halignTD} {}{} + {<}{\ifmathml \HCode{ columnalign="left"}\else + \HCode{ style="text-align:left" }\fi} + {-}{\ifmathml \HCode{ columnalign="center"}\else + \HCode{ style="text-align:center" }\fi} + {>}{\ifmathml \HCode{ columnalign="right"}\else + \HCode{ style="text-align:right" }\fi} + {^}{\ifmathml \HCode{ rowalign="top"}\else + \HCode{ style="vertical-align:top" }\fi} + {=}{\ifmathml \HCode{ rowalign="baseline"}\else + \HCode{ style="vertical-align:baseline" }\fi} + {||}{\ifmathml \HCode{ rowalign="center"}\else + \HCode{ style="vertical-align:middle" }\fi} + {_}{\ifmathml \HCode{ rowalign="bottom"}\else + \HCode{ style="vertical-align:bottom" }\fi} + {p}{\ifmathml \HCode{ columnalign="left"}\else + \HCode{ style="text-align:left"}\fi} + {} +>>> + + + + + + +\endinput |