12.6.26. Flow Object Classes for Mathematical Formulae

The flow object classes for mathematical formulae are math-sequence, unmath, subscript, superscript, script, mark, fence, fraction, radical, math-operator, and grid.

NOTE 106: These flow objects may also be used for “linear” chemical formulae.

Character flow objects are used for characters in mathematical formulae; there is no special flow object class for this. Characteristics such as font-size: or font-posture: are determined in the usual way by the characteristics of the character flow object. These characteristics are not automatically changed by the mathematical formulae flow object classes. However, the math value for the font-posture: characteristic may be used to make different characters within math formulae have different font postures.

12.6.26.1. Math-sequence Flow Object Class

A math-sequence flow object produces a single area.

The flow object has a single principal port used for the content of the area. The port shall accept flow objects of the following classes: math-sequence, unmath, subscript, superscript, script, mark, fence, fraction, radical, math-operator, grid, character, or alignment-point. The spacing between the flow objects in the contents may be adjusted based on their class and characteristics. The applicable characteristics are:

When one of the mathematical formulae flow object classes has a port that accepts the same classes as a math-sequence flow object, then the spacing between the flow objects is adjusted as if it were in a math-sequence flow object.

12.6.26.2. Unmath Flow Object Class

An unmath flow object is used to get words of natural language within a mathematical formula. The characters in such words are spaced differently from adjacent characters in a mathematical formula. The flow object has a single principal port. The port shall accept any inline flow objects. These flow objects are positioned in the normal way.

The following characteristics are applicable:

12.6.26.3. Subscript Flow Object Class

A subscript flow object is allowed in a math-sequence or in a port on a math flow object that accepts the same flow object classes as a math-sequence. A subscript flow object causes its parent to position the content of the subscript flow object as a subscript on the preceding area. It has a single principal port.

12.6.26.4. Superscript Flow Object Class

A superscript flow object is allowed in a math-sequence or in a port on a math flow object that accepts the same flow object classes as a math-sequence. A superscript flow object causes its parent to position the content of the superscript flow object as a superscript on the preceding area. It has a single principal port.

12.6.26.5. Script Flow Object Class

The script flow object describes a seven-part area. The parts described are:

The applicable ports are:

Each port shall accept flow objects of the same class as the port of a math-sequence flow object.

The applicable characteristics are:

12.6.26.6. Mark Flow Object Class

The mark flow object describes a three-part area. The parts described are:

The applicable ports are:

If the over-mark or under-mark port contains exactly one flow object of class character, rule, or leader, then that flow object shall be extended to cover the full width of the base area.

NOTE 108: It is implementation- and font-dependent how character flow objects are extended.

Each port shall accept flow objects of the same class as the port of a math-sequence flow object. The applicable characteristics are:

12.6.26.7. Fence Flow Object Class

The fence flow object describes a three-part area. The parts described are:

The fences should be extended according to the height of the base area.
NOTE 109: It is implementation- and font-dependent how this is achieved.

The flow object has the following ports:

The applicable characteristics are:

12.6.26.8. Fraction Flow Object Class

The fraction flow object class describes a three-part area. The parts described are:

The flow object has the following ports:

Each port shall accept flow objects of the same class as the port of a math-sequence flow object.

The applicable characteristics are:

12.6.26.9. Radical Flow Object Class

The radical flow object describes a three-part area. The parts described are:

The flow object has the following ports:

Each port shall accept flow objects of the same class as the port of a math-sequence flow object.

The applicable characteristics are:

12.6.26.10. Math-operator Flow Object Class

The math-operator flow object describes a four-part area. The parts described are:

The flow object has the following ports:

Each port shall accept flow objects of the same class as the port of a math-sequence flow object.

The applicable characteristics are:

12.6.26.11. Grid Flow Object Class

The grid flow object describes a series of areas arranged in a grid. The column-progression direction for the grid is the escapement direction, and the row-progression direction is the line-progression direction.

NOTE 111: A matrix is handled by enclosing a grid flow object in a fence flow object.

The flow object has a single principal port used for all content. It shall accept flow objects of the class grid-cell.

The applicable characteristics are:

12.6.26.12. Grid-cell Flow Object Class

The grid-cell flow object is a container for the content of each cell in a grid.

The flow object has a single principal port used for all content. It shall accept flow objects of the same class as the port of a math-sequence flow object.

The applicable characteristics are:

In any grid, there shall not be two or more grid cells that have both the same column-number: and the same row-number: characteristic.