A Formula for Success: InDesign + MathML
Learn the ins and outs of writing precise, accurate, and accessible formulas using the new Math Expressions tools.
This article appears in Issue 47 of CreativePro Magazine.
When InDesign 2025 debuted integrated MathML features, I rejoiced—no more third-party plug-ins needed for adding math and scientific formulas! Still, the Math Expressions panel was pretty sparse, and the feature required you to code MathML markup by hand.
It was an excellent start, but I hoped the future would bring improvements. Happily, it did: I now can create expressions without having to write a single line of markup. And you can, too. In this article, I’ll walk you through the whole process. Bur first, let’s set the stage with a little background information.
What Is MathML?
MathML, or Mathematical Markup Language, is a pair of XML-based markup languages for representing mathematical expressions. The pair is composed of content MathML and presentation MathML. Content MathML describes the meaning of each element. Presentation MathML is for the display of those elements.
InDesign now supports both content and presentation MathML, meaning you can type the code and get real expressions visible on the page, or you can use the Math Expressions panel’s visual interface and get the code. This dual support allows for mathematical content that is both visually accurate and semantically rich, making creation and editing easier, as well as facilitating better interaction with screen readers and similar assistive technologies.
Creating Math Expressions in InDesign
Within InDesign, math expressions must exist inside a special standalone MathML object. You can’t simply insert expressions into paragraphs as text, but, like most objects in InDesign, it can be placed and then set as an anchored object.
Because MathML is XML-based, you can edit the objects to revise the expression, fix a typo, or change the type size or fill color. Also, because MathML produces vectors, the object can be resized with no loss of resolution.
The Math Expressions panel offers clickable shortcuts for building expressions—no manual coding and debugging required. But if you prefer coding to clicking, or you already have the markup for a particularly gnarly expression, you can type or paste it in.
Let’s take a look at both methods, starting with the easier one.
Easy assembly expressions
The no-coding workflow is simple: You first create an empty expression, then fill it in with numbers and symbols.
To open the Math Expressions panel, choose Window > Math Expressions.
Put your cursor in a text frame where you want to insert the math expression as an inline object. Or, if you just want to create a freestanding object, you can start with nothing selected and any tool.
Click the Create Expression button at the top of the panel. If your cursor was in a text frame, the object is inserted there. If you had nothing selected, the object will be loaded in your cursor, and you can click anywhere on the page to place the object. Because you haven’t selected any expressions yet, the text Insert Expression appears (Figure 1).

In the Expressions section of the panel, choose the type of expression you want to construct. Note that all 11 Expression buttons represent categories of equations, and that clicking and holding on any of them will expose additional structures (Figure 2).

The expression you select will replace the default text Insert Expression in the MathML object.
Your cursor will now also be inside the MathML object. Use the Left, Right, Up, and Down Arrow keys to move around within the equation, just as you would a block of text. Type what is easy to enter via your keyboard, and use the Symbols area of the panel to insert symbols and mathematical and scientific notations that are not so easily typed.
Note that the Symbols area has a scrollbar. There are a lot more symbols than initially appear, including sections for Basic Maths, Lower & Upper Case, Letter-Like Symbols, Relational Operators, Basic and Advanced Binary Operators, Arrows, Negated Relations, Script, Double Struck, Geometry, and Frakturs.
If desired, change the Font Size and Fill settings in the Typeface Properties section at the bottom of the panel.
Manual markup
Now let’s look under the hood at the markup that powers this new feature. If you prefer to write or paste in your own code, here are the steps:
With either selection tool, or your cursor in a text frame, click Insert MathML in the Math Expressions panel (or choose Object > Insert MathML). The Insert MathML dialog box appears. The first time you do this after launching InDesign, you will see sample code in the dialog. After that, it will be empty when it opens.
In the Insert MathML dialog box (Figure 3), write or paste the markup in the MathML Input section. (If you need help, see the sidebar “Master MathML Markup” for links to some of my favorite guides.)

Click the Preview Expression icon (the double-chevron in the center of the dialog box) to proof for any irregularities. Make any corrections in the MathML Input section.
Click Place to generate the MathML object.
If your cursor was in a text frame, the object is inserted there. Or, if you had nothing selected, you can click to place the MathML object, which will create its own frame and behave very much like a placed image (Figure 4).

Editing Math Expressions
You can edit an expression by clicking it with the Type tool (or double-clicking with the Selection tool) and typing directly or using the controls in the Math Expressions panel.
Or, if you want to edit the code directly, follow these steps:
Select the MathML object with the Selection tool.
Either click Edit MathML at the top of the Math Expressions panel, or right-click the MathML object and choose Edit MathML (Figure 5).

In the Edit MathML dialog box, edit the code, click the Preview Expression button to preview the change, and then click Save (Figure 6).


Download Einstein Equation MathML code

Download Quadratic Formula MathML code
MathML Is RGB
Here’s a potential problem you need to be aware of if you’re making math for print output. Even if you choose process black as the color for your MathML objects, they’re actually created using RGB black. That’s because MathML is SVG, and by nature, SVG is RGB.
That means if you include MathML objects in a document headed to a printing press, they will output in rich black—something you don’t want to be surprised by. You can, of course, fix the colors in Acrobat, PitStop Pro, or some other preflight tool. But if you fail to do so, you may be disappointed by the print quality of the math expressions you create in InDesign.
It All Adds Up
Even with the extra step of converting MathML objects to process black elsewhere, the new feature is a huge step forward for people like me who work with companies, government agencies, and medical and scientific research teams who need InDesign publications with precisely rendered formulae that meet Section 508 compliance standards for accessibility. Problem solved.
Commenting is easier and faster when you're logged in!
Recommended for you
Using Math Symbols in InDesign
Use the InDesign Glyphs panel to populate your work with the correct math symbol...
