Yale BS, MS, PhD in theoretical physics. Worked 22 years in laser theory & applications first at Bell Labs and then Professor of Optical Sciences, University of Arizona. Worked on technical word processing, writing the first math display program (1969) and the technical word processor PS (1980s). Developed the SST debugger we used to get Windows 2.0 running in protected mode thereby eliminating the 640KB DOS barrier (1988). Have more than 100 refereed publications, 3 laser-physics books, 4 PC books, 163 posts on Math in Office blog. Joined Microsoft Research in 1992. Since 1994 have been in Microsoft Office working mostly on RichEdit and OfficeMath. Member of Unicode Technical Committee (1994—) and MathML Working Group (1999—).
One of the key technologies behind the high-quality display of mathematical text in OfficeMath applications like Word, PowerPoint, and OneNote is a special component called LineServices along with its sibling Page/TableServices (PTS). In addition to handling math display, various versions of LineServices are responsible for line layout in Word...
Unicode has a math symbol set of about 2310 symbols that’s described in Section 2 of Unicode Technical Report #25. The present post attempts to give Nemeth math braille sequences for the Unicode math symbol set. Many of the braille symbol sequences are taken directly from the Nemeth specification and the UEB specification. In addition, many ...
For many years, I’ve wanted to use real mathematical notation in computer programs for code that is mathematical in nature. The document UnicodeMath discusses this in some detail in Section 6. Using UnicodeMath in Programming Languages. Over the years, some advances beyond ASCII (invented in the 1960’s!) have been made. For example, you ...
Suppose a user pastes some plain text into a document. In principle, the text can contain any Unicode character. That includes virtually all characters used in the current languages of the world along with many ancient scripts and a plethora of symbols, mathematical and otherwise, that don’t belong to any language. The question arises as to ...
Here’s a bit of a puzzle. When the user enters “a/b” in LaTeX mode and formats it with the Enter key, the ‘/’ is marked as “nobuildup”. If the user then switches to UnicodeMath input mode and enters a space after the linear fraction containing the ‘/’, the fraction won’t build up, by design. If you delete the / and reenter ...
RichEdit has had limited HTML support for many years, but it wasn’t general enough to document publicly. A recent RichEdit client (to be described in a future post) needs better support, so we have been improving it. For example, we have added HTML copy/paste, images, and math (of course!) to the Microsoft Office riched20.dll. Ideally ...
The Windows key is used in a bunch of useful hot keys. Probably my favorite is Windows+Shift+s, which lets you copy any rectangular area on your screen(s) to the clipboard. I use this hot key a lot in describing application UI and other objects on the screen such as those in this post. I also use Windows+x y to see system info such as the name...
This post discusses 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 or felt when the insertion point is moved to...
In the years since UnicodeMath 3.1 was published, some improvements have been made. The converter that converts UnicodeMath to OfficeMath also converts LaTeX and Nemeth math braille to OfficeMath. The converter needs ways to provide OfficeMath math-object arguments even when these arguments are not marked as such in the math format. The ...
Seems many email messages and IM’s include emoji smiley faces like 😊. You just type :-) and you get 😉 whether you want it or not! About a year ago, the Microsoft 365 RichEdit started offering such a facility. This post describes the built-in emoticon shortcut strings and the corresponding emoji characters and the APIs for enabling the ...