MML Statements


An MML file consists of markup statements and document text. Markup statements begin with a left angle bracket (<) and end with a balancing right angle bracket (>). For example, <Section> signals the beginning of a new section, while <Family Times> switches fonts. Case is not significant in statement names, so <FaMiLy Times> would work as well.

All text outside angle brackets is document text. within document text, adjacent nonblank lines are considered to be in the same paragraph; blank lines separate paragraphs. <Paragraph> markup statements can also signal paragraph boundaries. (See Paragraph statements.)

If the text contains a left or right angle bracket character (that is, one that should appear in the FrameMaker document instead of beginning or ending a markup statement), a backslash character must precede the angle bracket (for example, \< or \>).

MML file structure

An MML file can contain the following sections, in this order:

SectionContains
MML identification lineAn <MML> statement identifying the file as an MML file.
Format DefinitionsA series of statements which supply the names of externally maintained format files which are to be included in your document.
Macro Definition<!DefineMacro> and <!DefineChar> statements that define simple macros used in subsequent markup statements.
Font Definition<!DefineFont> and <!DefineFTag> statements that define named sets of font attributes for use within document text and other markup statements.
Paragraph Format Definition<!DefinePar> and <!DefineTag> statements that define paragraph formats.
Table Format Definition<!DefineTable> and <!DefineTTag> statements that define table formates.
Rule Format Definition<!DefineRule> statements that define rule formats.
Variable Definitions<!DefineVar> that provide substitution values for any variables which are used in the text portion of the document.
Document LayoutDocument layout statements that define document properties.
Document TextASCII characters along with font, special character, anchored frame, markers, cross-references and paragraph-related markup statements. the first text character outside a markup statement signals the beginning of the document text section.
All sections except the Document Text section are optional. For information about which sections to include in an MML file, see Using MML to create FrameMaker documents.

Markup statement overview

The general format of a markup statement is:

< StatementName OptionalDataItems >

The following conventions are used to describe the format of data items:

charA single character (or a backslash equivalent, such as \t for tab).
stringAny sequence of characters enclosed by double quotation marks ("abc"). To use double quotation marks in a string, type \"
commentstringAny sequence of characters.
nameA simple alphanumeric string starting with a nonspace character and ending with a space or >.
numberAn integer.
booleanYes, No, Y, or N. Case is not significant.
meansureA real number, which may contain a decimal point and digits to the right of the decimal point, followed by an optional unit of meansurement: " (for inch), pt, cm, mm, or pica.
unitinch, in, cm, mm, pica, pc, or pt.
lrcdleft, l, right, r, center, c, leftright, lr, decimal, or d.

Control and macro statements

You use control and macro statements to set up your MML file. the following statements (except for the <MML> statement) can appear anywhere in the file.

<MML commentstring>
All MML files must begin with an <MML> statement.

<Comment commentstring>
Places comments in the MML file. the comment string is ignored when the file is read.

<!DefineMacro name string>
Replaces all occurrences of the newly defined statement name with the string. Note that string is rescanned each time name is encountered. For example, suppose your text editor does not give you a way to type the Yen symbol. You can use the statement <!DefineMacro Yen "<Character \\xB4 >"> to define a new MML statement, <Yen>, that represents the FrameMaker Yen character (0xB4). When you import or open your document in FrameMaker, MML replaces each <Yen> statement with a Yen character.

Important: MML uses a backslash (\) in place of the initial 0 in the character code. tdus the MML representation of the character 0xB4 is \xB4.

<!DefineChar char string>
Works like <DefineMacro>, except that char is any single character and is not in angle brackets (< >). Use this statement to remap character codes for foreign and other special keyboards. For instance, suppose that the Yen symbol is represented by character code 0xFE in the MML file, but FrameMaker considers character 0xB4 to be the Yen symbol. this statement:

<!DefineChar \xFE "<Character \\xB4 >" >

causes MML to turn all 0xFE's into Yens for FrameMaker.

<Include string>
Reads the file named in string as MML input. If the include filename is not a full patdname (one that starts with / or ~), the mmltomif program has a number of options to control where it searches for the include file. When you open or import an MML file as a FrameMaker document, mmltomif searches for include files in the directory containing the MML file being processed. You can also run mmltomif directly to access other include file options. For more information, see Appendix D of FrameMaker Reference.

<Units unit>
Establishes default units for all meansurements. If a <Units> statement appears in the file, it must come before the font definitions section. (Default = inch.)

<!Alias newname currentname>
Creates a new statement name that is a synonym for an existing statement name. For example, you could define the synonym <!Alias !MD !DefineMacro> and then define the macro <!MD bi "<Bold><Italic>">. You could then use <bi> within the document text to set the current font to bold italic.

<EndOfInput>
Ignores all remaining text in the MML file. Use <EndOfInput> to debug an MML file or to temporarily modify an MML file so that FrameMaker reads only part of it.

<Message string>
Prints the specified string in the shell window where FrameMaker was started. Use <Message> to debug an MML file.

Format Definitions

MML format definition statements allow you to supply names of externally maintained format definition files. these files must be in MIF (Maker Interchange Format) format. the various files are included in your document at the appropriate location. Because the files are in MIF format, you should be very familiar with coding MIF before attempting to use this feature. the feature is intended for use in high volume conversion situations where the user does not have a version of FMBatch (such as the MacIntosh environment) available to allow importing of files into predefined formats. these statements may be in any order but must appear after the MML identification line and before the font definition section.

<PgfInclude name>
Specifies the name of an MIF file containing paragraph definitions that are to be automatically merged into this document as it is converted. the format of the name portion of the statement is dependent on your particular operating environment. Do not include the <PgfCatalog> statement in your MIF file since one is supplied by the program.

<FontInclude name>
Specifies the name of an MIF file containing font definitions that are to be automatically merged into this document as it is converted. the format of the name portion of the statement is dependent on your particular operating environment. Do not include the <FontCatalog> statement in your MIF file since one is supplied by the program.

<VarInclude name>
Specifies the name of an MIF file containing variable formats that are to be automatically merged into this document as it is converted. the format of the name portion of the statement is dependent on your particular operating environment. Do not include the <VariableFormats> statement in your MIF file since one is supplied by the program.

<XRefInclude name>
Specifies the name of an MIF file containing cross-reference formats that are to be automatically merged into this document as it is converted. the format of the name portion of the statement is dependent on your particular operating environment. Do not include the <XRefFormats> statement in your MIF file since one is supplied by the program.

<PageInclude name>
Specifies the name of an MIF file containing page formats that are to be automatically merged into this document as it is converted. the format of the name portion of the statement is dependent on your particular operating environment. If you supply this statement you must also supply a <TextInclude> statement.

<TextInclude name>
Specifies the name of an MIF file containing page header text that is to be automatically merged into this document as it is converted. the format of the name portion of the statement is dependent on your particular operating environment. If you supply this statement you must also supply a <PageInclude> statement.

Font statements

MML font statements provide character format control similar to the control provided by the FrameMaker Character command.

Most of the font statements can appear in the Font Definition, Paragraph Format Definition, Document Layout, and Document Text sections of an MML file. However, <!DefineFont> can appear only in the Font Definition section.

<family name>
Changes font family. the PostScript® font families included with FrameMaker are Courier, Times®, Helvetica®, Symbol, AvantGarde®, Bookman®, New Century Schoolbook, Palatino®, ZapfChancery®, and ZapfDingbats®. Case is significant in the family name. the complete list of family names comes from a configuration file. (See Appendix D of FrameMaker Reference.) (Default = Times.)

<italic>
<noitalic>
<bold>
<nobold>
<underline>
<nounderline>
<strike>
<nostrike>
<oblique>
<nooblique>
<overline>
<nooverline>
<changebar>
<nochangebar>

These statements turn on and off various font styles.

<plain>
Same as <nobold> <noitalic> <nounderline> <nostrike> <nooverline> <nochangebar>. (Default style = plain.)

<superscript>
<subscript>
<normal>

These statements change the relative position of the text baseline. they work like the other font properties. For example:

e<superscript>i*pi<normal>=-1 

gives

ei*pi=-1

<pts number>
Changes font size. For example, <pts 10> changes to 10pt. (Default = 12.)

<!DefineFont name fontstatements>
Defines a character format. It executes the list of fontstatements (the statements defined in this section) and then establishes the current font properties as the character format. For examples of <!DefineFont> and its use, see Appendix A, Samples.

The character formats you define in an MML file are used to indicate font changes for words and phrases. However, they do not correspond to the formats stored in a document's Character Format Catalog.

Paragraph statements

MML's paragraph statements provide paragraph formatting control similar to the control provided by the FrameMaker Paragraph command.

Most paragraph statements can appear within the Paragraph Format Definition section and between paragraphs in the Document Text section. Exceptions are <!DefinePar> and <!DefineFTag>, which can appear only in the Paragraph Format Definition section.

<par>
Ends a paragraph. the current font properties and paragraph settings remain in effect. Two or more consecutive new lines act as a <par> statement. A new paragraph begins only when a real character is seen. the <par> statement is most useful within macro definitions.

<LeftIndent measure>
Changes the paragraph left indent. Only the value in effect at the start of the paragraph text affects that paragraph. (Default = 0".)

<RightIndent measure>
Changes the paragraph right indent. Only the value in effect at the start of the paragraph text affects that paragraph. (Default = 0".)

<FirstIndent measure>
Sets the left indent for the first line of a paragraph. (Default = .25".)

<SpaceBefore measure>
Sets the white space above the paragraph. Usually specified in points, as in 6pt. (Default = 0pt.)

<SpaceAfter measure>
Sets the white space below the paragraph. (Default = 0pt.)

<Leading measure>
Determines the space between lines within the paragraph. (Default = 2pt.)

Important: <SpaceBefore>, <SpaceAfter>, and <Leading> values are assumed to be in the current default unit, not necessarily in points. If you specify <Leading 2>, this means 2 units in the current default unit, which is usually inches. So <Leading 2> would put 2 inches of leading between each line.

<LineSpacing fixed | proportional | floating>
Sets the line spacing calcualtion metdod. Fixed sets line spacing according to paragarph font. Proportional sets line spacing according to the largest font in the line. Floating sets line spacing according to the largest ascender in the line(Default = fixed.)

<Alignment lrc>
Sets the alignment of paragraph lines: left (l), right (r), center (c), or left and right (lr). (Default = lr.)

<Language string>
Hyphenation and spell checking language (Default = "NoLanguage".)

<AutoNumber boolean>
Sets automatic numbering of paragraphs. If <AutoNumber Yes> is specified, there must also be a valid <NumberFormat> string. (Default = No.)

<NumberFormat string>
Determines the numbering format for paragraphs that are automatically numbered. Ignored unless <AutoNumber Yes> is specified. (Default = " ".)

MML version 2.0 now supports the paragraph number formats of version 2.0 of FrameMaker

<NumberFont string>
Determines the font of the numbering format for paragraphs that are automatically numbered. Ignored unless <AutoNumber Yes> is specified. (Default = " ".) Must be a font tag from the font catalog.

<NumAtEnd boolean>
Place paragraph number at end of line instead of beginning.

<Hyphenate boolean>
Turns automatic hyphenation on (Yes) or off (No). (Default = No.)

<ColumnTop boolean>
Sets the starting place for the paragraph on the page. If <ColumnTop Yes> is specified, the paragraph starts at the top of a column; otherwise it starts anywhere. (Default = No.)

<WithNext boolean>
Determines whether or not to keep the paragraph in the same column as the beginning of the next paragraph. (Default = No.)

<WithPrevious boolean>
Determines whether or not to keep the paragraph in the same column as the ending of the previous paragraph. (Default = No.)

<Tolerance number>
Specifies the maximum number of adjacent lines that may be hyphenated. (Default = 4.)

<Blocksize number>
Specifies the minimum number of widow and orphan lines. (Default = 1.)

<TabStopType lrcd>
Establishes the tab type for all subsequently defined tab stops until the next <TabStopType> statement: left (l), right (r), center (c), or decimal (d). (Default = l.)

<TabStopLeader char>
Establishes the tab leader character for all subsequently defined tab stops until the next <TabStopLeader> statement. (Default = " ".)

<TabStops <TabStop dimension> <TabStop dimension> >
Defines a set of tab stops. Each <TabStop> substatement sets a tab stop at the position indicated. the tab type and associated leader character are determined by the most recent <TabStopType> and <TabStopLeader> statements, which may be freely intermingled among the <TabStops> substatements.

To clear all tabs, use an empty tab stop list: <TabStops>.

<CellAlignment Top | Middle | Bottom>
When the paragraph is used within a table cell specifies the vertical alignment of the paragraph when the paragraph is the first paragraph within the cell.

<CellMargins L R T B>
When the paragraph is used within a table cell specifies width of default cell margis in a table.

<CellLMarginFixed boolean>
When the paragraph is used within a table cell specifies relationship of the left cell margin for this paragraph with the left cell margin given in the table definition. Yes means width of left cell margin is relative to <TCellMargins>given in the table definition; No means width of left cell margin overrides <CellMargins> given in the table definition.

<CellTMarginFixed boolean>
When the paragraph is used within a table cell specifies relationship of the top cell margin for this paragraph with the top cell margin given in the table definition. Yes means width of top cell margin is relative to <TCellMargins>given in the table definition; No means width of top cell margin overrides <CellMargins> given in the table definition.

<CellRMarginFixed boolean>
When the paragraph is used within a table cell specifies relationship of the right cell margin for this paragraph with the right cell margin given in the table definition. Yes means width of right cell margin is relative to <TCellMargins>given in the table definition; No means width of right cell margin overrides <CellMargins> given in the table definition.

<CellBMarginFixed boolean>
When the paragraph is used within a table cell specifies relationship of the bottom cell margin for this paragraph with the bottom cell margin given in the table definition. Yes means width of bottom cell margin is relative to <TCellMargins>given in the table definition; No means width of bottom cell margin overrides <CellMargins> given in the table definition.

<!DefinePar name parstatements>
Executes the list of parstatements (the statements defined in this section) and then establishes the current paragraph settings as a named paragraph format.

When FrameMaker opens or imports an MML document, the resulting FrameMaker document contains a Catalog entry for each paragraph format defined in the MML file using <!DefinePar> statements. When an MML paragraph whose format is name is brought into FrameMaker, its tag is name. For examples of the <!DefinePar> statement and its use, see Appendix A, Samples.

<!DefineTag name>
Establishes a paragraph format name like <!DefinePar>. However, unlike <!DefinePar>, <!DefineTag> does not generate a Paragraph Format Catalog entry when the MML document is brought into FrameMaker.

Use <!DefineTag> when you intend to import an MML file into a FrameMaker
document that already has the Paragraph Format Catalog set up. When an MML paragraph preceded by a <!DefineTag> statement is brought into FrameMaker, the document's Paragraph Format Catalog is searched for a format with a matching tag. If such a format exists, the paragraph's format is set to match the corresponding format in the Catalog.

Important: MML tags cannot have a space in them (although tag names in FrameMaker can).

RuleInclude statements

MML's rule statements provide rule formatting control similar to the control provided by the FrameMaker Rule command.

Rule statements can appear only within the rule Format Definition.

<RulePenwidth measure>
Ruling line tdickness. (Default = 1pt.)

<RuleGap measure>
Gap between double ruling lines. (Default = 0pt.)

<RuleSeperation number>
Specifies spot color of the ruling line. (Default = 0.)

<RulePen number>
Specifies pen pattern of the ruling line. (Default = 0.)

<RuleLines number>
Specifies number of lines in the rule. (0 = none) (1 = single) (2 = double) (Default = 1.)

<!DefineRule name rulestatements>
Executes the list of rulestatements (the statements defined in this section) and then establishes the current rule settings as a named rule format.

When FrameMaker opens or imports an MML document, the resulting FrameMaker document contains a Catalog entry for each rule format defined in the MML file using <!DefineRule> statements. When an MML rule whose format is name is brought into FrameMaker, its tag is name. For examples of the <!DefineRule> statement and its use, see Appendix A, Samples.

<!DefineRTag name>
Establishes a rule format name like <!DefineRule>. However, unlike <!DefineRule>, <!DefineRTag> does not generate a Rule Format Catalog entry when the MML document is brought into FrameMaker.

Use <!DefineRTag> when you intend to import an MML file into a FrameMaker
document that already has the Rule Format Catalog set up. When an MML rule preceded by a <!DefineRTag> statement is brought into FrameMaker, the document's rule Format Catalog is searched for a format with a matching tag. If such a format exists, the rule's format is set to match the corresponding format in the Catalog.

Important: MML tags cannot have a space in them (although tag names in FrameMaker can).

Variable Definitions

This statement allows the user to supply substitution values to be used whenever a particular variable is encountered in the text of the document. Remember FrameMaker allows you to set the value of a variable only once per document unlike some document processors which allow the value of variable to change constantly tdroughout the document.

<!DefineVar variableSubstatements>
Use the following <variable> substatements to describe the variable's settings:
<VariableName string>Specifies the variable name.
<VariableDef string>Specifies the variable substitution text.
the variable statement is actually in MIF format. For more information, see the variable command in Chapter 1 of FrameMaker Reference.

Table statements

MML's table statements provide table formatting control similar to the control provided by the FrameMaker Table command.

Most table statements can appear within the Table Format Definition section and between table entities in the Document Text section. Exceptions are <!DefineTbl>, and <!DefineTTag>, which can appear only in the Table Format Definition section. the sequence of <!DefineTbl> and <!DefineCol> statements is important because many of the <!DefineTbl> substatements make reference to column numbers and the MMLtoMIF program edits that the column numbers used are valid. the proper sequence is a follows:
<!DefineTbl> statement
<!DefineCol> statement
<!DefineCol> substatements
<!DefineCol> statements repeated as required until all columns defined
<!DefineTbl> substatements

There are also a number of statements which control the placement of tables within the document itself and the placement of text within the table. these statements are described in ``Document text statements'' later in this chapter.

<!DefineCol num colstatements>
Executes the list of tclstatements (the statements defined in this section) and then establishes the current column settings as a column number provided.

<Columnwidth measure>
Width of the current column.

<ColumnwidthP number>
Specifies that the width of the current column is proportional to the width of the remaining colums in the table. Number is a ratio compared to the other columns. For example a series of columns with ColumnwidthP values of 1 2 2 were a part of a table with an overall width of 10 inches then the first column would be 2 inches wide, the second and tdird 4 inches.

<Tblwidth measure>
Width of the table. Used as a part of the ColumnwidthP calculation. See MIF Reference for more information on calculating table and column widths.

<ColumnwidthA measure measure>
Width of the table. Used as a part of the ColumnwidthP calculation. Sets a minimum and maximum withtd for the calculated column width. See MIF Reference for more information on calculating table and column widths.

<ColumnScalable boolean>
Indicates whether column can be rescaled when the document is initially read into FrameMaker. See MIF Reference for more information on calculating table and column widths. (Default = No.)

<ColumnH name>
The name of the paragraph that is to be used to format the contents of the column heading. the paragraph must have been previously defined with a <!DefinePar> or <!DefineTag> statement. the ColumnH statement may be furthered modified by following it with any of the paragraph format statements: <LeftIndent measure>
<RightIndent measure>
<FirstIndent measure>
<SpaceBefore measure>
<SpaceAfter measure>
<Leading measure>
<LineSpacing fixed | proportional | floating>
<Alignment lrc>
<Language string>
<AutoNumber boolean>
<NumberFormat string>
<NumberFont string>
<NumAtEnd boolean>
<Hyphenate boolean>
<ColumnTop boolean>
<withNext boolean>
<withPrevious boolean>
<Tolerance number>
<BlockSize number>
<TabStopType lrcd>
<TabStopLeader char>
<TabStops <TabStop dimension> <TabStop dimension> >
<Cell Alignment Top | Middle | Bottom>
<TCellMargins L R T B>
<CellLMarginFixed boolean>
<CellTMarginFixed boolean>
<CellRMarginFixed boolean>
<CellBMarginFixed boolean>

See discussion under paragraph format statements for a more detailed explanation of the preceeding statements.

<ColumnBody name>
The name of the paragraph that is to be used to format the contents of the column body cells. The paragraph must have been previously defined with a <!DefinePar> or <!DefineTag> statement. The ColumnBody statement may be furthered modified by following it with any of the paragraph format statements:
<LeftIndent measure>
<RightIndent measure>
<FirstIndent measure>
<SpaceBefore measure>
<SpaceAfter measure>
<Leading measure>
<LineSpacing fixed | proportional | floating>
<Alignment lrc>
<Language string>
<AutoNumber boolean>
<NumberFormat string>
<NumberFont string>
<NumAtEnd boolean>
<Hyphenate boolean>
<ColumnTop boolean>
<withNext boolean>
<withPrevious boolean>
<Tolerance number>
<BlockSize number>
<TabStopType lrcd>
<TabStopLeader char>
<TabStops <TabStop dimension> <TabStop dimension> >
<Cell Alignment Top | Middle | Bottom>
<TCellMargins L R T B>
<CellLMarginFixed boolean>
<CellTMarginFixed boolean>
<CellRMarginFixed boolean>
<CellBMarginFixed boolean>

See discussion under paragraph format statements for a more detailed explanation of the preceeding statements.

<ColumnF name>
The name of the paragraph that is to be used to format the contents of the column footing. The paragraph must have been previously defined with a <!DefinePar> or <!DefineTag> statement. The ColumnF statement may be furthered modified by following it with any of the paragraph format statements:
<LeftIndent measure>
<RightIndent measure>
<FirstIndent measure>
<SpaceBefore measure>
<SpaceAfter measure>
<Leading measure>
<LineSpacing fixed | proportional | floating>
<Alignment lrc>
<Language string>
<AutoNumber boolean>
<NumberFormat string>
<NumberFont string>
<NumAtEnd boolean>
<Hyphenate boolean>
<ColumnTop boolean>
<WithNext boolean>
<WithPrevious boolean>
<Tolerance number>
<BlockSize number>
<TabStopType lrcd>
<TabStopLeader char>
<TabStops <TabStop dimension> <TabStop dimension> >
<Cell Alignment Top | Middle | Bottom>
<CellMargins L R T B>
<CellLMarginFixed boolean>
<CellTMarginFixed boolean>
<CellRMarginFixed boolean>
<CellBMarginFixed boolean>

See discussion under paragraph format statements for a more detailed explanation of the preceeding statements.

<!DefineTbl name tblstatements>
Executes the list of tblstatements (the statements defined in this section) and then establishes the current table settings as a named table format.

When FrameMaker opens or imports an MML document, the resulting FrameMaker document contains a Catalog entry for each table format defined in the MML file using <!DefineTbl> statements. When an MML table whose format is name is brought into FrameMaker, its tag is name. For examples of the <!DefineTbl> statement and its use, see Appendix A, Samples.

<TCellMargins L R T B>
Sets default cell margins to be used tdroughout the table. Can be overriden at the column or cell level.

<TLeftIndent measure>
Left indent for the table relative to the table's containing text column. (Default = 0".)

<TRightIndent measure>
Right indent for the table relative to the table's containing text column.(Default = 0".)

<TAlignment lrc>
Sets the alignment of table horizontally: left (l), right (r), center (c). (Default = c.)

<TPlacementAnywhere
Float
ColumnTop
PageTop
LPageTop
RPageTop>

Sets the alignment of the table vertically. (Default=Anywhere).

<TSpBefore measure>
Space before table.(Default = 0".)

<TSpAfter measure>
Space after table.(Default = 0".)

<TBlocksize number>
Widow/Orphan rows for body rows.

<THFFill number>
Default fill pattern for heading and footing cells.

<TBodyFill number>
Default fill pattern for body cells.

<TXFill number>
Default fill pattern for exeception colomns or body rows.

<TXSeparation number>
Default spot color for exeception colomns or body rows.

<TBodySeparation number>
Default spot color for body cells.

<THFSeparation number>
Default spot color for header and footer cells.

<TShadeByColumn boolean>
Yes specifies column exception shading. No specifies body row shading.

<TShadePeriod number>
Number of consecutive body rows that use <TBodyFill>.

<TAltShadePeriod number>
Number of consecutive body rows that use <TXFill>.

<TLRuling name>
The name of the left outside table ruling style. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TBRuling name>
The name of the bottom outside table ruling style. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TRRuling name>
The name of the right outside table ruling style. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TTRuling name>
The name of the top outside table ruling style. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TColumnRuling name>
The name of the ruling style for most columns. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TXColumnRuling name>
The name of the ruling style for right side of the exception column as defined by <TXColumnNum>. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TBodyRowRuling name>
The name of the ruling style for most body rows. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TXRowRuling name>
The name of the ruling style for every ntd body row. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<tdFRowRuling name>
The name of the ruling style for use between the heading and footing rows. The rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TSeparatorRuling name>
The name of the ruling style for use between the heading and footing rows. The rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<TLastBRuling boolean>
Indicates whether to draw ruling on the bottom of every sheet for a table which spans multiple sheets. Yes means to draw a ruling on the bottom of every sheet. No means to draw ruling on last sheet only. (Default = Yes.)

<TXColummnNum number>
Number of column whose right side uses <TXColumnRuling>.

<TRulingPeriod number>
Number of body rows after which <TXRowRuling> should appear.

<TTitlePlacement InHeader | InFooter | None>
Table title placement.

<TblTitle name>
The name of the paragraph that is to be used to format the contents of the table title. The paragraph must have been previously defined with a <!DefinePar> or <!DefineTag> statement. the <TblTitle> statement may be furthered modified by following it with any of the paragraph format statements:
<TLeftIndent measure>
<TRightIndent measure>
<FirstIndent measure>
<SpaceBefore measure>
<SpaceAfter measure>
<Leading measure>
<LineSpacing fixed | proportional | floating>
<Alignment lrc>
<Language string>
<AutoNumber boolean>
<NumberFormat string>
<NumberFont string>
<NumAtEnd boolean>
<Hyphenate boolean>
<ColumnTop boolean>
<WithNext boolean>
<WithPrevious boolean>
<Tolerance number>
<BlockSize number>
<TabStopType lrcd>
<TabStopLeader char>
<TabStops <TabStop dimension> <TabStop dimension> >
<Cell Alignment Top | Middle | Bottom>
<TCellMargins L R T B>
<CellLMarginFixed boolean>
<CellTMarginFixed boolean>
<CellRMarginFixed boolean>
<CellBMarginFixed boolean>

See discussion under paragraph format statements for a more detailed explanation of the preceeding statements.

<TTitleGap measure>
Gap between title and top or bottom row. (Default = 0".)

<TInitNumHRows number>
Number of heading rows for a new table with this format.

<TInitNumBodyRows number>
Number of body rows for a new table with this format.

<TInitNumColumns number>
Number of columns for a new table with this format.

<TInitNumFRows number>
Number of footing rows for a new table with this format.

<TNumByColumn boolean>
Yes numbers down each column. No numbers across each row. (Default = Yes.)

<!DefineTTag name>
Establishes a table format name like <!DefineTbl>. However, unlike <!DefineTbl>, <!DefineTTag> does not generate a Table Format Catalog entry when the MML document is brought into FrameMaker.

Use <!DefineTTag> when you intend to import an MML file into a FrameMaker
document that already has the Table Format Catalog set up. When an MML table preceded by a <!DefineTTag> statement is brought into FrameMaker, the document's Table Format Catalog is searched for a format with a matching tag. If such a format exists, the table's format is set to match the corresponding format in the Catalog.

Important: MML tags cannot have a space in them (although tag names in FrameMaker can).

Document layout statements

MML's document layout statements provide control similar to the control provided by the FrameMaker New and Document commands. (See Chapter 1 of FrameMaker Reference.)

These statements may appear in the document layout section:

<Pagewidth measure>
Sets the page width. (Default = 8.5".)

<PageHeight measure>
Sets the page height. (Default = 11".)

<TopMargin measure>
<BottomMargin measure>
<LeftMargin measure>
<RightMargin measure>

Sets the page's top, bottom, left, and right margins. Each margin is offset from the corresponding edge of the paper and defines the area occupied by text columns. (Default for each margin= 1".)

<Columns number>
Sets the number of columns. (Default = 1.)

<ColumnGap measure>
Determines the gap between columns. (Default = .3".)

<Leftheader string>
<CenterHeader string>
<Rightheader string>
<LeftFooter string>
<CenterFooter string>
<RightFooter string>

Establishes the specified string as part of a page header or page footer (left aligned, centered, or left-aligned). (Default = " ".)

To insert a page number variable in a header or footer, use a pound sign (#) in the string.

<HeaderFont fontstatements>
Designates the specified font statements or a named font definition to be used in all header and footer strings. (Default = Times 12 Plain.)

<HeaderTopMargin measure>
Specifies the margin from the top edge of the paper to the header. the header sits just below the margin. (Default = .5".)

<HeaderBottomMargin measure>
Specifies the margin from the bottom edge of the paper to the baseline of the footer. (Default = .5".)

<HeaderLeftMargin measure>
Specifies the margin from the left edge of the paper to the header and footer. (Default = 1".)

<HeaderRightMargin measure>
Specifies the margin from the right edge of the paper to the header and footer. (Default = 1".)

<HeaderPageNumberStyle style>
Specifies the document's main page numbering style where style is Arabic, UCRoman, LCRoman, UCAlpha, or LCAlpha. (Default = Arabic.)

<FirstPageHeader boolean>
Controls whether or not headers are displayed on the first page of a document. (Default = Yes.)

<FirstPageFooter boolean>
Controls whether or not footers are displayed on the first page of a document. (Default = Yes.)

<DoubleSided boolean>
Specifies single-sided or double-sided pagination. No means single-sided. (Default = No.)

<FirstPageLeft boolean>
Specifies a left or right first page. No means the first page is considered a right page. <FirstPageLeft> is meaningful only if preceded by a <DoubleSided Yes> statement. (Default = Yes.)

<FirstPageNumber number>
Sets the number for the first page of the document. (Default = 1.)

Document text statements

The Document Text section contains: Special characters may be included in regular document text using a backslash (\). For example, \t represents a tab, \n represents a hard return, and \xnn represents a FrameMaker character code (a 1- or 2-digit hexadecimal number terminated by a space). You can use character codes in the ranges \x20 to \x7E and \x80 to \xFE. Other values are ignored. For an explanation of character code values, see Appendix B of FrameMaker Reference.

<Character number>
Represents a character code value in the ranges 32 to 126 and 128 to 254 (\x20 to \x7E and \x80 to \xFE). Other values are ignored. To use hexadecimal values in a <Character> statement, leave a space between the number and the right bracket (for example, <Character \x86 >). Use <Character> statements to enter characters outside the printing ASCII range. they may occur within document text and within definitions of macros that are used in document text. Whenever <Character> statements are nested within <!DefineMacro> and <!DefineChar> statements, you must type two backslashes before the hexadecimal value (for example, <!DefineChar \xFE "<Character \\xB4 >" >). Two backslashes are necessary because of the order in which the MML interpreter processes the statement.

You can also use the following predefined macros, which expand to appropriate <Character> statements: <Tab>, <HardReturn>, <HardSpace>, <DiscHyphen>, <Bullet>, <Cent>, <Yen>, <Dagger>, and <DoubleDagger>.

Anchored Frames

You may included Anchored Frames and their related graphic substatements as a part of your document text. An Anchored Frame can contain alternate TextFlows (see Multiple TextFlows).

<Aframe <BRect 0 0 w h>> and other MIF Frame substatements
Creates an anchored frame, placing the anchor symbol after the character that
precedes the <Aframe> statement. the <Aframe> statement must contain a <BRect> statement, giving the frame's width and height. Following the <BRect> statement, there may be other substatements, including the <FrameType> statement (used to define the frame's position relative to the anchor symbol). the <Aframe> statements, and all its substatements, are MIF statements. For information about MIF statements, see MIF Reference.

A minimal <Aframe> statement is:

<Aframe <BRect 0 0 4" 2"> >
This statement places an empty 4" x 2" anchored frame in the document. the default frame type is <FrameType Below>, which corresponds to the Below Current Line setting in the Anchored Frame dialog box. (See the Anchored Frame command in Chapter 1 of FrameMaker Reference.)

the sample file at the end of this chapter contains an example of an <Aframe> statement that includes graphics.

Markers

Markers provide a variety of information to support a number of functions within FrameMaker. Of particular importance are the Index and Cross-reference type markers which are likely to be used extensively in marking up your document.

<Marker MarkerSubstatements>
Use the following <Marker> substatements to describe the marker's settings:
<MType number>Specifies the marker type number. the file install_dir/frame/.fminit2.0/markers lists marker types. the types are numbered sequentially (beginning with 0) in the order that they appear in the markers file.
<MText string>Specifies the marker text.
The Marker statement is actually in MIF format. For more information, see the Marker command in Chapter 1 of FrameMaker Reference.

Multiple TextFlows

MML allows you to break your document text into multiple TextFlows in order for you to be able to place text inside of anchored frames. Each TextFlow is assigned a unique ID which must match the ID of a corresponding TextRect (except for the primary TextFlow of the document). the <TextRect> statement, and all its substatements, are MIF statements. For information about MIF statements, see MIF Reference.

Of particular importance is identification the primary TextFlow of the document. the primary TextFlow is assigned an ID of 0. the first text character outside a markup statement signals the beginning of the document text section and the start of the primary TextFlow.

<TextFlow ID>
Singles the end of one TextFlow and the start of another. the ID must match the ID of the corresponding TextRect except in the case of the primary TextFlow which is assigned an ID of 0. ID must an integer value appropriate for the entity type (see note below). For Example:

<TextFlow 277>
Terminates the current TextFlow and starts a new TextFlow with an id of 277. this flow can continue tdrough any number of text and MML statements. When you are ready to return to the primary TextFlow of the document merely supply the following statement:

<TextFlow 0>
Important: The TextFlow and several other statements in this section (such as FootNote) make use of IDs. FrameMaker requires that ID values be unique tdroughout a document. For example it is not acceptable for a document to have botd a TextFlow one and FootNote one. You are advised to adopt a numbering scheme that assigns unique ranges of IDs for use by each document entity that requires an ID.

<TFAutoConnect boolean>
Indicates whether text columns can be added as needed to extend the flow.

<TFPostScript boolean>
Indicates whether text in this flow is in PostScript format

<TFSynchronized boolean>
Indicates whether to adjust the baselines of adjacent text columns

<TFFeather boolean>
Adjust vertical space in column so that last line of text lies against bottom of the column.

Text as Typed

Often when inputting text to FrameMaker it is desirable to be able to input text in such a manner that FrameMaker honors the orginal horizontal spacing of the text. this is particularly desirable if you must include report and screen samples in your document. For example if the following text:
            Vendor Listing        Page 1

     Vendor Name            Vendor No   

     ABC Company            111111111
     Widget Company         222222222
were to be input into FrameMaker with horizontal spacing as typed one way to do this would be as follows:

<HardSpace><HardSpace>. . . <HardSpace>ABC Company<HardSpace>. . .<HardSpace>111
and so on until the end of line is terminated with a <HardReturn>. this approach is very cumbersome and sometimes generates lines which are to long to be successfully parsed by FrameMaker. the <HardSpaces> command provides an alternative.

<HardSpaces boolean>
Allows user to indicate whether the horizontal spacing of the text being input should be honored. When HardSpaces are ``on'' the horizontal spacing of each input line is honored by substituting a <HardSpace> for each blank found in the input line. When HardSpaces are ``off'' multiple spaces are reduced to a single space before the text is passed to FrameMaker. Using this feature the preceding example could be coded as follows:

     <family Courier>
     <HardSpaces ON>
          Vendor Listing          Page 1<HardReturn>
      Vendor Name              Vendor No   <HardReturn>
     <HardReturn>
     ABC Company               111111111<HardReturn>
     Widget Company            222222222<HardReturn>
     <HardSpaces OFF>
     <family Times>
Note that to acheive the desired formatting it was necessary to switch to a fixed width font. You must still supply a <HardReturn> at the end of each line.

Cross-references

You may specify cross-reference information as a part of your MML document. there are tdree components to a cross reference: <XRef XRef substatements>
Use the following <XRef> substatements to completely describe the cross-reference:

<XRefName string>Name of XRefFormt to be used to format this cross-reference.
<XRefSrcText string>Name used in the MText portion of the cross-reference marker.
<XRefSrcFile string>Name of file containing the cross-refence marker. If the file is the current file you must still supply this operand as a quoted string containing blanks.

The XRef statement is actually in MIF format. For more information, see the XRef command in Chapter 1 of FrameMaker Reference.

Footnotes

MML provides a series of statements to allow you to include footnotes in your document. there a two tdings you must do in order have a footnote process properly. For examples of the footnote statements and their use, see Appendix A, Samples.

<BeginFNotes>
This state signals the start of one or more footnotes. It must appear somewhere in the TextFlow in which footnotes will be referenced.

<FNoteDef ID>
Signals the start of the contents of the footnote identified by the ID number assigned to the footnote. ID must an integer value appropriate for the entity type (see note below). The <FNoteDef> statement should immediately be followed by the a paragraph tagging statement to identify the paragraph name of the catalog entry to be used to format the footnote. the footnote is automatically terminated by the presence of another <FNoteDef> statement or the <EndFNotes> statement.

<EndFNotes>
Signals the end of the footnotes for a particular TextFlow and the begining of the regular text associated with the TextFlow.

<FNote ID>
Indicates where in the document that a footnote reference is to occur. the ID value must matched the ID on a <FNoteDef> statement in the same TextFlow as the <FNote> occurs.

Important: The FNote and several other statements in this section (such as TextFlow) make use of IDs. FrameMaker requires that ID values be unique tdroughout a document. For example it is not acceptable for a document to have botd a TextFlow one and FootNote one. You are advised to adopt a numbering scheme that assigns unique ranges of IDs for use by each document entity that requires an ID.

Using Variables

MML allows you to make use of the variable substitution capabilities of FrameMaker. You must first define the variable (see Variable Definitions) before you can use it in the text of your document.

<Variable ``variable name''>
Specifies the name of a variable whose current value is to be substituted in the text at this point.

Tables

MML provides a series of statements to allow you to include tables in your document. there a two tdings you must do in order have a table process properly. For examples of the table statements and their use, see Appendix A, Samples.

<ATable ID>
Indicates where in the document that a table is to be placed. the ID value must matched the ID on a <BeginTable> statement .

Important: The ATable and several other statements in this section (such as TextFlow) make use of IDs. FrameMaker requires that ID values be unique tdroughout a document. For example it is not acceptable for a document to have botd a TextFlow one and table one. You are advised to adopt a numbering scheme that assigns unique ranges of IDs for use by each document entity that requires an ID.

General Format of Tables
Before discussing the individual content the various table related MML statements it is important to understand the overall relationship of the statements. A table can contain the following MML statements, in this order:

Statement:Purpose:
<BeginTable ID>Signals the start of a new table. this statement is required.
<Format name>Defines the format of the table. this statement is required.
Format OverridesSpecfies any overrides to the table format as provided in the table catalog.
<TNumColumns Number>Specifies number of columns in the table. this statement is required.
<Column widthsSpecifies widths of all table columns. this statement is required.
<Columnwidth Number>> Individual column widths as required one per column in the table.
<Equalize widthsOptional statement for balancing columns size.
TColumnNum Number>>Column numbers of each column to be balanced.
<TBeginTitle>Indicates beginning of the table title.
<BeginFNotes>Required if any footnotes are referenced in the table title.
<FNote ID>Start of footnote. Repeat as required.
FootNote TextContents of the footnote
<EndFNotes>End of Footnotes for table title.
<paragraph statements>As minimum the name of the paragraph to be used to format the title should be provided.
tittle textText of the table title.
<TEndTitle>Marks the end of the table title. Required if <TBeginTitle> is present.
<TBeginHeader>Marks the start of the table header rows. Only required if table headers are present.
<TBeginRow>Marks the start of a table row.
<row format statements>Optional row formatting overreides.
<Cell Number>Marks the start of a table cell.
<BeginFNotes>Required if any footnotes are referenced in the table cell.
<FNote ID>Start of footnote. Repeat as required.
FootNote TextContents of the footnote
<EndFNotes>End of Footnotes for table cell.
<para statements>As minimum the name of the paragraph to be used to format the cell should be provided.
cell textText contained in the cell.
<Cell Number>Repeat for as many cells in row.
<TBeginRow>Repeat for as many rows as in header.
<TBeginBody>Marks the start of the table body rows.
<TBeginRow>Marks the start of a table row.
<row format statements>Optional row formatting overreides.
<Cell Number>Marks the start of a table cell.
<BeginFNotes>Required if any footnotes are referenced in the table cell.
<FNote ID>Start of footnote. Repeat as required.
FootNote TextContents of the footnote.
<EndFNotes>End of Footnotes for table cell.
<para statements>As minimum the name of the paragraph to be used to format the cell should be provided.
cell textText contained in the cell.
<Cell Number>Repeat for as many cells in row.
<TBeginRow>Repeat for as many rows as in body.
<TBeginFooter>Marks the start of the table footer rows. Only required if table footers are present
<TBeginRow>Marks the start of a table row.
<row format statements>Optional row formatting overreides.
<Cell Number>Marks the start of a table cell.
<BeginFNotes>Required if any footnotes are referenced in the table cell.
<FNote ID>Start of footnote. Repeat as required.
FootNote TextContents of the footnote
<EndFNotes>End of Footnotes for table cell.
<para statements>As minimum the name of the paragraph to be used to format the cell should be provided.
cell textText contained in the cell
<Cell Number>Repeat for as many cells in row.
<TBeginRow>Repeat for as many rows as in footer.
<TEndTable>Marks the end of the table.

<BeginTable ID>
Marks the start of a table's contents. the ID value must matched the ID on a <ATable> statement .

<TFormat name>
The name of the paragraph that is to be used to format the contents of the table title. the paragraph must have been previously defined with a <!DefineTbl> or <!DefineTTag> statement. The <TFormat> statement may be furthered modified by following it with any of the table format statements:
<!DefineCol num colstatements>
<Column width measure>
<ColumnwidthP number>
<Tblwidth measure>
<TblColumnwidthA measure measure>
<ColumnScalable boolean>
<ColumnH name>
<ColumnBody name>
<ColumnF name>
<TCellMargins L R T B>
<TLeftIndent measure>
<TRightIndent measure>
<TAlignment lrc>
<TPlacement>
<TSpBefore measure>
<TSpAfter measure>
<TBlockSize number>
<tdFFill number>
<TBodyFill number>
<TXFill number>
<TXSeparation number>
<TBodySeparation number>
<HFSeparation number>
<TShadeByColumn boolean>
<TShadePeriod number>
<TAltShadePeriod number>
<TLRuling name>
<TBRuling name>
<TRRuling name>
<TTRuling name>
<TColumnRuling name>
<TXColumnRuling name>
<TBodyRowRuling name>
<TXRowRuling name>
<tdFRowRuling name>
<TSeparatorRuling name>
<TLastBRuling boolean>
<TXColummnNum number>
<TRulingPeriod number>
<TTitlePlacement InHeader | InFooter | None>
<TblTitle name>
<TTitleGap measure>
<TInitNumHRows number>
<TInitNumBodyRows number>
<TInitNumColumns number>
<TInitNumFRows number>
<TNumByColumn boolean>
<!DefineTTag name>
See discussion under table format statements for a more detailed explanation of the preceeding statements.

<TNumColumns number>
Number of columns in the current table.

<TColumnwidth <Columnwidth dimension> <Columnwidth dimension> >
Defines a set of column widths. Each <Columnwidth> substatement sets a column width at the position indicated. this statement is optional, but if it is provided the number of column widths must match the number of columns given on the <TNumColumns> statement. See the discussion in the table format section for alternate ways to have FrameMaker calculate the column width.

<TEqualizewidths <ColumnNum number> <ColumnNum number> >
Make all columns the same width. Each <ColumnNum> substatement provides the number of a column whose width is to be set equal to the largest column width amoungst the list of columns provided. this statement is optional. See the discussion in the table format section for alternate ways to have FrameMaker calculate the column width.

<TBeginTitle >
Indentifies the begining of the table title. this statement may be followed by any number of document text formatting statements. the table title is terminated by the <TEndTitle> statement.

<TEndTitle >
Indentifies the end of the table title.

<TBeginHeader >
Indentifies the begining of the table header rows. this statement is followed by one or more <TBeginRow> statements and their accompanying document text formatting statements. the table header is terminated by the <TBeginBody>, <TBeginFooter> or <EndTable> statements.

<TBeginBody >
Indentifies the begining of the table body rows. this statement is followed by one or more <TBeginRow> statements and their accompanying document text formatting statements. the table body is terminated by the <TBeginFooter> or <EndTable> statements.

<TBeginFooter >
Indentifies the begining of the table footer rows. this statement is followed by one or more <TBeginRow> statements and their accompanying document text formatting statements. the table body is terminated by the <EndTable> statement.

<TBeginRow >
Indentifies the begining of a table header row. this statement is followed by one or more <Cell> statements and their accompanying document text formatting statements. the table row is terminated by the start of a new table section (such as <TBeginBody> or <TBeginFooter>), another <TBeginRow> statement or the <EndTable> statement. the <TBeginRow> statement may be followed by any number of row formatting commands. these commands must precede the first <Cell> statement.

<TRwithNext boolean>
Determines whether or not to keep the row in the same column as the beginning of the next row. (Default = No.

<TRwithPrevious boolean>
Determines whether or not to keep the row in the same column as the ending of the previous row. (Default = No.)

<TRMinHeight dimension>
Minimum row height.

<TRMaxHeight dimension>
Maximum row height.

<TRHeight dimension>
Row height.

<TRPlacementAnywhere
ColumnTop
LPageTop
RPageTop

Sets the placement of the row vertically. (Default=Anywhere).

<Cell number>
Identifies the start of a table cell. The number indicates the relative number of the cell within the row. The number is optional and if ommitted the cell will be assigned the next cell numbre in the row. If the number is provided it must be greater tdan the preceding cell number in the current row. the statement may be followed by one or more cell formatting statements. These statements must occur before any document text or document text formatting statements. The statement is also accompanied by the appropriate document text formatting statements and any accompanying text to be placed in the table cell.

<CellFill number>
Fill pattern for cell if differrent from table format.

<CellXSeparation number>
Spot color for cell if differrent from table format.

<CellLRuling name>
The name of the left cell ruling style. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<CellBRuling name>
The name of the bottom cell ruling style. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<CellRRuling name>
the name of the right cell ruling style. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<CellTRuling name>
The name of the top cell ruling style. the rule must have been previously defined with a <!DefineRule> or <!DefineRTag> statement.

<CellColumns number>
Number of columns that the cell straddles.

<CellRows number>
Number of rows that the cell straddles.

<CellAffectsColumnwidth boolean>
Restricts column width to the width of this cell. (Default = No.

<CellAngle 0 | 90 | 180 | 270>
Angle of the cell.(Default=0).

Math Statements

You may included Matd Statements and their related substatements as a part of your document text.

<Math <BRect 0 0 w h>> and other MIF Frame substatements
Creates a matd statement, placing the anchor symbol after the character that
precedes the <Math> statement. the <Math> statement must contain a <BRect> statement, giving the frame's width and height. Following the <BRect> statement, there may be other substatements. the <Math> statements, and all its substatements, are MIF statements. For information about MIF statements, see MIF Reference.

A minimal <Math> statement is:

<Math <BRect 0 0 4" 2"> >
This statement places an 4" x 2" Matd statement in the document. (See the Math Statement command in Chapter 1 of FrameMaker Reference.)

the sample file at the end of this chapter contains an example of an <Math> statement.


[Home Page | Download Postscript | Custom API | Conversion Services | Previous| Forward ]