About gNumerator
|
General Info
|
Plans and Progress
|
About MathML
|
SourceForge Project Page for gNumerator
|
Updates / News / Blog
|
Blog, Updated January 26, 2005
|
Downloads, release 0.34, Feburary 13, 2005
|
Release Notes for version 0.34
|
MathML Control, MathML DOM, Test App, and Documentation
|
Source Code
|
Contact
|
endre-somogyi@comcast.net
|
gNumerator Mailing List
|
Need an experienced computer scientist?
|
My Resume / CV
|
Anonymous Feedback
|
Anonymous Feature Requests
Anonymous Bug Reports
|
Articles
|
Extending the DOM
Fast parsing of XML entities
Calling C methods from C#
The visitor pattern
|
Documentation
|
Components
|
MathML DOM
MathML Rendering Control
|
Screenshots
|
First Rendering of MathML
|
A slightly more complex example
|
Same example, with almost correct use of stretchy characters
|
Stretchy operators are finally working correctly
|
SubScripts and SuperScripts are now working, also a comparison with Mozilla
|
Radicals are now working, and a comparison with Microsoft Word
|
Radical Indices, and sub and super scirpt elements
|
Under and Over Elements, and Horisontal Stretchy Operators
|
Complex Tables
|
Browse Source Repository
|
MathML Document Object Model
|
MathML Rendering Control
|
|
|
Square Root elements are now working! This includes <msqrt> , and
<mroot> elements. I used the CMEX10 (computer modern math extension) font
for the square root glyphs. The nice thing is that this font provides many glyphs for this
character, and each glyph is angled slightly differently, so they look good with various
sized radicands. Also, this font provides a true stretchy glyph for radicals that must
stretch to very large sizes. Notice how using differnt glyphs produces much better results
than Microsoft Word (screenshot at bottom) which only used the Windows font mapper to
stretch a single square root glyph to different sizes.
A note about fonts: Most glyphs are rendered from the standard "times new roman" and "symbol"
fonts, as they come installed in all Windows systems. I currently use the TeX CMEX10 font for
radical glyphs, and probably will use it for more glyphs in the future, as this font is the
only freely availible font that can produce these glyphs properly. The Mathematica
fonts also produce these glyphs, but
they are not freely available, or at least I am not legally allowed to redistibute them.
All glyphs mapping (in the rendering widget) is handled via a set of config files. Each config file (standard xml) is
for a single font, so currently, I have "font-configuration-times.xml", "font-configuration-symbol.xml",
and "font-configuration-cmex.xml". The rendering widget enumerates the contents of the config
directoy at startup time, and all font config files are loaded. I probably will create a
config file for the Mathematica fonts, and if a user wants to, they can download this font,
and the rendering widget will automaticlly load it. Note, the Mathematica fonts do produce
better looking glyhps than the TeX computer modern font.
source mathml for this screenshot
(above) A screenshot of the MathML rendering control showing square roots, and stretchy integral
operators. Notice the
different sized glyphs for the square root symbols, as they encompass different sized radicands. Also, notice
how the integral operators stretch properly to the height of the row that they are in. I use the standard
symbol.ttf font for the integrals and parentheses, as it provides good multi-part glyphs for these, and I
use the CMEX10.ttf font for the radicals. The other big difference in this rendering, and the
Word equation editor (below), and the Mozilla rendering of MathML is
that the gNumerator MathML rendering widget produces much better, tighter fitting renderings. This is
because it uses the Padovani area fitting algorithm to
do the fitting and layout.
(above) A screenshot from Microsoft Word's equation editor. This is not the same MathML as the
previous example, as Word's equation editor can not do mathml, it has some proprietary data
format. Notice how poorly the radical glyphs 'stretch'. This is because they are using a single
glyph for the radical, and using the Windows font mapper to 'stretch' it. I originally played
around with this technique, but abandoned it very soon, as I produced
extremly poor looking glyphs.
|