Dictionary
The following elements in the x: namespace form an
implementation of an "Operator Dictionary" for this MathML
Implementation. In the case of stretch operators, the element
specifies the symbol parts via the latin-1 equivalent character based
on the encoding in the symbol font. It is a clear "failure to comply
to the spec" that using latin 1 characters (or numeric character
references) in the latin 1 range access glyphs in teh symbol font via
font position, however most of these character parts are not in
Unicode (until 3.2), so there is no standard way to access these characters.
{
{
(
)
[
]
[[
]]
|
||
−
−~
_v_
Remove these for now, as XML parser in IE6 is broken and doesn't
accept plane 1 characters.
Grab all of the above into a variable.
HTML elements
XHTML elements get passed straight through, sans namespace prefix.
Template for the head element copies the original content, aand in
addition adds a script element and CSS style element that implement
the core of the MathML renderer.
The malign function first finds the left most item in the aligngroup, and
then modifies the left margin of each item to make them
align. (Currently only left alignment is supported.)
The mrowStretch function implements stretchy brackets. It is called
repeatedly, once for each mo child,after a span corresponding to an
mrow. The arguments are the id of teh span and the characters to use
for the parts of the stretch operator.
constructed fence. The
Inline CSS style block handles all font and size specification for the
various MathML operators.
Unimplemented MathML elements get copied literally, in red, mainly as
a debugging aid.
<>
</>
mi: set default font based on string length, otherwise behaviour based
on entries in the operator dictionary if one exists, or content is
copied through to the output unchanged.
mi1
Handling of mathvariant attribute.
The choice of font families here (currently) avoids math-specific
fonts but does use several fionts coming with windows 9.x and/or
office 2000.
font-weight: bold; font-style: upright
font-style: upright; font-weight: bold; font-style: italic;
font-style: italic;
font-family: monospace;
font-family: sans-serif;
font-family: sans-serif; font-weight: bold;
font-family: old english text mt
doublestruck
font-family: brush script mt italic
mo: Generate a unique ID so that a script at the end of any
surrounding mrow may replace the conent by a suitably stretched
operator if need be.
mn: a simple span
munder: currently only supports underline, with a bottom border
border-width: 0pt 0pt .1em 0pt; border-style: solid;"
mover: currently only supports overline, with a top border
border-width: .1em 0pt 0pt 0pt; border-style: solid;"
munderover:
mtext: a simple span
mstyle: not many attributes currently supported
color: ;
background-color: ;
mglyph: Uses disable output escaping to construct a numeric
character reference. Uses IE's non conforming behaviour of using this
number to access the font encoding rather than unicode.
;
ms: a simple span with left and right character added to the content.
"
"
(
)
,
\
\
\
font-size: 75% ;
font-size: 100% ;
|
|
|
left