This page describes the technical specification for the Radical Pie native file format. This information is provided for developers, and it is not necessary to know how any of this works in order to use Radical Pie.
The native file format used by Radical Pie is a text format that uses the syntax defined by the Open Data Description Language (OpenDDL). Equation data is written in this form to files with the .pie extension. The same text is embedded in the SVG, PDF, and EMF formats when they are saved by Radical Pie.
A Radical Pie equation is stored in the five sections shown in the following table, and they must occur in the order listed. Only the main equation group is required, and each of the other sections may be omitted in the case that they are empty.
Design Structures |
Drawing Structures |
Main Equation Group |
Annotation Equation Groups |
Drawing Structures |
The following table lists every type of structure that can appear in the .pie format. As indicated in the table, all of the structure types belong to one of four categories: equation structures, drawing structures, modifier structures, and a special connector structure.
The following properties are available for all structures in the equation category that generate visible graphics.
| Property | Type | Default | Description |
|---|---|---|---|
pi |
int32 |
0 | The palette index used by the structure. This must be in the range 0–15. |
co |
uint32 |
0xFF000000 |
The color of the structure as an ABGR value. The alpha component should always be 0xFF. |
The following properties are available for all structures in the drawing category.
| Property | Type | Default | Description |
|---|---|---|---|
f |
bool |
— | The fill flag. |
s |
bool |
— | The stroke flag. |
w |
uint8 |
0 | The stroke width index. This must be in the range 0–4. |
d |
uint8 |
0 | The stroke dash index. This must be in the range 0–3. |
fpi |
int32 |
0 | The fill palette index used by the structure. This must be in the range 0–15. |
fco |
uint32 |
0xFF000000 |
The fill color of the structure as an ABGR value. The alpha component should always be 0xFF. |
spi |
int32 |
0 | The stroke palette index used by the structure. This must be in the range 0–15. |
sco |
uint32 |
0xFF000000 |
The stroke color of the structure as an ABGR value. The alpha component should always be 0xFF. |
Al — Aligner StructureThe Al structure represents an aligner.
The properties listed in the following table may be specified for an Al structure.
| Property | Type | Default | Description |
|---|---|---|---|
al |
uint32 |
'left' |
The alignment of the expression preceding the aligner. This must be 'left', 'rght', or 'cent'. |
Ar — Arrow StructureThe Ar structure represents a big arrow.
The following structures compose the data stored inside an Ar structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
0 | 2 | An arrow structure may contain the following subgroups.
|
uint32 |
2 | 4 | Arrays containing information about the arrows and the charms attached to them. |
The first array of uint32 values contains the types of the arrows from top to bottom. The number of entries determines
how many arrows are drawn, and there must be one, two, or three entries. Each arrow type can be one of the following values.
| Value | Description |
|---|---|
'long' |
A full-length arrow. |
'left' |
A short arrow aligned left. |
'rght' |
A short arrow aligned right. |
'cent' |
A short arrow aligned center. |
An additional array of uint32 values follows the arrow type array for each of the one to three arrows specified.
Each of these arrays contains information about the charms belonging to the corresponding arrow. The values stored in these arrays
are a mixture of charm types and alignment specifiers that are processed in order. When the array is interpreted by Radical Pie,
the initial alignment is right, but values of 'left', 'rght', and 'cent' occurring in the
array change the current alignment. Each charm type occurring in the array causes a new charm of that type to be added to the arrow
at the position corresponding to the current alignment. Up to three charms can be specified for each of the left, right, and center
alignments. The charms placed at the left and center alignments stack from left to right, and the charms placed at the right alignment
stack from right to left.
The charm type can be one of the following values. Each type of charm is valid only for the positions on an arrow indicated by a bullet in the Left, Right, and Interior columns. The left position corresponds to the leftmost charm on the left end of an arrow, and the right position corresponds to the rightmost charm on the right end of an arrow. All other positions, including those belonging to the left and right ends of an arrow but not at the farthest extremes, are considered interior positions.
| Value | Left | Right | Interior | Description |
|---|---|---|---|---|
'larw' |
• | • | • | Arrow pointing left. |
'rarw' |
• | • | • | Arrow pointing right. |
'labr' |
• | Arrow pointing left to bar. | ||
'rabr' |
• | Arrow pointing right to bar. | ||
'luhp' |
• | Upward harpoon pointing left. | ||
'ruhp' |
• | Upward harpoon pointing right. | ||
'ldhp' |
• | Downward harpoon pointing left. | ||
'rdhp' |
• | Downward harpoon pointing right. | ||
'luhb' |
• | Upward harpoon pointing left to bar. | ||
'ruhb' |
• | Upward harpoon pointing right to bar. | ||
'ldhb' |
• | Downward harpoon pointing left to bar. | ||
'rdhb' |
• | Downward harpoon pointing right to bar. | ||
'barr' |
• | • | • | Bar. |
'line' |
• | • | • | Line. |
'dbln' |
• | • | • | Double line. |
'slsh' |
• | • | • | Slash. |
'dbsl' |
• | • | • | Double slash. |
'back' |
• | • | • | Backslash. |
'dbbk' |
• | • | • | Double backslash. |
'exxx' |
• | • | • | X. |
'circ' |
• | • | • | Open circle. |
'sdcr' |
• | • | • | Solid circle. |
'squa' |
• | • | • | Open square. |
'sdsq' |
• | • | • | Solid square. |
'diam' |
• | • | • | Open diamond. |
'sddm' |
• | • | • | Solid diamond. |
'ltri' |
• | • | • | Open left-pointing triangle. |
'sdlt' |
• | • | • | Solid left-pointing triangle. |
'rtri' |
• | • | • | Open right-pointing triangle. |
'sdrt' |
• | • | • | Solid right-pointing triangle. |
'luhk' |
• | Left upward hook. | ||
'ldhk' |
• | Left downward hook. | ||
'ruhk' |
• | Right upward hook. | ||
'rdhk' |
• | Right downward hook. | ||
'lfsh' |
• | Left fishtail. | ||
'rfsh' |
• | Right fishtail. | ||
'lulp' |
• | Left upward loop. | ||
'ldlp' |
• | Left downward loop. | ||
'rulp' |
• | Right upward looploop. | ||
'rdlp' |
• | Right downward loop. |
Bg — Begin StructureThe Bg structure specifies the beginning of a line within a group.
The properties listed in the following table may be specified for a Bg structure.
| Property | Type | Default | Description |
|---|---|---|---|
lg |
float |
−1.0 | The line gap preceding the begin structure, in math units. If this is negative, then the line gap defined by the equation design is used. |
Br — Bracket StructureThe Br structure represents a bracket.
The properties listed in the following table may be specified for a Br structure.
| Property | Type | Default | Description |
|---|---|---|---|
as |
bool |
false |
The asymmetric flag. |
ca |
bool |
false |
The center axis flag. |
The following structures compose the data stored inside a Br structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 9 | A bracket structure must contain at least one subgroup. For a multi-component bracket, groups should be listed in order from left to right. All groups should have the default group type. |
uint32 |
1 | 1 | An array of two or three Unicode character values for the left, right, and center parts of the bracket in that order. The center character should be omitted for single-component brackets. A value of zero specified for either the left or right character means the corresponding part of the bracket is not drawn. |
Bx — Box StructureThe Bx structure represents a box.
The properties listed in the following table may be specified for a Bx structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'full' |
The type of box. This must be one of the values listed below. |
The box type can be one of the following values.
| Value | Description |
|---|---|
'full' |
A full four-sided box. |
'lwlf' |
A box with bottom and left sides only. |
'lwrt' |
A box with bottom and right sides only. |
'uplf' |
A box with top and left sides only. |
'uprt' |
A box with top and right sides only. |
The following structures compose the data stored inside a Bx structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 1 | A box structure must contain a subgroup of the default type. |
Cn — Corner StructureThe Cn structure represents a corner drawing object.
The properties listed in the following table may be specified for a Cn structure.
| Property | Type | Default | Description |
|---|---|---|---|
v |
bool |
false |
The vertical flag. |
The following structures compose the data stored inside a Cn structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
X |
1 | 1 | Each drawing structure must contain a connector structure. |
D — Design StructureThe D structure contains a design specification.
The following structures compose the data stored inside a D structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
V |
0 | — | A value structure containing a design parameter. |
F |
0 | 15 | A font structure containing a font specification. |
M |
0 | 21 | A map structure containing a style mapping. |
P |
0 | 1 | A palette structure containing a palette specification. |
Dv — Division StructureThe Dv structure represents a long division.
The following structures compose the data stored inside a Dv structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 2 | A division structure may contain the following subgroups.
|
El — Ellipse StructureThe El structure represents an ellipse drawing object.
The following structures compose the data stored inside an El structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
X |
1 | 1 | Each drawing structure must contain a connector structure. |
En — Enclose StructureThe En structure represents an enclosure applied to a single symbol.
The properties listed in the following table may be specified for an En structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'circ' |
The type of enclosure. This must be 'circ', 'squa', or 'rdsq'. |
F — Font StructureThe F structure specifies a font in a design.
The properties listed in the following table may be specified for an F structure.
| Property | Type | Default | Description |
|---|---|---|---|
i |
int32 |
0 | The font index. This must be in the range 0–15. |
Fr — Fraction StructureThe Fr structure represents a fraction.
The properties listed in the following table may be specified for an Fr structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'vert' |
The type of fraction. This must be 'vert', 'horz', or 'diag'. |
sm |
bool |
false |
The small layout flag. This can be true only if the fraction type is 'vert' or 'diag'. |
at |
bool |
false |
The atop flag. This can be true only if the fraction type is 'vert'. |
The following structures compose the data stored inside an Fr structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
2 | 2 | A fraction structure must contain both of the following subgroups.
|
Gr — Group StructureThe Gr structure specifies a group within an equation.
The properties listed in the following table may be specified for a Gr structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
0 | The group type. |
al |
uint32 |
0 | The group horizontal alignment. |
ba |
uint32 |
'last' |
The group baseline alignment. |
as |
float |
1.0 | The adjustment scale. This must be greater than 0.0. |
ax |
float |
0.0 | The adjustment x offset (nudge), in math units. |
ay |
float |
0.0 | The adjustment y offset (nudge), in math units. |
The group type can be one of the following values.
| Value | Description |
|---|---|
| 0 | Main group. This type is used for the main equation as well as the primary subgroup for various mathematical structures. |
'anno' |
Annotation group. This type is used only for top-level groups containing annotation equations. |
'subs' |
Subscript group. This type applies only to a subgroup of the script structure. |
'sups' |
Superscript group. This type applies only to a subgroup of the script structure. |
'numr' |
Numerator group. This type applies only to a subgroup of the fraction structure. |
'dnom' |
Denominator group. This type applies only to a subgroup of the fraction structure. |
'degr' |
Degree group. This type applies only to a subgroup of the radical structure. |
'quot' |
Quotient group. This type applies only to a subgroup of the division structure. |
'mdfr' |
Modifier group. This type applies only to a subgroup of the iteration structure. |
'lowr' |
Lower limit group. This type applies to subgroups of the iteration structure, integral structure, stack structure, and arrow structure. |
'uppr' |
Upper limit group. This type applies to subgroups of the iteration structure, integral structure, stack structure, and arrow structure. |
'labl' |
Label group. This type applies only to a subgroup of the widemark structure. |
The following structures compose the data stored inside a Gr structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
| Equation | 0 | — | Groups may contain any number of structures in the equation category. |
Bg |
1 | — | The first substructure of every group must be a begin structure. |
X |
0 | 1 | An annotation group must contain a connector structure. |
In — Integral StructureThe In structure represents an integral.
The properties listed in the following table may be specified for an In structure.
| Property | Type | Default | Description |
|---|---|---|---|
sm |
bool |
false |
The small layout flag. |
il |
bool |
false |
The inline limits flag. |
kg |
bool |
false |
The keep glyph flag. |
gr |
bool |
false |
The grow integral flag. |
The following structures compose the data stored inside an In structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 3 | An integral structure may contain the following subgroups.
|
uint32 |
0 | 1 | The Unicode value of the integral character. If this is omitted, then the default value of 0x222B is used. |
It — Iteration StructureThe It structure represents an iteration.
The properties listed in the following table may be specified for an It structure.
| Property | Type | Default | Description |
|---|---|---|---|
sm |
bool |
false |
The small layout flag. |
il |
bool |
false |
The inline limits flag. |
The following structures compose the data stored inside an It structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 4 | An iteration structure may contain the following subgroups.
|
uint32 |
0 | 1 | The Unicode value of the iteration character. If this is omitted, then the default value of 0x2211 is used. |
Jo — Joist StructureThe Jo structure represents a joist drawing object.
The properties listed in the following table may be specified for a Jo structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'brac' |
The joist type. This must be one of the values listed below. |
os |
uint32 |
0 | The start offset type for the line. This must be one of the values listed for the Line structure. |
of |
uint32 |
0 | The finish offset type for the line. This must be one of the values listed for the Line structure. |
The joist type can be one of the following values.
| Value | Description |
|---|---|
'brac' |
A brace. |
'brck' |
A square bracket. |
'shel' |
A tortoise shell bracket. |
The following structures compose the data stored inside a Jo structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
X |
1 | 1 | Each drawing structure must contain a connector structure. |
Kt — Strike StructureThe Kt structure represents a strike.
The properties listed in the following table may be specified for a Kt structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'horz' |
The type of strike. This must be one of the values listed below. |
The strike type can be one of the following values.
| Value | Description |
|---|---|
'horz' |
A horizontal strike. |
'lwup' |
A diagonal strike from the lower left to the upper right. |
'uplw' |
A diagonal strike from the upper left to the lower right. |
'exxx' |
Two diagonal strikes forming an X. |
The following structures compose the data stored inside a Kt structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 1 | A strike structure must contain a subgroup of the default type. |
Ln — Line StructureThe Ln structure represents a line drawing object.
The properties listed in the following table may be specified for an Ln structure.
| Property | Type | Default | Description |
|---|---|---|---|
es |
uint32 |
0 | The start endpoint type for the line. This must be one of the values listed below. |
ef |
uint32 |
0 | The finish endpoint type for the line. This must be one of the values listed below. |
os |
uint32 |
0 | The start offset type for the line. This must be one of the values listed below. |
of |
uint32 |
0 | The finish offset type for the line. This must be one of the values listed below. |
Each endpoint type can be one of the following values.
| Value | Description |
|---|---|
| 0 | No endpoint. |
'sdcr' |
A solid circle. |
'sdsq' |
A solid square. |
'wedg' |
A wedge. |
'arr1' |
An arrow of type 1. |
'arr2' |
An arrow of type 2. |
Each offset type can be one of the following values.
| Value | Description |
|---|---|
| 0 | No offset. The line ends exactly at the anchor. |
'long' |
A long offset. This overshoots the anchor. |
'shrt' |
A short offset. This undershoots the anchor. |
The following structures compose the data stored inside a Ln structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
X |
1 | 1 | Each drawing structure must contain a connector structure. |
M — Map StructureThe M structure specifies a style mapping in a design.
The properties listed in the following table may be specified for an M structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
— | The style type. This must be one of the style values listed for the symbol structure. |
Mk — Mark StructureThe Mk structure represents a mark applied to a single symbol.
The properties listed in the following table may be specified for an Mk structure.
| Property | Type | Default | Description |
|---|---|---|---|
un |
bool |
false |
The under flag. |
The following structures compose the data stored inside an Mk structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
uint32 |
1 | 1 | The Unicode value of the mark character. |
Mx — Matrix StructureThe Mx structure represents a matrix.
The properties listed in the following table may be specified for an Mx structure.
| Property | Type | Default | Description |
|---|---|---|---|
r |
int32 |
— | The number of rows in the matrix. This must be in the range 1–32. The number of rows and number of columns cannot both be 1. |
c |
int32 |
— | The number of columns in the matrix. This must be in the range 1–32. The number of rows and number of columns cannot both be 1. |
al |
uint32 |
'cent' |
The default entry alignment. This must be 'cent', 'left', or 'rght'. |
mb |
bool |
false |
The middle baseline flag. |
eh |
bool |
false |
The equal row heights flag. |
ew |
bool |
false |
The equal column widths flag. |
rg |
bool |
false |
The outer row gap flag. |
cg |
bool |
false |
The outer column gap flag. |
The following structures compose the data stored inside an Mx structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
2 | 1024 | There must be one subgroup with the default type for each matrix entry. Entries are listed in column-major order. |
Ng — Negate StructureThe Ng structure represents a negation applied to a single symbol.
The properties listed in the following table may be specified for an Ng structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'frwd' |
The type of negation. This must be 'frwd', 'bkwd', or 'vert'. |
P — Palette StructureThe P structure specifies a color palette in a design.
Ph — Phantom StructureThe Ph structure represents a phantom.
The properties listed in the following table may be specified for a Ph structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'vert' |
The type of phantom. This must be one of the values listed below. |
The phantom type can be one of the following values.
| Value | Description |
|---|---|
'vert' |
A phantom with vertical extent but no horizontal extent. |
'horz' |
A phantom with horizontal extent but no vertical extent. |
'full' |
A phantom with both horizontal and vertical extent. |
'hzov' |
A phantom with horizontal extent but no vertical extent. Structures that follow the phantom overlap the same horizontal space. |
'flov' |
A phantom with both horizontal and vertical extent. Structures that follow the phantom overlap the same horizontal space. |
Pr — Prime StructureThe Pr structure represents a prime mark applied to the preceding structure.
The properties listed in the following table may be specified for a Pr structure.
| Property | Type | Default | Description |
|---|---|---|---|
nb |
bool |
false |
The disable bold flag. |
The following structures compose the data stored inside an Pr structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
uint32 |
0 | 1 | The Unicode value of the prime character. If this is omitted, then the default value of 0x2032 is used. |
Rd — Radical StructureThe Rd structure represents a radical.
The properties listed in the following table may be specified for an Rd structure.
| Property | Type | Default | Description |
|---|---|---|---|
ns |
bool |
false |
The disable slant kerning flag. |
The following structures compose the data stored inside an Rd structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 2 | A radical structure may contain the following subgroups.
|
Rr — Rounded Rectangle StructureThe Rr structure represents a rounded rectangle drawing object.
The properties listed in the following table may be specified for an Rr structure.
| Property | Type | Default | Description |
|---|---|---|---|
r |
uint8 |
0 | The radius index. This must be in the range 0–2. |
The following structures compose the data stored inside an Rr structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
X |
1 | 1 | Each drawing structure must contain a connector structure. |
Rt — Rectangle StructureThe Rt structure represents a rectangle drawing object.
The following structures compose the data stored inside an Rr structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
X |
1 | 1 | Each drawing structure must contain a connector structure. |
Sb — Symbol StructureThe Sb structure represents a general symbol in a mathematical expression.
The properties listed in the following table may be specified for an Sb structure.
| Property | Type | Default | Description |
|---|---|---|---|
ro |
uint32 |
'math' |
The role of the symbol. This must be one of the values listed below. |
st |
uint32 |
0 | The style of the symbol. If this value is 0, then the style is set to the default for the role. Otherwise, this must be one of the values listed below. |
ns |
bool |
false |
The disable mark slant flag. |
nb |
bool |
false |
The disable mark bold flag. |
The role can be one of the following values.
| Role Value | Description |
|---|---|
'math' |
A mathematical symbol such as a variable or symbol that does not fall under any other role. |
'chem' |
A chemical element. |
'text' |
General text. |
'func' |
A standard function name such as cos or log. |
'unit' |
Physical units. |
'nmbr' |
A literal number. |
'oper' |
A binary operator. |
'rltn' |
A binary relation. |
'arrw' |
An arrow. |
'unry' |
A unary operator. |
'pnct' |
Punctuation. |
'elps' |
An ellipsis. |
The style can be one of the following values. The default style is 'uprt' for all roles except 'math',
'oper', and 'rltn'. The default role for the 'math' role is 'ital', and the
default style for the 'oper' and 'rltn' roles is 'sym1'.
| Style Value | Description |
|---|---|
'uprt' |
Upright. |
'ital' |
Italic. |
'bold' |
Bold. |
'bitl' |
Bold italic. |
'grek' |
Greek upright. |
'itgk' |
Greek italic. |
'bdgk' |
Greek bold. |
'bigk' |
Greek bold italic. |
'scpt' |
Script. |
'bdsc' |
Bold script. |
'frkt' |
Fraktur. |
'bdfk' |
Bold fraktur. |
'doub' |
Double-struck. |
'sans' |
Sans-serif upright. |
'itsn' |
Sans-serif italic. |
'dbsn' |
Sans-serif bold. |
'bisn' |
Sans-serif bold italic. |
'sym1' |
Symbol 1. |
'sym2' |
Symbol 2. |
'nary' |
Iteration symbol. |
'gral' |
Integral symbol. |
The following structures compose the data stored inside an Sb structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
string |
1 | 1 | The text characters belonging to the symbol. This must not be the empty string. |
Mk |
0 | — | Mark structures are substructures of the symbol to which they are applied. |
Ng |
0 | — | Negate structures are substructures of the symbol to which they are applied. |
Sl |
0 | — | Slash structures are substructures of the symbol to which they are applied. |
En |
0 | 1 | Enclose structures are substructures of the symbol to which they are applied. |
Sc — Script StructureThe Sc structure represents a subscript, superscript, or combination of both.
The properties listed in the following table may be specified for an Sc structure.
| Property | Type | Default | Description |
|---|---|---|---|
pr |
bool |
false |
The preceding script flag. |
ow |
bool |
false |
The outward alignment flag. |
ns |
bool |
false |
The disable slant kerning flag. |
The following structures compose the data stored inside an Sc structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 2 | A script structure must contain one or both of the following subgroups.
|
Sl — Slash StructureThe Sl structure represents a slash applied to a single symbol.
The properties listed in the following table may be specified for an Sl structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'frwd' |
The type of slash. This must be 'frwd' or 'bkwd'. |
Sp — Space StructureThe Sp structure represents a mathematical space.
The properties listed in the following table may be specified for an Sp structure.
| Property | Type | Default | Description |
|---|---|---|---|
s |
float |
0.0 | The space width, in math units. This must be a nonnegative value. |
t |
bool |
false |
The tabular space flag. |
St — Stack StructureThe St structure represents a stack.
The properties listed in the following table may be specified for an St structure.
| Property | Type | Default | Description |
|---|---|---|---|
sm |
bool |
false |
The small layout flag. |
The following structures compose the data stored inside an St structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 3 | A stack structure may contain the following subgroups.
|
V — Value StructureThe V structure specifies a value in a design.
The properties listed in the following table may be specified for a V structure.
| Property | Type | Default | Description |
|---|---|---|---|
d |
uint32 |
0 | The domain for the value. This must be one of the values listed below. |
n |
uint32 |
— | The name of the value. This must specify a value that exists in the domain. |
The domain type can be one of the following values.
| Value | Description |
|---|---|
| 0 | Common settings. |
'symb' |
Symbol settings. |
'mark' |
Mark settings. |
'brck' |
Bracket settings. |
'scpt' |
Script settings. |
'frac' |
Fraction settings. |
'rdcl' |
Radical settings. |
'divs' |
Division settings. |
'wide' |
Widemark settings. |
'stck' |
Stack settings. |
'boxx' |
Box settings. |
'strk' |
Strike settings. |
'arrw' |
Arrow settings. |
'chrm' |
Charm settings. |
'iter' |
Iteration settings. |
'intg' |
Integral settings. |
'mtrx' |
Matrix settings. |
'line' |
Line settings. |
'jost' |
Joist settings. |
'shap' |
Shape settings. |
'anno' |
Annotation settings. |
Wm — Widemark StructureThe Wm structure represents a wide mark.
The properties listed in the following table may be specified for a Wm structure.
| Property | Type | Default | Description |
|---|---|---|---|
t |
uint32 |
'line' |
The type of widemark. This must be one of the values listed below. |
un |
bool |
false |
The under flag. |
sm |
bool |
false |
The small layout flag. |
The widemark type can be one of the following values.
| Value | Description |
|---|---|
'line' |
Horizontal line. |
'dlin' |
Double horizontal line. |
'what' |
Hat. |
'chck' |
Check. |
'smil' |
Smile. |
'frwn' |
Frown. |
'tild' |
Tilde. |
'brck' |
Bracket. |
'brac' |
Brace. |
'shel' |
Tortoise shell. |
'larw' |
Arrow pointing left. |
'rarw' |
Arrow pointing right. |
'barw' |
Arrow pointing both left and right. |
'luhp' |
Upward harpoon pointing left. |
'ruhp' |
Upward harpoon pointing right. |
'buhp' |
Upward harpoon pointing both left and right. |
'ldhp' |
Downward harpoon pointing left. |
'rdhp' |
Downward harpoon pointing right. |
'bdhp' |
Downward harpoon pointing both left and right. |
The following structures compose the data stored inside a Wm structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
Gr |
1 | 2 | A widemark structure may contain the following subgroups.
|
X — Connector StructureThe X structure connects a node to one or more anchors.
The following structures compose the data stored inside an Ar structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
ref |
1 | 1 | References to the nodes containing the anchors. |
uint32 |
1 | 1 | The types of the anchors. |
int32 |
1 | 1 | The indexes of the anchors. |
float |
0 | 1 | The relative offsets for rail anchors. |
The anchor type can be one of the following values.
| Value | Description |
|---|---|
| 0 | Main anchor. This type applies to all structures in the equation category except group, aligner, and phantom. |
'cent' |
Center anchor. This type applies to all structures in the equation category except group, begin, aligner, and phantom. |
'axis' |
Math axis anchor. This type applies only to top-level group structures. |
'lmnl' |
Liminal anchor. This type applies only to top-level group structures. |
'xxx!' |
Horizontal rail anchor. This type applies only to top-level group structures. |
'yyy!' |
Vertical rail anchor. This type applies only to top-level group structures. |
'mtrx' |
Matrix anchor. This type applies only to matrix structures. |
'cell' |
Cell anchor. This type applies only to matrix structures. |
'mrow' |
Row anchor. This type applies only to matrix structures. |
'mcol' |
Column anchor. This type applies only to matrix structures. |
'orow' |
Outer row anchor. This type applies only to matrix structures. |
'ocol' |
Outer column anchor. This type applies only to matrix structures. |
'lrow' |
Liminal row anchor. This type applies only to matrix structures. |
'lcol' |
Liminal column anchor. This type applies only to matrix structures. |
'bord' |
Border anchor. This type applies only to top-level group structures. |
'line' |
Line anchor. This type applies only to line structures. |
'edge' |
Edge anchor. This type applies only to rectangle structures, rounded rectangle structures, and ellipse structures. |
'jost' |
Joist anchor. This type applies only to joist structures. |
'anno' |
Annotation anchor. This type applies to all structures in the drawing category and group structures of type 'anno'. |
Zg — Zigzag StructureThe Zg structure represents a zigzag drawing object.
The properties listed in the following table may be specified for a Zg structure.
| Property | Type | Default | Description |
|---|---|---|---|
v |
bool |
false |
The vertical flag. |
The following structures compose the data stored inside a Zg structure.
| Substructure | Min | Max | Description |
|---|---|---|---|
X |
1 | 1 | Each drawing structure must contain a connector structure. |