Math in Office 2006—2019 Listing

Murray Sargent

This post gives links and brief introductions to my MSDN Math in Office blog posts. Some of the posts aren’t archived and don’t have links. They might be the subjects of future posts.


Math Autocomplete. 6

Math Zone Navigation. 6

Using MathML-Based Speech to Edit Math in Different Math Models. 7

Using Math Alphanumerics in Code and Web Pages. 7

RichEdit 9 Additions. 7

RichEdit Property Sets. 7

UI Automation Math Text Support 7

OfficeMath UI 8

OfficeMath. 8

Converting Microsoft Equation Editor Objects to OfficeMath. 8

Integrands, Summands, and Math Function Arguments. 8

Copying Equations from Wikipedia into Office Applications. 8

Equation-Editor Office-Math Feature Comparison. 9

OneNote Math Assistant 9

Representation of Math Accents. 9

RichEdit Animated GIFs. 9

Microsoft Word EQ Field. 9

RichEdit Clipped Text 10

Other Office Math Editing Facilities. 10

Math Greek Letters. 10

Setting and Getting Math Speech, Braille, UnicodeMath, LaTeX….. 10

Recognizing LaTeX Input in UnicodeMath Input Mode. 10

LaTeX Math in Office. 11

Math Braille UI 11

Math STIX Fonts 2.0 and UTR #25 Updates. 11

Braille for Math Zones. 11

Editing Math using MathML for Speech. 11

Microsoft Office Math Speech. 12

Unicode – Nemeth Character Mappings. 12

Text Insertion Point 12

UnicodeMath Version 3.1. 12

Speaking Subscripts, Superscripts, and Fractions. 12

UnicodeMath. 13

Nemeth Braille Alphanumerics and Unicode Math Alphanumerics. 13

Nemeth Braille—the first math linear format 13

Speaking of math….. 13

RichEdit Text Pointers. 13

Math Accessibility Trees. 14

Font Binding Refinement 14

Unicode Math Calligraphic Alphabets. 14

Wingdings with Cyrillic, Greek, etc., Characters. 14

Math Font Binding. 14

Inserting and Getting Math Text in RichEdit 15

RichEdit Language Tag Handling. 15

Color Fonts. 15

Single Line RichEdit Performance Runs. 15

RichEdit Input APIs. 15

Autolink Color Contrast 16

Equation Numbering in Office 2016. 16

Hot Keys and altGr 16

RichEdit Colors. 16

Math Language Tag. 16

Two Phonetic Scripts: Vietnamese and Korean. 17

Ruby Text Objects. 17

Math Symbol Hierarchy. 17

Smart Lighting. 17

Entering Unicode Characters. 17

Symbols and Emoji 18

RichEdit Plain-Text Controls. 18

Math Greek Letter Bug Fixed. 18

Crisp Text Display. 18

OpenType Math Tables. 18

BiDi Hyperlinks. 19

More on Equation Numbering. 19

Book on Technical Writing in Word. 19

UTF-8 RTF. 19

RichEdit Hot Keys. 19

RichEdit 8 Feature Additions. 20

Emoji 20

Flyweight RichEdit Controls. 20

Arabic and Mathematical Enclosures. 20

MathML on the Windows Clipboard. 20

Pasting Bitmaps into Text 21

The Alpha Channel 21

RichEdit 8 Performance Improvements. 21

A Math Build-up Bug. 21

RichEdit 8.0 Touch Support 21

Program Annotations. 22

RichEdit 8 Zoom Support 22

Inserting Tables Using the Keyboard. 22

RichEdit 8.0 Accessibility. 22

RichEdit Spell Checking, Autocorrection and Prediction. 22

Office Adopts New Windows Display Technology. 23

Ligatures, Clusters, Combining Marks and Variation Sequences. 23

RichEdit 8.0 Image Support 23

RichEdit 8.0 TOM Table Interfaces. 23

RichEdit 8.0 Preview.. 23

RichEdit Character Formatting. 24

Math in Office Links. 24

Keyboard Operator Shortcuts. 24

Klinke’s Streamlined Math Input Notation. 24

Math Accents. 24

Office Insert Symbol Dialog. 25

Sans Serif Mathematical Symbols. 25

Rendering MathML in HTML5. 25

Math Keyboard Shortcuts. 25

NINCH and EMU.. 25

Two Math Typography Niceties. 26

Equation Arrays. 26

Plain Text Math in Bidirectional Contexts. 26

Check out Live Writer 26

MathML To-Do List 26

Mac Word 2011 and Math. 27

MathML 3.0. 27

Nathan Myhrvold. 27

Linear Format Notations for Mathematics. 27

Which Languages a Font Supports. 27

Article/Video on Murray Sargent and Math in Office. 28

RichEdit Font Binding. 28

Bidi Paragraph with Parenthesized Text 28

Tailoring the Unicode Bidi Algorithm.. 28

Linear Format Version 3. 28

Math Ribbon Entry of Subscripts and Superscripts. 29

Keyboard Entry of Subscripts and Superscripts. 29

Negated Operators. 29

RichEdit Versions 1.0 through 3.0. 29

Special Capabilities of a Math Font 29

High Fonts and Math Fonts. 30

Directionality in Math Zones. 30

Equation Numbering Prototype. 30

RichEdit Friendly Name Hyperlinks. 30

RichEdit Versions Update to 7.0. 30

Automatic RichEdit Hyperlinks. 31

Entering Matrices. 31

Math in Office 2010. 31

WordPad Numbering Limit 31

Math Handwriting Recognition. 31

Entering Math via the Linear Format 32

Empty Math Zone Place Holders. 32

Restricted Math Zone Character Formatting. 32

RichEdit Paragraph Indents. 32

OMML Specification, Version 2. 32

The Math Paragraph. 33

Paragraphs and Paragraph Formatting. 33

More on Math Context Menus. 33

Default Document Math Properties. 33

RichEdit’s Nested Table Facility. 33

The Invisibles. 34

Improved MathML support in Word 2007. 34

Subscript and Superscript Bases. 34

Extracting OMML from Word 2003 Math Zone Images. 34

Updated RTF Specification. 34

Math Context Menus. 35

A neat opportunity….. 35

Word EQ Field and East Asian Formatting. 35

Hidden Math Features in Word 2007. 35

Weird F020-F0FF characters in Word’s RTF. 35

Rick Shoemaker, quantum magician and microcomputer whiz. 36

Some of My Favorite Sayings. 36

Smart Canvasses. 36

STIX Beta Fonts. 36

Using RichEdit 6.0 for Math. 36

Using Left/Right Arrow Keys in Mathematical Text 37

Breaking Equations into Multiple Lines. 37

Automatic arguments. 37

Math Selection. 37

Getting Word 2007 Technical Files into Publisher Pipelines. 37

Science and Nature have difficulties with Word 2007 mathematics. 38

Using Math Italic and Bold in Word 2007. 38

When Formula Autobuildup Occurs. 38

Creating Math Web Documents using Word 2007. 38

Math Find/Replace and Rich Text Searches. 38

Cool Equation Number Macros for Word 2007. 39

Converting Equations from MathType to Word 2007’s Equation Format 39

Office Math RTF and OMML Documentation. 39

Saving Windows from the OS/2 Bulldozer 39

LineServices. 39

User Spaces in Math Zones. 39

Mathematical RTF. 40

Some RichEdit History. 40

RichEdit versions. 40

MathML and Ecma Math (OMML) 40

How I got into technical WP. 41

High-Quality Editing and Display of Mathematical Text in Office 2007. 41

Formula Autobuildup in Word 2007. 41


Math Autocomplete

Users of OfficeMath note that entering math symbols using a keyboard can be hard because they don’t know the symbol keywords to type and/or the control words are long. To ease these problems, we create a math autocomplete listbox that displays the control words that match what the user types…

June 14, 2019

Math Zone Navigation

This post compares the math-zone edit navigation in Microsoft Office apps to the structured child/parent/next/previous tree navigation provided by MathPlayer and other systems. Combining both approaches results in rich navigation and editing experiences for blind and sighted users alike….

April 30, 2019

Using MathML-Based Speech to Edit Math in Different Math Models

This post discusses how an Assistive Technology program (AT) can use Presentation MathML to create consistent speech for editing equations created with different math models, such as OfficeMath and MathType. A goal is to make the speech and editing experience be as similar as possible, even though the underlying math models differ in significant ways…

March 28, 2019

Using Math Alphanumerics in Code and Web Pages

The post UTF-8 RTF shows how much easier it is to read the rich text format (RTF) with Unicode characters instead of the RTF \uN notation. You see the real characters instead of signed 16-bit decimal numbers. The same readability improvement occurs in computer programs and web source…

February 27, 2019

RichEdit 9 Additions

Six years have passed since the post RichEdit 8 Feature Additions and a lot has happened in between. Along the way, several versions have shipped, but we might as well call the current one RichEdit 9, This covers RichEdit up through Office 2019 and includes some features of more recent Office 365 versions. ….

January 18, 2019

RichEdit Property Sets

RichEdit has many character-format properties, most of which are documented for ITextFont2 and CHARFORMAT2. Nevertheless, the OpenType specification defines many more character-format properties called OpenType features consisting of a 32-bit identifier (id) and a 32-bit value. For example, the Gabriola font has stylistic set 6, which displays “Gabriola is graceful” as Variable fonts are the…

December 22, 2018

UI Automation Math Text Support

Microsoft products expose their contents for accessibility purposes via a set of interfaces known as UI Automation (UIA). Currently UIA has no special support for math text. Either the assistive technology program (AT) has to figure out if math is involved or the application has to return math-specific speech text as done with Office math…

November 16, 2018

OfficeMath UI

The post OfficeMath describes the history, model, file format, typography and math font of the native math facility introduced in Office 2007. That post refers to the present post for discussion of OfficeMath user interfaces (UI). OfficeMath UI can be grouped into keyboard, menu/ribbon, ink, and accessibility categories. Let’s consider each of these in turn….

October 17, 2018



Microsoft Word 2007 and RichEdit 6.0 introduced the native Office math facility. PowerPoint, Excel, and OneNote followed suit in 2010, and Mac Word followed in 2011. But ironically the native math facility hasn’t had a recognizable name. “Microsoft Equation Editor” (MEE) seems natural, but it’s the name of the Design Science math editor that shipped…

September 30, 2018

Converting Microsoft Equation Editor Objects to OfficeMath

As discussed in the post Editing equations created using the Microsoft Equation Editor, the Microsoft Equation Editor 3.0 (MEE) was removed from Office installations because it has security problems and no maintenance. Microsoft doesn’t have access to the MEE source code and MEE’s author, Design Science, doesn’t maintain it, instead offering the more powerful, upward-compatible…

August 31, 2018


Integrands, Summands, and Math Function Arguments

The Microsoft OfficeMath object model (OMML) dedicates explicit arguments for integrands, summands and other N-aryands, as well as for math functions such as trigonometric functions and subscript/superscript bases. Having such arguments aids in calculating the correct math spacing and reveals the math content more precisely. However, other math models, such as LaTeX, Presentation MathML and…

July 31, 2018


Copying Equations from Wikipedia into Office Applications

The post LaTeX Math in Office describes how to switch between UnicodeMath and LaTeX in Office apps. One handy use of this facility is in copying equations from Wikipedia into a Word document. The process isn’t as simple as selecting the equation, typing Ctrl+C to copy it and Ctrl+V to paste it into your document,…

June 19, 2018


Equation-Editor Office-Math Feature Comparison

This post compares the Design Science Equation Editor and MathType features with the Microsoft Office native math features (Office Math). Some comparison is given in the post Other Office Math Editing Facilities. Most math constructs are supported by all three environments. Notably missing in Office Math are long division and matrix row/column lines. We start…

May 14, 2018


OneNote Math Assistant

OneNote Universal has a nifty built-in math facility that lets you solve and graph equations. Enter an equation with pen or keyboard, click on the Insert tab and hit the Math icon. A math panel opens on the right-hand side displaying the equation along with a list box of options depending on the equation. One…

April 29, 2018


Representation of Math Accents

The post Math Accents discusses how accent usage in math zones differs from that in ordinary text, notably in the occurrence of multicharacter bases. Even with single character bases, the accents may vary in width while in ordinary text the accent widths are the same for all letters. The present post continues the discussion by…

March 31, 2018


RichEdit Animated GIFs

The post RichEdit 8.0 Image Support describes how RichEdit supports popular image formats, such as jpeg’s, png’s and GIF’s. RichEdit 8.1 added direct support for jpeg’s and png’s in the Rich Text Format (RTF) instead of using RichEdit’s proprietary blob format. Even so, GIFs were treated as second-class images in two ways. First, they were…

February 21, 2018


Microsoft Word EQ Field

Word’s first math editing facility was the EQ field. Some description of the EQ field and comparison to the Equation Editor, MathType and native math zones is given in Other Office Math Editing Facilities. For mathematical purposes, the native equation facility built into Word and other Office apps is better than the EQ field as…

January 23, 2018


RichEdit Clipped Text

This post describes three ways RichEdit may clip text along with possible solutions. Clipping can occur due to inadequate line height, lack of font vertical padding or insufficient painting of selected text. In some cases, improved rendering code could avoid clipping. Typographic compromises can avoid clipping in other cases. Selection clipping Acetate selection is discussed…

December 28, 2017


Other Office Math Editing Facilities

Many posts of this blog are about the native Office math facility introduced in Microsoft Word in 2007 and added to PowerPoint, OneNote, and in Excel Text Boxes in 2010. But the first native math-text facility in Microsoft Word was the EQ field, one of many fields, such as time and date. Design Science designed…

November 30, 2017


Math Greek Letters

Greek letters often appear as variables in mathematical text. This post describes their support in [La]TeX and Unicode and how their math usage sometimes differs from modern Greek text. For example, the upper-case upsilon looks like a Latin Y in modern Greek, but a curvy Υ in math zones. Similarly, in math zones the two…

October 31, 2017


Setting and Getting Math Speech, Braille, UnicodeMath, LaTeX…

This post augments the post Inserting and Getting Math Text in RichEdit by documenting the RichEdit options for ITextRange2::SetText2(options, bstr) and ITextRange2::GetText2(options, pbstr) including those for math speech and math braille. As such, this post is for programmers. But more generally, it reveals that RichEdit supports Nemeth math braille (!). All options work in the…

September 28, 2017


Recognizing LaTeX Input in UnicodeMath Input Mode

In offering a LaTeX math input mode, we’ve run into the problem that a user might type some LaTeX while the UnicodeMath input mode is active and get something unintended and confusing. This post reveals ways in which the build-up engine can recognize this situation and maybe cue the user to switch to the LaTeX…

August 31, 2017


LaTeX Math in Office

For a while now it’s been possible to switch Word’s math input mode from UnicodeMath to LaTeX. We didn’t advertise this highly requested feature since it needed more work. I wrote the original conversion routines back in Fall, 2007 and used them in preparing PowerPoint physics presentations since they’re handy for copying equations from Wikipedia…

July 30, 2017


Math Braille UI

For sighted users, Microsoft Office applications like Word, PowerPoint and OneNote have user interface (UI) cues that reveal math zones, selected text, the insertion point (IP) if no text is selected, and the argument of the innermost math object (fraction, subscript, integral, matrix, …) that contains the IP. Math speech also reveals these properties. These…

June 21, 2017


Math STIX Fonts 2.0 and UTR #25 Updates

Two math updates have happened: 1) the STIX math fonts have been upgraded to Version 2.0, which works well with Microsoft Word, and 2) Unicode Technical Report #25, Unicode Support Mathematics has been updated to include discussion of slashed-zero and empty-set variations. This post discusses these updates. STIX Fonts 2.0 We compare STIX 2 Math…

June 1, 2017


Braille for Math Zones

Mathematical text in modern technical documents appears in math zones. This is true for LaTeX, Microsoft Office math, MathType, Open Office, HTML5, etc. The main reason is that the typography of mathematical text differs from that for ordinary text (see, for example, User Spaces in Math Zones) and has special layout constructs such as square…

April 18, 2017


Editing Math using MathML for Speech

The posts Microsoft Office Math Speech and Speaking of math… describe two kinds of math-speech granularities: coarse-grained (navigate by words), which speaks math expressions fluently in a natural language, and fine-grained (navigate by characters), which reveals the content at the insertion point (IP) in sufficient detail to enable editing. Several Assistive Technologies (ATs) use MathML…

March 19, 2017


Microsoft Office Math Speech

Microsoft Office math-aware applications can now speak math in over 18 different languages! Try it out with native math zones in Word by enabling Narrator (type CapsLock + Enter) and navigate a math zone as described in the post Speaking of math… There are two math-speech granularities: coarse-grained (navigate by words), which speaks math expressions…

February 27, 2017


Unicode – Nemeth Character Mappings

In addition to handling 2D arrangements such as fractions, root, subscripts and superscripts, math layout programs need to be able to display the myriad math symbols discussed in Unicode Technical Report #25 Unicode Support for Mathematics. To interoperate with Nemeth braille, such programs need to map between Unicode characters and Nemeth braille sequences. Since Unicode…

January 31, 2017


Text Insertion Point

People often ask questions about the nature of the text insertion point (IP), the blinking vertical bar in between two characters on screen. This post attempts to address some of these questions, notably about where the IP is, what it means, how it works in BiDi text, how to control it programmatically and how it…

December 28, 2016


UnicodeMath Version 3.1

A new version of Unicode Technical Note #28, UnicodeMath, a Nearly Plain-Text Encoding of Mathematics is now available. It updates several topics and references and uses the name UnicodeMath instead of Unicode linear format. Since there are several math linear formats, such as Nemeth braille, [La]TeX, and AsciiMath, having the name UnicodeMath clarifies the…

November 30, 2016


Speaking Subscripts, Superscripts, and Fractions

You might think that there’s just one good way to speak a math expression, at least in each natural language. But actually, there are a number of good ways to speak math expressions, each with advantages and disadvantages. This post discusses some of these choices for subscripts, superscripts, and fractions. The post Speaking of math……

October 30, 2016



In writing the post Nemeth Braille—the first math linear format, I became increasingly aware that the Unicode Nearly Plain Text Encoding of Mathematics needed a better name than “linear format”. In addition to the Nemeth braille linear format, there are other math linear formats some of which are described in the post Linear Format Notations…

September 7, 2016


Nemeth Braille Alphanumerics and Unicode Math Alphanumerics

Both Unicode and Nemeth braille include sets of math alphanumerics. Section 2.2 of Unicode Technical Report #25 discusses the math alphanumerics and why they’re important for math. Microsoft Office math zones use math alphabetics for most variables and support the math digit sets as well. Accordingly, we need mappings between Unicode and Nemeth braille math alphanumerics….

August 26, 2016


Nemeth Braille—the first math linear format

The 6-dot Nemeth braille encoding was created by Abraham Nemeth for mathematical and scientific notation and is general enough to encode almost all of the Microsoft Office math notation. He started working on his encoding in 1946 and it was first published in 1952 by the American Printing House for the Blind. It’s a little…

July 31, 2016


Speaking of math…

This post discusses how a combination of the Office in-memory built-up format (“Professional” in Word) and UnicodeMath is ideal for generating speech for math zones. Neither format was designed with speech in mind. The built-up format was designed to aid the creation of beautiful math typography. UnicodeMath was designed to aid math keyboard input by…

June 30, 2016


RichEdit Text Pointers

A text editor has to provide ways of reading and modifying text. For external clients, the RichEdit editor provides the Text Object Model (TOM) interfaces including ITextRange[2] and ITextSelection[2].These interfaces are quite efficient, since they are lightweight wrappers around the internal editing machinery. This post describes how RichEdit’s design came to be and notes a…

May 31, 2016


Math Accessibility Trees

This updated post discusses some aspects of making mathematical equations accessible to blind people. Equations that are simple typographically, such as 𝐸 = 𝑚𝑐², are accessible with the use of standard left and right arrow key navigation and with each variable and two-dimensional construct being spoken when the insertion point is moved to them. At…

March 29, 2021


Font Binding Refinement

As discussed in the post RichEdit Font Binding, in a text string when a character appears that isn’t supported by the current font, an appropriate font needs to be used. There are a number of pitfalls in making such font choices. For example, the post Math Font Binding discusses special requirements for font binding in…

March 28, 2016


Unicode Math Calligraphic Alphabets

Unicode needs a way to encode bold and regular math Calligraphic/Chancery alphabets as well as bold and regular script alphabets, since it turns out that Calligraphic and Script alphabets are used contrastively by some authors and [La]TeX has had both kinds of letters. In most documents, Script and Calligraphic shapes can be substituted for one…

February 5, 2016


Wingdings with Cyrillic, Greek, etc., Characters

This post describes some seemingly anomalous behavior that can happen when you type characters that have Unicode code points above U+00FF, such as Cyrillic and Greek characters, while a SYMBOL_CHARSET font like Wingdings is active. By definition such fonts are not Unicode fonts and don’t have characters with code points above 255 (0xFF in hexadecimal)….

January 4, 2016


Math Font Binding

The post RichEdit Font Binding outlines how RichEdit chooses fonts when you paste or otherwise enter plain text into a RichEdit control. But it doesn’t describe how math font binding differs from natural-language font binding. The differences are due to 1)      Math styles like math italic, bold, script, Fraktur and double-struck are obtained by character…

December 7, 2015


Inserting and Getting Math Text in RichEdit

Starting with the Office 2007 RichEdit, it has been possible to enter math using the keyboard and to read and write RTF files that contain math zones. The RichEdit Text Object Model (TOM) ITextRange2 interface has methods to handle math programmatically, such as ITextRange2::BuildUpMath() and ITextRange2::SetInlineObject() and GetInlineObject(). But the methods don’t offer convenient ways…

November 22, 2015


RichEdit Language Tag Handling

For years, many applications have used the locale ID (LCID) to identify the language and locale for text and other data. For example since 1997 (RichEdit 2.0), RichEdit’s character formatting has included CHARFORMAT2::lcid. The LCID can, in fact, describe the vast majority of language/locale combinations in use as far as text is concerned. However the…

October 19, 2015


Color Fonts

The popularity of emoji symbols has encouraged a variety of technological innovations, notably fonts with multicolor characters. This is different from just having a text color, which is described in RichEdit Colors. While some colored glyphs were part of the original Japanese emoji standards, colored glyphs got much more elegant when Apple introduced its proprietary…

September 24, 2015


Single Line RichEdit Performance Runs

In applications that have lots of independent text instances such as spreadsheets and complex dialogs, one wants to know the tradeoffs between rapid display, memory usage, and editing functionality. As noted in the post Flyweight RichEdit Controls, using RichEdit to display such text avoids display glitches in switching from static display to edit mode and…

August 30, 2015


RichEdit Input APIs

With on-screen keyboards used commonly on phones, tablets and even on laptops, one might wonder how such keyboards can input characters and commands into a RichEdit control. With traditional hardware keyboards, messages like WM_CHAR, WM_KEYDOWN, and WM_SYSKEYDOWN offer a wide variety of input data. But the new touch-screen keyboards typically don’t use messages. This post…

July 6, 2015


Typical documents use black for the text color and white for the background. This gives the highest contrast. Hyperlinks are often displayed in blue, which gives good contrast on a white background. But other combinations of colors may not be so easily distinguishable. This post describes how RichEdit handles such combinations and muses about possible…

June 8, 2015


Equation Numbering in Office 2016

Word 2016 and PowerPoint 2016 join OneNote 2010 (and later) in offering a way to display equation numbers flushed to the right margin. To enter an equation number using the linear format (see Section 3.21), type the equation followed by a # (U+0023) followed by the desired equation number text and hit Enter. For example,…

May 14, 2015


Hot Keys and altGr

The earlier post, RichEdit Hot Keys, lists all built-in RichEdit hot keys. In particular, it lists a popular hot key for typing the Euro (€), ctrl+alt+e, which works for some languages, such as US English. A problem may arise when altGr+e is assigned to some other character, such as é in Spanish keyboards. This is…

April 20, 2015


RichEdit Colors

Occasionally people ask how foreground (text) and background colors work in RichEdit. This post gives an overview of RichEdit colors in a variety of scenarios including default coloring, formatted coloring, selection coloring (both normal and acetate), math-zone highlighting and special draft and high-contrast modes. It also describes refinements such as switching to XOR coloring when…

March 27, 2015


Math Language Tag

To guide proofing tools to use the correct dictionaries and autocorrect lists as well as to display preferred glyphs, it’s very handy to associate language tags with text runs. For many years, Windows has provided a language tag property called the LCID (locale identifier) consisting of a 32-bit unsigned integer. The LCID suffices for many…

February 14, 2015


Two Phonetic Scripts: Vietnamese and Korean

I just visited two very interesting countries, Vietnam and Korea. Being actively involved in writing software (mostly RichEdit) for editing the world’s scripts, I was naturally fascinated to see Vietnamese and Korean text displayed in profusion. The Vietnamese and Korean scripts were designed with a common purpose in mind: enable the languages to be read…

January 27, 2015


Ruby Text Objects

Chinese characters are used to represent syllables and words in a number of East Asian languages. In each language, the characters are pronounced differently and their meanings may differ as well. To help clarify the pronunciation and/or semantics, “ruby text” can be used. In vertical text layout, ruby text is positioned vertically to the right…

December 27, 2014


Math Symbol Hierarchy

The Unicode Standard 7.0 has 2311 math symbols not including the ASCII letters and the standard combining marks like tilde, which are also used in math zones. Such a large number of symbols can be confusing if not intimidating to people who don’t use mathematics professionally. Even those who use math a lot don’t use…

November 26, 2014


Smart Lighting

This post involves an old passion of mine, computerizing homes. First some background. I spent the academic year 1975-76 on sabbatical at the Max Planck Institute for Solid-State Physics and the University of Stuttgart in Stuttgart, Germany researching nonlinear laser spectroscopy theory, generally of atomic media. But the Max Planck Institute aroused my curiosity about…

October 21, 2014


Entering Unicode Characters

As noted in the post Symbols and Emoji we have the ability to input characters in much more powerful ways than possible before the advent of modern computers and smart phones. We can insert symbols chosen from large galleries (Character Map, Office Insert Symbol Dialog, Office math ribbon, soft keyboards) to represent words and ideas….

September 30, 2014


Symbols and Emoji

The emoji symbols (literally picture characters) introduced by Japanese cell phone carriers have captured the imaginations of computer users around the world. So much so that occasionally many symbols created long before the emoji are now being treated as emoji. This post addresses the history of symbols in general and how emoji symbols fit in…

August 31, 2014


RichEdit Plain-Text Controls

A Unicode plain-text editor appears to have a single set of character formatting properties for the entire text and a single set of paragraph formatting properties. With NotePad, for example, you can choose a normal, bold, italic, or bold-italic font of any reasonable size and your choice is used consistently throughout the text (at least…

July 21, 2014


Math Greek Letter Bug Fixed

When Word 2007 and later versions write an RTF file that includes math alphanumeric symbols (see U+1D400..U+1D7FF), they convert the symbols back to ASCII or Greek in the BMP (basic multilingual plane) and then write the characters out using the appropriate charset, namely ANSI_CHARSET for Latin letters like a..z, and GREEK_CHARSET for Greek letters. In…

June 26, 2014


Crisp Text Display

Kaspar commented on my post Office Adopts New Windows Display Technology “I always wondered why the text in OneNote 2013 looks so much better than Word 2013.” Curious, I typed some math into Word and OneNote on my 3200 x 1800 resolution Samsung ATIV laptop and compared them. The two displays looked pretty similar! For…

May 31, 2014


OpenType Math Tables

The math tables created for the math facility in Word 2007 and other Microsoft Office applications are now officially part of the OpenType standard ISO/IEC CD 14496-22 3rd edition. See Section 6.3.6 MATH. You can download a copy of the whole standard from here. We always hoped that the tables would become part of the official…

April 27, 2014


More precisely, this post is about BiDi Internationalized Resource Identifiers (IRIs). These objects are a generalization of Universal Resource Identifiers (URIs) that can contain a large variety of nonASCII characters, such as most alphabetic characters and Chinese characters. Complications occur when BiDi characters such as Arabic and Hebrew are used in IRIs especially when displayed…

March 30, 2014


More on Equation Numbering

The book Creating Research and Scientific Documents using Microsoft Word gives a method for numbering equations that works with all versions of Word from Word 2007 on and has automatic renumbering of the equations and the references to the equations. Those are very attractive features. The approach inserts a center tab before the equation and…

February 21, 2014


Book on Technical Writing in Word

There’s a new Microsoft Press book on creating technical documents in Word, entitled Creating Research and Scientific Documents using Microsoft Word. Alexander Mamishev, Professor of Electrical Engineering at the University of Washington, is the primary author and I wrote most of Chapter 6 on equations. The book emphasizes the utility of Word templates in streamlining…

January 15, 2014



For RichEdit 4.0 (Windows XP SP1), I developed a UTF-8 version of the Rich Text Format (RTF). The reason was to have a faster, more reliable way of handling copy/paste for RichEdit than regular RTF. RichEdit 5.0 added the binary format for this purpose (and for OneNote) and RichEdit 6.0 added a still faster internal…

November 20, 2013


RichEdit Hot Keys

This post summarizes the hot keys built into RichEdit. Previous posts have described various math hot keys like Alt+=. But AFAIK no one has published a summary of all the RichEdit hot keys. Note that RichEdit clients, e.g., OneNote, often handle all hot key combinations with RichEdit never seeing the corresponding keyboard messages. Since the…

October 30, 2013


RichEdit 8 Feature Additions

The time has come to summarize the features added in RichEdit 8, which shipped with Windows 8 and Office 2013. Since so much was added, I wrote a number of blog posts over the last twelve months about the larger RichEdit 8 features. The present post lists those features and then describes some smaller features…

September 7, 2013



Early in this century with texting becoming an increasingly popular way to communicate on cell phones, the Japanese created an imaginative new way of conveying an idea or emotion: use cool, maybe colorful, maybe animated, symbols called emoji. Some emoji resembled symbols that were already encoded in Unicode, but most were new. Examples include “red…

August 23, 2013


Flyweight RichEdit Controls

Back when RichEdit 2.0 was being designed, Christian Fortini had a dream that every text string in a Forms^3 form or dialog would be a light-weight RichEdit control. That way there would be no display glitches in switching from static display to edit mode and text could be copied, edited, and made accessible. To keep…

July 25, 2013


Arabic and Mathematical Enclosures

This post describes the Arabic subtending marks and discusses how their editing and display could be significantly improved by using a mathematical layout engine instead of using a complex-script shaping engine. Unicode has a set of six Arabic subtending or enclosure characters located at U+0600..U+0604 (؀, ؁, ؂, ؃, ؄, respectively) and the End-of-Ayah mark U+06DD (۝)….

June 30, 2013


MathML on the Windows Clipboard

Sometimes people enquire how the Windows clipboard works and whether it supports MathML, jpeg, RTF and other formats in addition to built-in formats like CF_BITMAP and CF_UNICODETEXT that are defined in winuser.h. The answer to the second question is that Windows supports any format that you want to define, including private formats. This post gives…

May 27, 2013


Pasting Bitmaps into Text

In the (almost) old days, when you paste a bitmap into a rich-text editor, the editor would give it to OLE (Object Linking and Embedding) to figure out what to do with it. But these days, OLE isn’t always available, so it’s more general to paste them using the Windows Imaging Component (WIC) mentioned in…

April 29, 2013


The Alpha Channel

One of our testers inserted a Microsoft logo image into RichEdit and saw an inky black rectangle. Ignoring any connotation that this might be a bad omen (!), I proceeded to study image formats in Wikipedia and in MSDN. (Not that I hadn’t already scoured such documentation). Pretty soon I started to suspect that the image, which…

March 16, 2013


RichEdit 8 Performance Improvements

This post describes a couple of performance improvements introduced in RichEdit 8: 1) a more efficient display tree, and 2) a faster rich-text formatting mechanism. Performance is always of interest, partly to make the user experience more enjoyable (animations should be smooth, not jerky, and who wants to wait for things to happen?) and partly…

February 22, 2013


A Math Build-up Bug

I didn’t think we had any serious math build-up bugs thanks to very extensive testing, but there was at least one bug anyhow. (If you find such bugs, please let me know by email or as a comment on a post). This one was quite simple and it existed in both Office 2010 and 2013….

February 18, 2013


RichEdit 8.0 Touch Support

Windows 8 introduced substantially better touch facilities than those available in Windows 7.  One cool thing is the new touch on-screen keyboard, which is enabled if you have a touch screen. To see it, swipe in from the right side, touch the cog icon for settings, touch the Keyboard, and then touch “Touch keyboard and…

January 29, 2013


Program Annotations

Notation is a favorite topic of mine being at least partly inspired by Bertrand Russell, who once wrote, “A good notation has a subtlety and suggestiveness which at times make it seem almost like a live teacher…and a perfect notation would be a substitute for thought.” An earlier post on notation deals with the linear…

December 31, 2012


RichEdit 8 Zoom Support

In this day and age with touch pinch and expand zooming of screens, zoom is everywhere! So you might wonder how to zoom the contents of a RichEdit control. There are two ways: 1) maintaining the display width and rewrapping the text as necessary to fill the client rectangle, and 2) zooming everything including the…

November 16, 2012


Inserting Tables Using the Keyboard

This post describes a little trick that lets you insert a table into RichEdit and into Word just using the keyboard. Admittedly in Word, you can use the handy table tool on the Insert tab with a mouse or with a keyboard. But in WordPad and the Windows RT RichEditBox, you don’t have a table…

October 12, 2012


RichEdit 8.0 Accessibility

An important part of a computer’s user interface is to provide for user interaction alternatives to the usual sight-oriented methods. Such capability requires programmatic access to what’s on the screen so that screen reader programs can express the content using voice or other means. Microsoft UI Automation (UIA) provides such access. A valuable side benefit…

September 14, 2012


RichEdit Spell Checking, Autocorrection and Prediction

RichEdit has provided support for client spell checking (TOM object model and temporary character formatting—see tomApplyTmp) and autocorrect (see EM_SETAUTOCORRECTPROC) for many years. But it has been the RichEdit client’s responsibility to access the spell-checking and autocorrection components, except for the built-in math autocorrect option. For clients like OneNote and Outlook, such a responsibility is…

August 31, 2012


Office Adopts New Windows Display Technology

Office 2013 has undergone a substantial shift to a relatively new display facility, Direct2D, and a new text facility, DirectWrite. These are the display facilities that are used on Windows Phone 8, the new Windows RT slates, and optionally on Windows 7 & 8. Up through Office 2010, the Windows Graphics Device Interface (GDI) and…

July 29, 2012


Ligatures, Clusters, Combining Marks and Variation Sequences

On the surface, Unicode appears to be a just large collection of characters. But before Unicode text is displayed, substantial “shaping” can occur. This shaping is the process of mapping the Unicode characters to glyphs and placing them correctly on the display. The mapping is, in general, n characters to m glyphs. For most characters…

June 29, 2012


RichEdit 8.0 Image Support

Up until RichEdit 8.0, RichEdit’s native image support was limited to metafiles, enhanced metafiles, and simple images like bitmaps (bmp’s). If OLE (Object Linking and Embedding) had supported other types, such as jpg’s, png’s and gif’s, RichEdit would have supported them automatically. But OLE’s functionality was frozen years ago. RichEdit 5.0 added “blobs”, which are…

May 25, 2012


RichEdit 8.0 TOM Table Interfaces

An earlier post describes the RichEdit nested table facility and how the EM_INSERTTABLE and EM_GETTABLEPARMS messages could be used to insert and examine tables. Now those messages are documented in MSDN along with a new message, EM_SETTABLEPARMS that allows one to modify tables. For additional convenience, RichEdit 8.0 adds table support to the TOM text…

April 22, 2012


RichEdit 8.0 Preview

There’s been a lot of buzz about the Windows 8 Consumer Preview and it is really exciting. One particularly exciting thing missing in the buzz is that Windows 8 contains a new RichEdit! Since the new version is now publicly documented on MSDN, I can write about it. I found the public documentation by Binging…

March 3, 2012


RichEdit Character Formatting

RichEdit’s name derives from its ability to represent rich text. Such text is comprised of text runs with different sets of character and paragraph formatting properties along with embedded objects, such as images. Some discussion of paragraph formatting is given in an earlier post. The present post discusses how character formatting is represented in RichEdit…

February 8, 2012


I started this blog in 2006 and now it’s 2012. How time flies! This post provides links relevant to the main theme of the blog, math editing and display in Microsoft Office grouped according to area, such as keyboard, formatting, background, …

January 9, 2012


Keyboard Operator Shortcuts

The previous post introduces Hermann Klinke’s math input notation, which he developed to speed up entry of equations for real-time note taking in OneNote. The post is followed by a very interesting set of comments comparing high-speed, and yet easy-to-remember, input sequences. Some of these involve hot keys and some can be done with math…

December 2, 2011


Klinke’s Streamlined Math Input Notation

Hermann Klinke has designed and instrumented an input notation on top of the Microsoft Office math facility that you may want to try. It significantly reduces the number of keystrokes needed to input mathematical text. His motivation is to have a way to enter equations in real time while taking lecture notes. He has documentation…

November 20, 2011


Math Accents

Accents are quite common in mathematical text. For example, in physics one uses one- to four-dot accents to designate the first through fourth time derivatives, respectively. Primes are often used on integration variables. Transforms can be designated by tildes and averages by overlines. While accents are usually applied to a single base character, they can…

October 30, 2011


Office Insert Symbol Dialog

This blog post describes a cool insert-symbol facility built into Office applications like Word, PowerPoint, Excel, and Outlook. The facility is handy for locating mathematical symbols as well as other characters. And with the developments in Unicode these days, that means a lot of symbols! Recently the Unicode Technical Committee and the ISO WG2 Committee…

September 29, 2011


Sans Serif Mathematical Symbols

Most mathematical documents and books use fonts with serifs, such as Times Roman. However mathematical expressions can also be displayed with sans-serif letters, such as the font this post uses. In fact, sans-serif letters are used sufficiently often in mathematical typography that six sets of them are included in the Unicode Mathematical Alphanumeric Symbols. Further rationale…

August 29, 2011


Rendering MathML in HTML5

As you can see in this document, Presentation MathML is part of HTML5. This is very exciting, since HTML5 is becoming the primary new web standard format. You might think that this would automatically make it easy to render MathML in a browser. In fact, FireFox does a decent job of rendering MathML, having incorporated…

July 31, 2011


Math Keyboard Shortcuts

Nali commented on the post Office 2007 Math Editing/Display that it would be nice to have keyboard hot keys to switch between Professional and Linear format (build up/down), and between Display and Inline mode of equations. This is a great idea especially for those of us who like to use keyboards to speed up math…

June 21, 2011



People have been asking about a couple of acronyms fairly often these days, so here’s a blog post on them. They are described on the web already if you type the right queries, but a little more motivation might be useful. The acronyms are NINCH for “no input no change” and EMU for “English Metric…

May 7, 2011


Two Math Typography Niceties

Roughly eight years ago, some colleagues and I had the good fortune to spend an extraordinary afternoon with Donald Knuth, the primary author of TeX, at his home on the Stanford University campus. Among many things, Donald showed us how he uses TeX to typeset his computer-science papers and books exactly the way he wants…

April 30, 2011


Equation Arrays

One user (Leperkawn) commented “There is basically no documentation on the \eqarray command so I’ll post a quick example that I had to figure out from trial and error.” Before looking at his interesting example, here’s the text in Section 3.19 of the linear format paper describing how to type in equation arrays: To align…

March 30, 2011


Plain Text Math in Bidirectional Contexts

In plain text, bidirectional text (text including some Arabic or Hebrew) is generally displayed according to the Unicode Bidi Algorithm (UBA). Since we’re interested in math, it’s pertinent to study a bit how simple mathematical expressions appear according to the UBA. Ideally math is displayed using higher-order protocols that overrule the UBA appropriately, but in…

February 28, 2011


Check out Live Writer

This is a test to see how I can use Live Writer to make blog posts more nicely. In particular, it’s desirable to display equations by copying them from Word. For example, this is the mode locking formula which you can enter by typing \integral<space> in a math zone. In PowerPoint 2010, it builds up…

January 1, 2011


MathML To-Do List

In my MathML 3.0 post, I noted that several things were postponed for future consideration. The present post lists math document properties and equation numbers. Other members of the MathML Working Group can undoubtedly add to the list. Default Document Math Properties A number of math display properties have document defaults. They are the ones…

December 31, 2010


Mac Word 2011 and Math

Office for Mac 2011 has many cool additions. The best of them all (well you know my bias!) is that Mac Word 2011 has the elegant Office math editing and display facility! Although I do not own a Mac, my next-door neighbor Dylan Tom does and we gave the math facility a check out run….

November 22, 2010


MathML 3.0

The W3C announced October 21, 2010 that the MathML 3.0 specification is a W3C Recommendation. This post describes some of the features added to MathML in version 3.0. The specification also includes numerous clarifications that are helpful for people wanting to implement MathML 3.0. The specification’s introductory section “Status of this Document” concludes with a…

October 28, 2010


Nathan Myhrvold

This is a post about some of the early days in the life of an amazing person, Nathan Myhrvold. Nathan and his good friend and colleague, Chuck Whitmer, had completed PhD’s in theoretical physics at Princeton. They wanted to investigate advanced behaviors in a field called deterministic chaos. This field deals with how dynamical systems…

September 28, 2010


Linear Format Notations for Mathematics

I have been having a great discussion with Christian Lerch about computer-oriented mathematical notations. He has a program that lets you input MathML using a pure ASCII syntax. It is similar to ASCIIMathML. A lightly commented EBNF grammar of his MathEL language as implemented for the time being (still beta and evolving a bit) is…

August 30, 2010


Which Languages a Font Supports

A recent post describes how RichEdit chooses default fonts for Unicode characters. The method assigns a character repertoire (CharRep) to each character and queries fonts to find out which CharRep’s they support. If the current font doesn’t support the CharRep for a character, RichEdit chooses a font that does. A variety of heuristics are used…

July 27, 2010


Article/Video on Murray Sargent and Math in Office

The article Professor’s Laser Focus Gets Math into Office tells some of the story behind the Math in Office project. It also gives a link to a video that includes a sequence of me showing how easy it is to type in the binomial theorem. Hope you like it J

June 17, 2010


RichEdit Font Binding

Suppose a user pastes some plain text into a document. In principle, that text can contain any Unicode character. That includes virtually all characters used in the current languages of the world along with many from ancient scripts and a plethora of symbols, mathematical and otherwise, that don’t belong to any language in particular. The…

June 9, 2010


Bidi Paragraph with Parenthesized Text

The previous post described four tailorings of the Unicode Bidi Algorithm (UBA) in situations where the UBA display is confusing or even misleading. The present post adds another set of scenarios to this list, namely strange renderings of paragraphs that contain parenthesized or quoted text. An algorithm for displaying such text in a reasonable way…

May 6, 2010


Tailoring the Unicode Bidi Algorithm

The Unicode Bidi Algorithm is a very useful, general, and standard approach for displaying text that contains right-to-left scripts, such as Arabic and Hebrew. But there are situations in which it is awkward to use and/or is visually confusing. This post considers three such situations: math zones, International Resource Identifiers (IRIs), and HTML spans with…

April 6, 2010


Linear Format Version 3

Unicode Nearly Plain-Text Encoding of Mathematics, Version 3 (Unicode Technical Note #28) is now posted. The differences between Version 1 and 2 of that paper are largely cosmetic, but there were enough changes in Version 2 to merit a new number. Version 2 is mostly implemented in Microsoft Word 2007, where it is referred to…

March 13, 2010


Math Ribbon Entry of Subscripts and Superscripts

As noted in the previous post Keyboard Entry of Subscripts and Superscripts, the preferred way to enter subscripts and superscripts is by using the keyboard, rather than the math ribbon. For example, type alt+= to insert a math zone followed by a^2+b^2=c^2<space> to enter the Pythagorean Theorem. This method is a lot faster than clicking…

March 3, 2010


Keyboard Entry of Subscripts and Superscripts

The Send-a-Smile and Send-a-Frown feedback from Office beta users is very useful for finding out where we’ve done right and wrong things with the new Office. From time to time I’ll post thoughts on some of the feedback that pertains to the math facility. The present post discusses the hot keys for entering subscripts and…

February 8, 2010


Negated Operators

Sometimes you need to enter a negated operator like ≠. If you’re a C/C++ programmer, you might think that != should map to ≠, since that’s what != means in those languages (and some others). But since in mathematics ! means factorial, this choice is a bad idea for inputting ≠ into mathematical text. You…

February 5, 2010


RichEdit Versions 1.0 through 3.0

Digging through old doc files, I ran across the following summary of RichEdit up through Version 3.0. It’s more detailed than my post on RichEdit Versions, so it might be of interest to history buffs, anyhow. And it does describe the riched20.dll that still ships with Windows, mostly for purposes of backward compatibility. I wrote…

January 12, 2010


Special Capabilities of a Math Font

A fairly common inquiry is how a program can use and access the many special glyph variants of a math font. It’s clearly a much more intricate interaction than encountered in most text applications. This post outlines how the Office math layout software interacts with the Cambria Math font and, in principle, with any other…

January 11, 2010


High Fonts and Math Fonts

Math fonts differ from other fonts not only in their extensive coverage of math operators, symbols, and math alphanumerics, but also in the large number of glyph variants they have to support two sizes of sub/superscripts and many sizes of stretchable characters like parentheses and brackets. Some such glyphs can be many times as high…

December 1, 2009


Directionality in Math Zones

In most places, mathematical text is written “left to right” (LTR). For example, in the expression x + y the plus is displayed to the right of the x and the y is displayed to the right of the plus. But in some Arabic locales, mathematical text is written right to left (RTL). Instead of…

November 12, 2009


Equation Numbering Prototype

When writing the Math in Office 2010 post back in July, I could just imagine the disappointment various people would have when they discovered no mention of equation numbering. After getting math into PowerPoint, equation numbering had been the most often requested feature. Since PowerPoint 2010 now has the math facility, equation numbering has risen…

October 14, 2009


This post is a companion to Automatic RichEdit Hyperlinks. As stated in that post, RichEdit has two kinds of hyperlinks, automatic hyperlinks (autoURLs) and friendly name hyperlinks. A friendly name hyperlink has a name, which is displayed, and a hidden instruction part that contains the actual URL. Such hyperlinks are commonly used when an author…

September 24, 2009


RichEdit Versions Update to 7.0

The original RichEdit Versions post covered RichEdit versions 1.0 through 6.0, since 6.0 was the latest version at the time. RichEdit 7.0 will ship with Office 2010, so here’s an update describing what that version adds. Most additions involve math editing/display and play a central role in the math features of OneNote 2010, PowerPoint 2010,…

September 5, 2009


RichEdit has two kinds of hyperlinks, automatic hyperlinks (autoURLs) and friendly name hyperlinks. As its name suggests, the autoURL is automatically recognized by RichEdit as a hyperlink and is displayed as a URL. A friendly name hyperlink has a name, which is displayed, and a hidden instruction part that contains the actual URL. The present…

August 31, 2009


Entering Matrices

The Office math ribbon has a few examples of matrices, but you might like to be able to enter a lot more kinds of matrices and enter them substantially faster. For this you can use the linear format (see Sec. 3.9). For example, a 2×2 matrix is entered by \matrix(…&…@…&…), where the ellipses are the…

August 18, 2009


Math in Office 2010

Imagine typing alt+= in PowerPoint, OneNote, Excel, and, of course, Word and Outlook to enter a math zone and then type a^2+b^2=c^2<space> to see the Pythagorean theorem beautifully typeset on your screen! Or some way more complicated equation, equally beautifully typeset. You don’t have to wait much longer as the people getting the Office 2010…

July 13, 2009


WordPad Numbering Limit

In Windows 7, WordPad has undergone many improvements even though it uses RichEdit 4.1+ for editing and display. Time and time again, the excellent Hyderabad team responsible for enhancing the Windows 7 WordPad requested very reasonable extensions to RichEdit 4.1, extensions that have been included in later versions of RichEdit. They’ve also requested features that…

June 19, 2009


Math Handwriting Recognition

Starting with Windows 7, Windows includes a cool applet called the Math Input Panel. This applet lets you enter mathematical text using a pen or a mouse. It recognizes what you enter and displays the result using a special private version of RichEdit 6. It also lets you copy the results to Word, Mathematica, or any…

May 6, 2009


Entering Math via the Linear Format

The previous blog post is on the cool math handwriting recognition shipped with Windows 7. The post includes a description of a race I had entering equations using the linear format with formula autobuildup against a member of the math handwriting recognition team, who entered equations using the Windows 7 Math Input Panel. Since the…

May 6, 2009


Empty Math Zone Place Holders

You type Alt+= or click the Insert ribbon Equation button, and presto! You’ve inserted an empty math zone place holder that states “Type equation here.” in the language you’re using. Then you type a^2+b^2<space> and you see a2+b2, except in better typography. The empty math zone place holder seems simple and intuitive, but behind the…

April 27, 2009


Restricted Math Zone Character Formatting

A number of character formatting properties are treated differently in a math zone than they are in ordinary text. These include underline, strikeout, math font face and size, subscript and superscript. This post discusses how these properties differ in math zones, sometimes to the surprise of users. For starters, the ordinary subscript and superscript attributes…

March 4, 2009


RichEdit Paragraph Indents

RichEdit paragraph indents are based on the original RichEdit 1.0 definitions. These differ somewhat from Microsoft Word’s definitions and hence from TOM’s (RichEdit’s Text Object Model), which were developed in collaboration with the Word team.  In addition, the RTF file format uses Word’s definitions, naturally. RichEdit’s paragraph indents can be set using the EM_SETPARAFORMAT message…

February 16, 2009


OMML Specification, Version 2

The OMML (Office math markup language) specification has been improved in response to the great feedback we received from the ISO reviews. It’s part of the full OpenXML documentation Version 2 and is very handy to have if you’re working with OMML. The full OpenXML documentation itself is also very useful if you’re working more generally with…

January 16, 2009


The Math Paragraph

The earlier post Breaking Equations into Multiple Lines describes equation line breaking and alignment. In particular, long equations often do not fit on a single line and need to be broken up for display on multiple lines. Word 2007 offers two approaches: automatic and manual line breaking. A related feature is alignment of multiple equations,…

December 19, 2008


Paragraphs and Paragraph Formatting

What paragraphs are and how they are formatted are questions that continually come up both inside and outside of Microsoft. So this post describes Word/RichEdit paragraphs in general. A subsequent post will describe the “math paragraph”, which is part of a regular paragraph and is used for displayed equations, as distinguished from inline mathematical expressions….

November 21, 2008


More on Math Context Menus

An earlier post describes math context menus (right click somewhere in a math zone) for changing the display characteristics of math objects, like fractions and integrals. For example context menus offer options to convert a stacked fraction into a linear fraction and vice versa. Another post describes math context menus for aligning and/or manually breaking…

November 4, 2008


Default Document Math Properties

A number of math display properties have document defaults. These are the ones used if you don’t explicitly override them, which you can usually do by invoking a math context-menu option. The properties all pertain to “displayed” math zones, that is, math zones that begin either at the start of the document or at a…

October 27, 2008


RichEdit’s Nested Table Facility

One subject that seems to come up every other month or so is how RichEdit tables work. So I might as well post the answer. Hopefully RichEdit tables will eventually be described in the Windows SDK. They are not directly related to Math in Office, but I had mathematical expressions in mind when designing RichEdit’s…

September 15, 2008


The Invisibles

No this isn’t about some kind of science fiction, this is about five Unicode characters that are useful for mathematics, but are generally invisible or should be. The characters are the zero-width space (U+200B), function apply (U+2061), invisible times (U+2062), invisible comma (U+2063), and the new invisible plus (U+2064). This post discusses each one in…

August 25, 2008


Improved MathML support in Word 2007

Two very interesting developments are happening that will improve Word 2007’s MathML support. The first is key for helping in getting Word 2007 math text into the scientific and technical publisher workflows and the second may help in this regard too. Specifically, new transforms are now available in beta versions enabling Word to read and write…

July 28, 2008


Subscript and Superscript Bases

For proper math typography, it’s important to know the base of a subscript or superscript expression. For example, in Einstein’s equation 𝐸 = 𝑚𝑐² the superscript expression 𝑐² appears and 𝑐 is the base, not 𝑚𝑐. Knowing what the base is allows proper kerning of the base relative to the script (superscript or subscript) as providing more accurate semantics in interoperating with mathematical calculation engines.

June 29, 2008


Extracting OMML from Word 2003 Math Zone Images

The science and technology publishing industry uses Word 2003 in processing a significant portion of manuscript submissions. The industry hasn’t yet been able to accept manuscripts in which the mathematical text (math zones) is created using Word 2007’s new math facility since the infrastructure currently only works with math zones encoded in the Design Sciences…

May 13, 2008


Updated RTF Specification

An updated RTF Specification is available for downloading here. I already blogged about the new version in the MS Word blog, but wanted to add a few words about math in Math in Office blog. The RTF specification includes a thorough discussion of the Office 2007 math format. The format syntax is naturally RTF syntax,…

April 20, 2008


Math Context Menus

One handy way to edit mathematical text is to use math context menus. These menus are displayed when you depress the right mouse button with the mouse pointing inside a math zone. In addition to the usual Font and Paragraph options, in a math zone you see options relevant for the math object the mouse…

March 30, 2008


A neat opportunity…

Okay, the Math In Office blog isn’t about advertising. But just in case you’re someone who really likes RichEdit and editing and wants to work on it (as I did and do J) and related text processing, here’s a pretty fine opportunity. If you’re not interested, please skip this post.   So here goes. Want…

March 7, 2008


Word EQ Field and East Asian Formatting

This post discusses aspects of Word’s first math editing and display facility: the EQ field. This field is still used today for some East Asian formatting constructs. To have a built-up fraction a/b, one could (and still can) enter an EQ field with the contents \f(a,b). To try this in Word 2007, go to the…

February 19, 2008


Hidden Math Features in Word 2007

Alex Ioffe emailed me: “Hi Murray, I realize you probably get this often by why can’t someone (pleeease!) publish some official documentation of Word 2007 Equation editor features? I have seen all of the MSN videos regarding it features and they barely scratch the surface. People like Dataninja  ( spent a great deal of time…

February 17, 2008


Weird F020-F0FF characters in Word’s RTF

People have been inquiring about Word RTF’s occasional use of the Unicode Private Use Area (PUA) characters in the range U+F020..U+F0FF. These codes are also used in WordProcessingML defined by the ECMA-376 standard. This post explains what Word means by those characters. But first note a couple of things:   1)      Unicode assigns no meaning…

January 23, 2008


Rick Shoemaker, quantum magician and microcomputer whiz

This post summarizes what I said at the retirement ceremony for my long time collaborator and good friend Dr. Rick Shoemaker, Associate Dean, College of Optical Sciences, and Professor of Optical Sciences.   I’ll talk a bit on Rick and his love for microcomputers. Back in the 1970s, Rick regularly performed magic in nonlinear spectroscopy….

January 19, 2008


Some of My Favorite Sayings

Perfection is to be strived for but not attained A software version of this saying is “shipping is a feature”. In general one wants to do the best possible job, but getting something accomplished is usually better than having nothing but unfinished work. I learned this lesson by watching my PhD advisor as he got…

January 7, 2008


Smart Canvasses

The Microsoft Math graphing calculator folks have created a Word 2007 add-in that lets you simplify, solve, calculate, and graph your equations in 2-D or 3-D. With it installed, your technical paper becomes alive. For example, your paper may have graphs of the formulae, but a reader wants graphs for different sets of parameters. She…

December 2, 2007


STIX Beta Fonts

The STIX folks (Scientific and Technical Information eXchange) folks have a beta version of their math font. There are more math characters in the STIX fonts than in Cambria Math. The primary typeface is Times Roman. This post describes how you can examine the fonts and gives some reasons why they aren’t quite ready to…

November 6, 2007


Using RichEdit 6.0 for Math

A number of readers have asked how to use the RichEdit 6.0 shipped with Office 2007 to edit and display mathematical text. This post explains one way to do so. The code assumes that you already have an application that knows how to instantiate a RichEdit control with a window identified by hwndRE. The function…

October 28, 2007


Using Left/Right Arrow Keys in Mathematical Text

Paul Libbrecht commented that there’s more to selection in math text than discussed in my first post on this subject. As usual, Paul is right. That post explains how one or more characters and/or math objects are selected. In addition the topic of selection includes insertion-point behavior, which by definition selects no characters or objects….

September 29, 2007


Breaking Equations into Multiple Lines

Long equations often do not fit on a single line and ways are needed to break them up for display on multiple lines. Word 2007 offers two approaches: automatic and manual line breaking. A related feature is alignment of multiple equations, such as aligning the equal signs of a group of equations. This post describes…

September 1, 2007


Automatic arguments

The arguments of math display objects are either optional or essential. Examples of essential arguments are the numerator and denominator of a fraction. For a legitimate fraction, both are nonempty. Hence if either or both are empty, they should be represented by a dotted square box, which indicates that an essential argument is missing. Optional…

July 13, 2007


Math Selection

Selection of text in a math zone obeys some special rules concerning built-up math objects, such as fractions and integrals. First some background on how these objects are stored helps to clarify the rules. In memory, math objects start with a special 16-bit character and end with a different 16-bit character. In RichEdit, the start…

June 30, 2007


Getting Word 2007 Technical Files into Publisher Pipelines

Nature, Science and other publishers have robust ways of converting Word 2003 documents with embedded Equation Editor and MathType objects into the XML representation they use for publication. Notably MathType can export mathematical equations as MathML and this capability is part of the methodology. In principle a similar approach can be used with Word 2007…

June 13, 2007


Science and Nature have difficulties with Word 2007 mathematics

Science and Nature, two premier science publications, are having difficulties with Word 2007’s elegant new mathematics facility. Part of the reason is due to misunderstanding about Word’s MathML support, which hopefully this post will help to rectify. And part of it is that the new facility represents mathematical text in a way that Word itself…

June 4, 2007


Using Math Italic and Bold in Word 2007

Mathematical variables represented by Latin and lower-case Greek letters are usually displayed in italic. Vectors are often displayed in upright boldface. Word 2007 allows the user to control and change these choices with the italic and bold formatting buttons on the Home tab of the user-interface ribbon or with the italic and bold hot keys…

May 30, 2007


When Formula Autobuildup Occurs

People, especially testers, often ask when does formula autobuild up (FAB) occur? After using it for a while to enter equations into Word, one gets a feel for how it works, but may still wonder if there’s some well defined way to predict autobuild up. A general answer is that build up occurs when the…

April 15, 2007


Creating Math Web Documents using Word 2007

If you use Word 2007 to create a document containing mathematical equations and expressions and save it as a web page, it looks just as good in Internet Explorer as it does in Word 2007! The equations look as though they had been typeset by TeX or in some ways even better. How did this…

April 15, 2007


Math Find/Replace and Rich Text Searches

A number of readers have inquired how to Find/Replace mathematical expressions in Word 2007. This post shows how it could be done nicely, although unfortunately this functionality didn’t make it into Word 2007. A previous post shows how to find simple variables in a math zone. The basic idea of finding more complex expressions is to use…

March 15, 2007


Cool Equation Number Macros for Word 2007

Dong Yu of Microsoft’s Speech Research Group reports: “Office 2007 comes with a very nice equation editor and bibliography manager. However, it does not support equation number management. To work around this problem. I have developed a set of macros. You can download it here.”

February 24, 2007


Converting Equations from MathType to Word 2007’s Equation Format

MathType users may want to convert their equations to Word 2007’s native equation format. This can be done by exporting the equations in MathML and then pasting them into Word 2007. There are some problems and useful tricks that Dadi Gudmundsson ( describes as follows: Migration Procedure Reason for migrationAfter testing the equation capability in Word 2007…

February 11, 2007


Office Math RTF and OMML Documentation

The RTF 2007 specification is now available. Word 2007 added as many control words as Word 2000, XP and 2003 combined! The .doc spec is 4.4 MB, while the .docx is only 881KB. Admittedly a zipped version of the .doc spec is somewhat smaller than the .docx version. The math section starts on p. 124….

January 12, 2007


Saving Windows from the OS/2 Bulldozer

In my blog description, I promised to write occasionally about the early Windows days. So here’s a post on how David Weise and I got Windows 2.0 into protected mode and blew away the old DOS 640 KB RAM barrier. If this hadn’t happened, we’d probably be using some variant of OS/2 today instead of…

December 7, 2006



One of the key technologies behind the high quality display of mathematical text in Word 2007 and RichEdit 6.0 is a special component called LineServices along with its sibling Page/TableServices. In addition to handling math display, various versions of LineServices are responsible for line layout in Word, Publisher, RichEdit, PowerPoint, Internet Explorer, FrontPage, Visio, and…

November 14, 2006


User Spaces in Math Zones

Spacing in mathematical expressions involves well defined rules. For example, in the expression a+b=c, a good math display engine automatically inserts 4/18 em on each side of the binary operator + and 5/18 em on each side of the relational operator =. Proper spacing between two characters depends on the properties of each character. Section…

November 11, 2006


Mathematical RTF

This post discusses the Word 2007 math RTF control words. A good way to understand these control words is to note that they are actually OMML tag names written with RTF syntax. Hence you can refer to the very thorough OMML documentation for more detailed information. For example in OMML, the built-up skewed fraction for…

October 25, 2006


Some RichEdit History

A couple of comments have raised the question of people outside Microsoft using the various versions of RichEdit. Specifically, Teis Johansen asks, “Just to be sure. Can I redistribute RichEdit 6.0 with my application?” and Kyle Alons asks, “So what’s the point of listing these features without documenting how to use them?  Just to make…

October 19, 2006


RichEdit versions

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…

October 13, 2006


MathML and Ecma Math (OMML)

Before comparing these two math XMLs, I’m excited to point you at Jennifer Michelstein’s nifty post on Equations in Word 2007. It comes complete with instructive videos demonstrating how to enter mathematical expressions using the Equation Ribbon as well as using the linear format discussed in my earlier postings. Jennifer plans to add other posts…

October 6, 2006


How I got into technical WP

This post tells a bit of how I started in technical word processing back in the middle of the last century. More precisely it was in 1965 that I started using a nifty (for that time) vector plotting program by Grey Freeman at the Yale Computer Center. I was a Yale grad student in theoretical…

September 20, 2006


High-Quality Editing and Display of Mathematical Text in Office 2007

This post is a summary of material I’ve given in recent talks on math in Office such as this one. In the talks, I describe and demonstrate how Unicode’s rich mathematical character set combined with OpenType font technology, TeX ‘s mathematical typography principles, and enhanced autocorrection can be used to produce high-quality, streamlined technical text…

September 13, 2006


Formula Autobuildup in Word 2007

This is an introductory post to help users who want to create stunning technical documents in Word 2007. If you’ve typed Alt+= in Word 2007, you’ve seen a math-zone object inserted that says “Type equation here”. Actually you can type any mathematical expression there, even just a simple variable like x. If the expression’s math…

September 6, 2006


Discussion is closed.

Feedback usabilla icon