# Structure Editor

## MathML Ancestry

The MathML Ancestry is the status area displayed just below the Tabbed Toolbar, adjacent to the Mini Toolbar. The Ancestry is there to show you at a glance the nesting of the MathML structure at the cursor location, and to give you an easy way to select parts of the equation containing the cursor.

`MathML Ancestry … <mrow> : <mrow> : <mfrac> : <mrow> : <mi>`

Since all MathML equations consist of templates nested inside a `‹math›`

element, the Ancestry always shows the `‹math›`

element on the left. Intermediate MathML templates are listed in order of nesting, with the innermost MathML template at the cursor location indicated on the far right.

When there are too many levels of nesting to display all at once, the Ancestry shows dots on the right and/or left edge of the display. Clicking the dots scrolls the display in the corresponding direction.

As you move the mouse, the Ancestry automatically updates to reflect the nesting at the current cursor position. Also, when you select part of an equation in the editing area, the corresponding template label in the Ancestry will be highlighted.

### Ancestry selections

When you mouse over one of the MathML templates labels in the Ancestry, it will become highlighted in red. Clicking a label in the Ancestry selects the corresponding part of the equation in the editor window.

By double-clicking an Ancestry label, you can highlight the corresponding area of the current equation and simultaneously open the default Properties panel for that selection. Each kind of MathML template has a default Properties panel, depending on what MathML properties it supports. Changes to a Properties panel only affect the current selection. Sometimes a selection applies to several Properties. When this occurs, only the default panel is opened by double-clicking.

## Source editing

The editor interface includes two input/display modes: Design view and Source view. Design view is the standard mode for creating and editing your equations discussed in other sections of this documentation. In this view the input is displayed as it will be seen in your document. Source view is an alternate mode which displays the exact MathML syntax and structure, and operates just like a text editor, allowing you to directly edit equation content within the MathML source itself. Source view also includes commands for checking the syntax of the MathML and formatting the text itself. The Editor will always open into the view used in the last editing session.

Click on the 'Source view' tab just below the editor window to edit the MathML source. Changes made to equation content in Source view are immediately reflected in Design view.

Editing the MathML in Source view is just like working in any text editor. All standard text, space, and line break characters are recognized. In addition, pressing **Shift**+**Tab** will tab blocks of text. This can be useful for isolating or formatting sections of the MathML to aid with editing.

The Source view toolbar is fixed (non-configurable) and includes commands for Cut, Copy, Paste, Undo, Redo, Format Source, Validate, and Help.

### Context highlighting

Source view is designed with some clear visual cues to assist in viewing and editing the structure. To this end, the Editor uses four colors to differentiate the major components:

MathML data and regular text is displayed black, such as the number

**355**, the entity**β**or the function**sin**.MathML tags and edited data before re-formatting are displayed blue, such as

<span><tt></mo></tt></span>or

<span><tt><mfrac></tt></span>.

MathML attribute values display in purple, such as the 2 mathcolor and linebreak attribute values

<span><tt>red</tt></span>,

<span><tt>yellow</tt></span>, and

<span><tt>badbreak</tt></span>, respectively.

MathML syntax errors reported after running the Validate command display in red, such as

<span><tt></row></tt></span>when

<span><tt></mrow></tt></span>is expected