<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Murray Sargent: Math in Office : RichEdit</title><link>http://blogs.msdn.com/murrays/archive/tags/RichEdit/default.aspx</link><description>Tags: RichEdit</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>RichEdit versions</title><link>http://blogs.msdn.com/murrays/archive/2006/10/14/richedit-versions.aspx</link><pubDate>Sat, 14 Oct 2006 03:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:824003</guid><dc:creator>MurrayS</dc:creator><slash:comments>31</slash:comments><comments>http://blogs.msdn.com/murrays/comments/824003.aspx</comments><wfw:commentRss>http://blogs.msdn.com/murrays/commentrss.aspx?PostID=824003</wfw:commentRss><description>&lt;P&gt;Recurring questions are what RichEdit's are available, where they are installed and what features they have. A relatively new question is which RichEdit's support the new Office math editing and display. So this post attempts to answer these questions. To answer the last question first, only RichEdit 6.0 has the Office math facility, although RichEdit 5.0 has a preliminary math capability that was good enough to get people intrigued with doing something well. &lt;/P&gt;
&lt;P&gt;Before answering the other question, here's a quick summary of what RichEdit is in case you haven't heard of it: RichEdit 6.0 is a facility for getting plain/rich-text, single/multiline Unicode/ANSI edit controls and combo/list boxes in single world-wide binary that runs on all Windows operating systems. It has multilevel undo, message &amp;amp; com interfaces, considerable Word compatibility, richly formatted text, outline view, zoom, support for the latest IMEs, speech and handwriting input, rich complex script support (e.g., BiDi, Indic, and Thai), pagination, multilevel tables, autocorrect, hyphenation, kerning, ClearType support, autoURL detection, East Asian features such as vertical text, text wrap around embedded objects, font binding, and support for Unicode surrogate pairs and most Unicode 4.0 scripts. To some degree all RichEdit versions since 3.0 have had these features; although the support for them has improved greatly from version to version (Indic support was first available in 4.0). The rich-ink support was added in 5.0 (4.1 is used in the Ink Edit control that ships with the Tablet PC). &lt;/P&gt;
&lt;P&gt;This post continues with a summary table, followed by a list of new features for each version. For the most part, each version has all the features of versions with lower version numbers. One exception is that the Japanese version of RichEdit 1.0 had vertical text display, which wasn't supported by later versions until RichEdit 4.0. Another is that RichEdit 1.0 was also pen-enabled and understood gestures for use with Pen Windows, while only the RichEdit 4.1&amp;nbsp;ink control&amp;nbsp;and later versions have rich ink support.&lt;/P&gt;
&lt;DIV style="TEXT-ALIGN: center"&gt;
&lt;TABLE class="" style="BORDER-COLLAPSE: collapse" border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="WIDTH: 91px"&gt;
&lt;COL style="WIDTH: 235px"&gt;
&lt;COL style="WIDTH: 85px"&gt;&lt;/COLGROUP&gt;
&lt;TBODY vAlign=top&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: black 0.5pt solid; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;&lt;STRONG&gt;Version&lt;/STRONG&gt; &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: black 0.5pt solid; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;&lt;STRONG&gt;Ships ('ed) with&lt;/STRONG&gt; &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: black 0.5pt solid; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;&lt;STRONG&gt;dll name&lt;/STRONG&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;1.0 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Windows 95/98/ME/NT &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched32.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;1.0 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Exchange 4.0 for Windows 3.1/WFW&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;richedit.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;2.0 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Office 97, Windows NT/98 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;2.1 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;BiDi Office 97 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;2.5 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Windows CE, Pocket Word &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;3.0 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Office 2000, Windows ME/2000/XP &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;1.0 emulator &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Office 2000, Windows 2000/XP/Vista &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched32.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;3.1 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Windows Server 2003, Vista &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;3.5 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Windows CE, eBooks &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;ebriched.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;4.0 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Office XP &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;4.1 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Windows XP SP1, Tablet, Vista &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;msftedit.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;5.0 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Office 2003 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;5.1 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Windows CE, Pocket Word &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: black 0.5pt solid; BORDER-BOTTOM: black 0.5pt solid"&gt;6.0 &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;Office 2007, Encarta Math Calculator &lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 0.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: black 0.5pt solid"&gt;riched20.dll &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;If you want to use the Office 2007 RichEdit 6.0, you'll find it in the private subdirectory \Program Files\Common Files\Microsoft Shared\OFFICE12. Similarly the Encarta Math Calculator is stored in a private Encarta subdirectory. The OS versions are located in \Windows\system32. Maybe someday Windows will have the good fortune to have a more recent RichEdit than 4.1&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;J&lt;/SPAN&gt; But then we'd have to document all the new features &lt;SPAN style="FONT-FAMILY: Wingdings"&gt;L&lt;/SPAN&gt; (Wouldn't be that hard…) &lt;/P&gt;
&lt;H2&gt;RichEdit 1.0 Features &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Basic nonUnicode editing, cut/copy/paste, file streaming &lt;/LI&gt;
&lt;LI&gt;Basic set of character/paragraph formatting properties &lt;/LI&gt;
&lt;LI&gt;Message-based interface plus OLE interfaces: IRichEditOle and IRichEditOleCallback &lt;/LI&gt;
&lt;LI&gt;Vertical text and IME support (FE builds only). &lt;/LI&gt;
&lt;LI&gt;WYSIWYG editing using printer metrics &lt;/LI&gt;
&lt;LI&gt;Different builds for different scripts &lt;/LI&gt;
&lt;LI&gt;Common-control notifications plus some new ones &lt;/LI&gt;
&lt;LI&gt;Plain text and RTF files &lt;/LI&gt;
&lt;LI&gt;Pen-enabled and understood gestures for use with Pen Windows&lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;RichEdit 2.0 Additions &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Unicode internally + able to read/write using codepages &lt;/LI&gt;
&lt;LI&gt;International line breaking algorithm &lt;/LI&gt;
&lt;LI&gt;Find Up/Down. Magellan mouse support. &lt;/LI&gt;
&lt;LI&gt;Multilevel undo &lt;/LI&gt;
&lt;LI&gt;BiDi (RE 2.1) and FE support including level 2/3 IME, dual font, keyboard linking, smart font apply &lt;/LI&gt;
&lt;LI&gt;AutoURL recognition. Word UI &lt;/LI&gt;
&lt;LI&gt;Plain/rich, single-line/multiline, scalable architecture &lt;/LI&gt;
&lt;LI&gt;Password and accelerator control options &lt;/LI&gt;
&lt;LI&gt;Windowless interfaces (ITextHost/ITextServices) &lt;/LI&gt;
&lt;LI&gt;Better display (mixed fonts use off-screen bitmap), system selection colors, transparency support &lt;/LI&gt;
&lt;LI&gt;TOM (Text Object Model) dual interfaces &lt;/LI&gt;
&lt;LI&gt;Character formatting additions include background color, locale ID, underline type, superscript/subscript. &lt;/LI&gt;
&lt;LI&gt;Paragraph formatting additions include space before/after, line spacing. &lt;/LI&gt;
&lt;LI&gt;Roundtrip all Word Format Font/Para dialog properties &lt;/LI&gt;
&lt;LI&gt;Extensive code stabilization, testing, performance increase &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;RichEdit 2.5 Additions &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;First Windows CE version. Used by Pocket Word &lt;/LI&gt;
&lt;LI&gt;Outline view, normal and heading styles &lt;/LI&gt;
&lt;LI&gt;RTF additions &lt;/LI&gt;
&lt;LI&gt;Minor UI improvements &lt;/LI&gt;
&lt;LI&gt;Western languages only &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;RichEdit 3.0 Additions &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Used for emulating RichEdit 1.0's &lt;/LI&gt;
&lt;LI&gt;Zoom &lt;/LI&gt;
&lt;LI&gt;Italics caret/cursor. URL hand cursor &lt;/LI&gt;
&lt;LI&gt;Paragraph numbering (alpha, numeric, Roman) &lt;/LI&gt;
&lt;LI&gt;Simple tables (no wrap in cells) &lt;/LI&gt;
&lt;LI&gt;More underline types, underline coloring, hidden text &lt;/LI&gt;
&lt;LI&gt;More of Word's default hot keys, e.g., accent dead keys, outline view, numbering &lt;/LI&gt;
&lt;LI&gt;Smart quotes (English only), soft hyphens &lt;/LI&gt;
&lt;LI&gt;Use Office's LineServices component to break/display lines. Used for complex scripts and options like center, right, decimal tabs, fully justified text &lt;/LI&gt;
&lt;LI&gt;Complex script support for BiDi, Indic, and Thai with help from LineServices and Uniscribe components &lt;/LI&gt;
&lt;LI&gt;Font Binding based on charset, which acts as writing system ID &lt;/LI&gt;
&lt;LI&gt;Codepage-specific stream in/out &lt;/LI&gt;
&lt;LI&gt;UTF-8 RTF. Used preferentially for cut/copy/paste. Can be streamed in/out. &lt;/LI&gt;
&lt;LI&gt;Office 9 IME support (MSIME98) including Reconversion, Document feed, Mouse Operation, and Caret position features &lt;/LI&gt;
&lt;LI&gt;AIMM component IME support for nonFE systems. &lt;/LI&gt;
&lt;LI&gt;Increased freeze and undo/redo control &lt;/LI&gt;
&lt;LI&gt;Font increment/decrement function &lt;/LI&gt;
&lt;LI&gt;System edit control, list box, and combo box controls &lt;/LI&gt;
&lt;LI&gt;Alt+x input method &lt;/LI&gt;
&lt;LI&gt;Used to emulate RichEdit 1.0's &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;RichEdit 3.5 Additions &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Second Windows CE release. Used by eBooks &lt;/LI&gt;
&lt;LI&gt;Screen-size pagination &lt;/LI&gt;
&lt;LI&gt;Text wrap around objects flushed left/right &lt;/LI&gt;
&lt;LI&gt;Custom ClearType support &lt;/LI&gt;
&lt;LI&gt;Enhanced East Asian typography &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;RichEdit 4.0 Additions &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Multilevel tables &lt;/LI&gt;
&lt;LI&gt;Autocorrect &lt;/LI&gt;
&lt;LI&gt;Improved autoURL detection &lt;/LI&gt;
&lt;LI&gt;Friendly name hyperlinks &lt;/LI&gt;
&lt;LI&gt;Font binding according to writing system (generalization of charset) &lt;/LI&gt;
&lt;LI&gt;Indic support &lt;/LI&gt;
&lt;LI&gt;Vertical text &lt;/LI&gt;
&lt;LI&gt;Support for the latest IMEs &lt;/LI&gt;
&lt;LI&gt;Speech and handwriting input (Windows Text Services Framework) &lt;/LI&gt;
&lt;LI&gt;More standard hot keys &lt;/LI&gt;
&lt;LI&gt;Many security fixes (3.0 has also) &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;/SPAN&gt;RichEdit 5.0 Additions &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Multiselection, smart drag&amp;amp;drop &lt;/LI&gt;
&lt;LI&gt;Better nested tables, horizontally merged cells &lt;/LI&gt;
&lt;LI&gt;Better font binding/international support &lt;/LI&gt;
&lt;LI&gt;More underline styles, small cap &amp;amp; shadow emulation &lt;/LI&gt;
&lt;LI&gt;Binary file format: "parsed XML" &lt;/LI&gt;
&lt;LI&gt;Partial XHTML reader/writer &lt;/LI&gt;
&lt;LI&gt;Subpixel ClearType support &lt;/LI&gt;
&lt;LI&gt;Better RTF handling, e.g., multilevel lists &lt;/LI&gt;
&lt;LI&gt;URL tooltips &lt;/LI&gt;
&lt;LI&gt;Many bug/minor-request fixes &lt;/LI&gt;
&lt;LI&gt;Improved ink support, especially for OneNote &lt;/LI&gt;
&lt;LI&gt;Advanced East Asian typography &lt;/LI&gt;
&lt;LI&gt;Initial PTS integration, including object tight wrap &lt;/LI&gt;
&lt;LI&gt;Infrastructure for math, ruby, warichu, tatenakayoko &lt;/LI&gt;
&lt;LI&gt;Text trackers and blobs &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;RichEdit 5.1 &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Third Windows CE release. Used by Pocket Word &lt;/LI&gt;
&lt;LI&gt;Various UI and RTF enhancements &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;RichEdit 6.0 Additions &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;High-quality editing &amp;amp; display of math &lt;/LI&gt;
&lt;LI&gt;Formula autobuildup &lt;/LI&gt;
&lt;LI&gt;Create and support math linear format &lt;/LI&gt;
&lt;LI&gt;More list numbering options &lt;/LI&gt;
&lt;LI&gt;Simple "visi" mode &lt;/LI&gt;
&lt;LI&gt;URL improvements&lt;/LI&gt;
&lt;LI&gt;Multistory: high-perf cut/copy/paste, rich scratchpads, WP infrastructure&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Text Object Model 2 &lt;/LI&gt;
&lt;LI&gt;Display enhancements, e.g., word underline, horizontal scaling &lt;/LI&gt;
&lt;LI&gt;Table UI adds, e.g., column resizing &lt;/LI&gt;
&lt;LI&gt;OfficeArt/PowerPoint enhancements &lt;/LI&gt;
&lt;LI&gt;Overlapping lines, drop caps&amp;nbsp;&amp;amp; other ePeriodicals improvements &lt;/LI&gt;
&lt;LI&gt;Device independent layout &lt;/LI&gt;
&lt;LI&gt;Virtualized OS: "hDC" is totally opaque &lt;/LI&gt;
&lt;LI&gt;Multiple columns&lt;/LI&gt;
&lt;LI&gt;Myriad security fixes &lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=824003" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/murrays/archive/tags/Math+in+Office/default.aspx">Math in Office</category><category domain="http://blogs.msdn.com/murrays/archive/tags/RichEdit/default.aspx">RichEdit</category></item><item><title>MathML and Ecma Math (OMML) </title><link>http://blogs.msdn.com/murrays/archive/2006/10/07/MathML-and-Ecma-Math-_2800_OMML_2900_-.aspx</link><pubDate>Sat, 07 Oct 2006 02:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:798829</guid><dc:creator>MurrayS</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/murrays/comments/798829.aspx</comments><wfw:commentRss>http://blogs.msdn.com/murrays/commentrss.aspx?PostID=798829</wfw:commentRss><description>&lt;P&gt;Before comparing these two math XMLs, I'm excited to point you at Jennifer Michelstein's nifty post on &lt;A href="http://blogs.msdn.com/microsoft_office_word/archive/2006/10/04/Equations-in-Word-2007.aspx" mce_href="http://blogs.msdn.com/microsoft_office_word/archive/2006/10/04/Equations-in-Word-2007.aspx"&gt;Equations in Word 2007&lt;/A&gt;. It comes complete with instructive videos demonstrating how to enter mathematical expressions using the Equation Ribbon as well as using the &lt;A href="http://www.unicode.org/notes/tn28/UTN28-PlainTextMath-v2.pdf" mce_href="http://www.unicode.org/notes/tn28/UTN28-PlainTextMath-v2.pdf"&gt;linear format&lt;/A&gt; discussed in my earlier postings. Jennifer plans to add other posts on this subject to the &lt;A href="http://blogs.msdn.com/microsoft_office_word" mce_href="http://blogs.msdn.com/microsoft_office_word"&gt;Microsoft Office Word&lt;/A&gt; blog. It's worth pointing out that Outlook 2007 also has Word's math facility since Outlook 2007 uses Word 2007 for editing all email body text.&lt;/P&gt;
&lt;P&gt;I'm currently busily connecting RichEdit's math facility to external clients, using three file formats: RTF, MathML, OMML (Office MathML). These are all high-level formats compared to the linear format we use for equation input. Naturally RichEdit has to handle RTF math, since RTF has been RichEdit's main file format since RichEdit 1.0 shipped back in 1993 for the Windows 3.1 mail client. RTF math is essentially just OMML with RTF braces {} instead of XML tags. With it, it's easy to copy technical text to and from Word 2007. RichEdit is used by the Microsoft Math graphing calculator, which ships with the Encarta Student Edition, but the calculator communicates with RichEdit using RichEdit's text object model (TOM) instead of a file format. RichEdit also handles text in OneNote, but the math facility isn't turned on there yet. &lt;/P&gt;
&lt;P&gt;Meanwhile it would be great to connect RichEdit with the incredible math engines out there like OpenMaple, Mathematica, etc., and clearly MathML is the lingua franca for that. So I've been developing MathML and OMML writers for RichEdit and Misha (Mikhail Baranovsky) is developing the readers (they're harder!) In the process, we've been comparing these two math XMLs. &lt;/P&gt;
&lt;P&gt;Naturally there's been a lot of &lt;A href="http://www.robweir.com/blog/2006/08/math-you-cant-use.html" mce_href="http://www.robweir.com/blog/2006/08/math-you-cant-use.html"&gt;discussion&lt;/A&gt; as to why we even have &lt;A href="http://www.ecma-international.org/news/TC45_current_work/Office%20Open%20XML%20Part%204%20-%20Markup%20Language%20Reference.docx" mce_href="http://www.ecma-international.org/news/TC45_current_work/Office%20Open%20XML%20Part%204%20-%20Markup%20Language%20Reference.docx"&gt;OMML&lt;/A&gt;, since MathML is really good. Brian Jones has addressed that issue in some detail in his &lt;A href="http://blogs.msdn.com/brian_jones/" mce_href="http://blogs.msdn.com/brian%5Fjones/"&gt;Open XML Formats&lt;/A&gt; blog. The main problem is that Word needs to allow users to embed arbitrary span-level material (basically anything you can put into a Word paragraph) in math zones and MathML is geared toward allowing only math in math zones. A subsidiary consideration is the desire to have an XML that corresponds closely to the internal format, aiding performance and offering readily achievable robustness. Since both MathML and OMML are XMLs, XSLTs can (and have) been created to convert one into the other. So it seems you can have your cake and eat it too. Thank you XML! &lt;/P&gt;
&lt;P&gt;The spirits of MathML and OMML are somewhat different. By MathML, I'm referring to the &lt;A href="http://www.w3.org/TR/2003/REC-MathML2-20031021/chapter3.html" mce_href="http://www.w3.org/TR/2003/REC-MathML2-20031021/chapter3.html"&gt;MathML presentation tag set&lt;/A&gt;, rather than the &lt;A href="http://www.w3.org/TR/2003/REC-MathML2-20031021/chapter4.html" mce_href="http://www.w3.org/TR/2003/REC-MathML2-20031021/chapter4.html"&gt;content tag set&lt;/A&gt;, since our main emphasis is on presentation. A quick summary of the difference in spirits is &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;MathML built-up objects may be described by an infix notation, while OMML's are described by a prefix notation &lt;/LI&gt;
&lt;LI&gt;MathML built-up object arguments are defined positionally, while OMML's are tagged explicitly &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;With MathML when you find an &amp;lt;mrow&amp;gt;, you look at the next tag(s) to see what's inside. If you find an &amp;lt;mo&amp;gt; entry, you have an operator, which you look up in your operator table to figure what kind of a possibly built-up object is involved. It could be an open fence (parentheses, brackets, braces, etc.), an n-ary operator, a function-apply (for trigonometric and other math functions), or one of many operators that don't get built up. For fences MathML also has the &amp;lt;mfenced&amp;gt; tag, which is essentially the same as OMML's delimiter &amp;lt;d&amp;gt; tag. &lt;/P&gt;
&lt;P&gt;Each way of representing fences has its advantages, the infix approach allowing embellished fences (such as underlined fences) and the &amp;lt;mfenced&amp;gt; approach allowing a sequence of separated arguments. OMML's &amp;lt;d&amp;gt; can't represent embellished fences, but fortunately for OMML, they aren't common. At least, we couldn't find any in my shelves of physics and math books, but you never know for sure about these mathematicians &lt;SPAN style="FONT-FAMILY: Wingdings"&gt;J&lt;/SPAN&gt;. Built-up expressions like subscripts and superscripts are represented by prefix notations in both MathML and OMML. &lt;/P&gt;
&lt;P&gt;The following table&amp;nbsp;summarizes the built-up objects in the Office math model along with the OMML and target MathML tags &lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE style="BORDER-COLLAPSE: collapse" border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="WIDTH: 226px"&gt;
&lt;COL style="WIDTH: 195px"&gt;
&lt;COL style="WIDTH: 217px"&gt;&lt;/COLGROUP&gt;
&lt;TBODY vAlign=top&gt;
&lt;TR&gt;
&lt;TD style="BORDER-BOTTOM: #8064a2 1pt solid; BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP: #8064a2 1pt solid; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;Built-up Office Math Object&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #8064a2 1pt solid; BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP: #8064a2 1pt solid; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;OMML tag&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #8064a2 1pt solid; BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP: #8064a2 1pt solid; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;MathMl&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Accent&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;acc&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mover/munder&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Bar&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;bar&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mover/munder&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Box&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;box&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;menclose (approx)&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;BoxedFormula&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;borderBox&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;menclose&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Delimiters&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;d&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mfenced&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;EquationArray&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;eqArr&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mtable (with alignment groups)&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Fraction&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;f&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mfrac&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;FunctionApply&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;func&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&amp;amp;FunctionApply; (binary operator)&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;LeftSubSup&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;sPre&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mmultiscripts (special case of)&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;LowerLimit&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;limLow&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;munder&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Matrix&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;m&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mtable&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Nary&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;nary&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mrow followed by n-ary mo&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Phantom&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;phant&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mphantom and/or mpadded&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Radical&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;rad&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;msqrt/mroot&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;GroupChar&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;groupChr&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mover/munder&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Subscript&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;sSub&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;msub&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;SubSup&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;sSubSup&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;msubsup&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;Superscript&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;sSup&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;msup&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="BACKGROUND: #dfd8e8"&gt;
&lt;TD style="BORDER-BOTTOM: #8064a2 1pt solid; BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;&lt;STRONG&gt;UpperLimit&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #8064a2 1pt solid; BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;limUpp&lt;/SPAN&gt; &lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: #8064a2 1pt solid; BORDER-LEFT: medium none; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-RIGHT: medium none"&gt;&lt;SPAN style="COLOR: #5f497a"&gt;mover&lt;/SPAN&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;OMML tags are always written with a math namespace prefix like "m:" and I recommend this convention for MathML as well. The reason is that these XMLs are useful in many contexts, not just in HTML(5) and using namespace prefixes allows the XML parser to delegate to the appropriate tag-set owner. &lt;/P&gt;
&lt;P&gt;Comparing the two ways of representing the built-up fraction, we see how OMML has explicit argument tags, whereas MathML determines arguments by position. The built up version of the fraction a/b in OMML is represented by (aside from possible properties) &lt;/P&gt;
&lt;P&gt;&amp;lt;m:oMath xmlns:m="&lt;A href="http://schemas.openxmlformats.org/officeDocument/2006/math"&gt;http://schemas.openxmlformats.org/officeDocument/2006/math&lt;/A&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;m:f&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;m:num&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;m:r&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;m:t&amp;gt;a&amp;lt;/m:t&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/m:r&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/m:num&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;m:den&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;m:r&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;m:t&amp;gt;b&amp;lt;/m:t&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/m:r&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/m:den&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/m:f&amp;gt;&lt;BR&gt;&amp;lt;/m:oMath&amp;gt;&lt;/P&gt;
&lt;P&gt;where we see how the numerator and denominator are tagged explicitly. In MathML, these arguments are given by the next entity and the one after that, respectively: &lt;/P&gt;
&lt;P&gt;&amp;lt;m:mfrac&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;m:mi&amp;gt;a&amp;lt;/m:mi&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;m:mi&amp;gt;b&amp;lt;/m:mi&amp;gt; &lt;BR&gt;&amp;lt;/m:mfrac&amp;gt; &lt;/P&gt;
&lt;P&gt;This comparison reveals that OMML can be more verbose than MathML. A less verbose comparison results for the fraction (a+b)/c, since in OMML it's &lt;/P&gt;
&lt;P&gt;&amp;lt;m:f&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;m:num&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;m:r&amp;gt;&amp;lt;m:t&amp;gt;a+b&amp;lt;/m:t&amp;gt;&amp;lt;/m:r&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/m:num&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;m:den&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;m:r&amp;gt;&amp;lt;m:t&amp;gt;c&amp;lt;/m:t&amp;gt;&amp;lt;/m:r&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/m:den&amp;gt; &lt;BR&gt;&amp;lt;/m:f&amp;gt; &lt;/P&gt;
&lt;P&gt;whereas in MathML, it's &lt;/P&gt;
&lt;P&gt;&amp;lt;m:mfrac&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;m:mrow&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;m:mi&amp;gt;a&amp;lt;/m:mi&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;m:mo&amp;gt;+&amp;lt;/m:mo&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;m:mi&amp;gt;b&amp;lt;/m:mi&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/m:mrow&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;m:mi&amp;gt;c&amp;lt;/m:mi&amp;gt; &lt;BR&gt;&amp;lt;/m:mfrac&amp;gt; &lt;/P&gt;
&lt;P&gt;Here the &amp;lt;m:mrow&amp;gt; is needed for the numerator to make it the first entity following the &amp;lt;m:mfrac&amp;gt;. For both a/b and (a+b)/c, the linear format sure has the shortest representation!&lt;/P&gt;
&lt;P&gt;Another difference between MathML and OMML is in the positioning of the radical (root)&amp;nbsp;degree and prescript arguments relative to their respective bases. In OMML these arguments are positioned so that the left and right arrow keys traverse the objects unidirectionally. Specifically for the radical, the degree argument precedes the radicand, while for MathML it follows the radicand. By having it precede, a right arrow key&amp;nbsp;at the start of the radical moves into the degree and then into the radicand, exactly the way one would expect geometrically. Similarly OMML's&amp;nbsp;prescripts precede the base, whereas in MathML's multiscripts object they follow the base.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=798829" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/murrays/archive/tags/RichEdit/default.aspx">RichEdit</category><category domain="http://blogs.msdn.com/murrays/archive/tags/MathML/default.aspx">MathML</category><category domain="http://blogs.msdn.com/murrays/archive/tags/Word+2007/default.aspx">Word 2007</category><category domain="http://blogs.msdn.com/murrays/archive/tags/OMML/default.aspx">OMML</category></item></channel></rss>