Rich-Text Format Specification v. 1.2
Introduction	2
RTF Syntax	2
Conventions of an RTF Reader	4
Change Destination	4
Change Formatting Property	5
Insert Special Character	5
Insert Special Character and Perform Action	5
Formal Syntax	5
Contents of an RTF File	5
Header	6
RTF Version	6
Character Set	6
Font Table	6
Code Page Support	8
Font Embedding	8
The File Table	8
Color Table	9
Style Sheet	10
Revision Marks	11
Document Area	12
Information Group	12
Document-Formatting Properties	13
Section Text	17
Section-Formatting Properties	17
Headers and Footers	19
Paragraph Text	20
Paragraph-Formatting Properties	20
Tabs	21
Bullets and Numbering	22
Paragraph Borders	24
Paragraph Shading	24
Absolute-Positioned Objects and Frames	25
Table Definitions	26
Character Text	29
Character-Formatting Properties	29
Associated Character Properties	32
Special Characters	33
Bookmarks	35
Pictures	35
Objects	38
Macintosh Edition Manager Publisher Objects	40
Drawing Objects	40
Footnotes	45
Annotations	46
Fields	46
Index Entries	47
Table of Contents Entries	48
Bidirectional language support	48
Alphabetic List of RTF Keywords	49

Introduction
The rich-text format (RTF) standard is a method of encoding formatted text and graphics for easy transfer between applications. Currently, users depend on special translation software to move word-processing documents between different MS-DOS, Windows, OS/2 applications, and Apple Macintosh applications.
The RTF standard provides a format for text and graphics interchange that can be used with different output devices, operating environments, and operating systems. RTF uses the ANSI, PC-8, Macintosh, or IBM PC character set to control the representation and formatting of a document, both on the screen and in print. With the RTF standard, documents created under different operating systems and with different software applications can be transferred among those operating systems and applications.
Software that takes a formatted file and turns it into an RTF file is called a writer. Software that translates an RTF file into a formatted file is called a reader. An RTF writer separates the application's control information from the actual text and writes a new file containing the text and the RTF groups associated with that text. An RTF reader does the converse of this procedure.
RTF Syntax
An RTF file consists of unformatted text, control words, control symbols, and groups. For ease of transport, a standard RTF file can consist of only 7-bit ASCII characters. (Converters that communicate with Microsoft Word for Windows or Microsoft Word for the Macintosh should expect 8-bit characters.)
A control word is a specially formatted command that RTF uses to mark printer control codes and information that applications use to manage documents. A control word takes the following form:
\ LetterSequence<Delimiter>
Note that a backslash begins each control word.
The LetterSequence is made up of lowercase alphabetic characters between ‘a’ and ‘z’ inclusive. RTF is case sensitive, and all RTF keywords should be lowercase.
The Delimiter marks the end of an RTF control word, and  can be one of the following:
·	A space. In this case, the space is part of the control word.
·	A digit or a hyphen (-), which indicates that a numeric parameter follows. The subsequent digit sequence is then delimited by a space or any character other than a letter or a digit. In other words, the parameter can be a positive or negative number. The range of the values for the number is ‑32767 through 32767. However, Microsoft Word for Windows, Word for OS/2, and Word for the Macintosh restrict the range to ‑31680 through 31680. If a numeric parameter immediately follows the control word, this parameter becomes part of the control word. The control word  is then delimited by a space or a non alphabetic or non-numeric character in the same manner as any control word.
·	Any character other than a letter or a digit. In this case, the delimiting character terminates the control word but is not actually part of the control word.
If a space delimits the control word, space does not appear in the document. Any characters following the delimiter, including spaces, will appear in the document. For this reason, you should use spaces only where necessary; do not use spaces merely to break up RTF code.
A control symbol consists of a backslash followed by a single, non-alphabetic character. For example, \ ~ represents a non-breaking space. Control symbols take no delimiters.
A group consists of text and control words or control symbols enclosed in braces ({}). The opening brace ({) indicates the start of the group and the closing brace (}) indicates the end of the group. Each group specifies the text affected by the group and the different attributes of that text. The RTF file can also include groups for fonts, styles, screen color, pictures, footnotes, annotations, headers and footers, summary information, fields, and bookmarks, as well as document-, section-, paragraph-, and character-formatting properties. If the font, style, screen-color, and summary-information groups and document-formatting properties are included, they must precede the first plain-text character in the document. These groups form the RTF file header. If the group for fonts is included, it should precede the group for styles. If any group is not used, it can be omitted. The groups are discussed in the following sections.
Certain control words control properties (such as bold, italic, keep together, and so forth) that have only two states. When such a control word has no parameter or has a non-zero parameter, it is assumed that the control word turns on the property. When such a control word has a parameter of 0 (zero), it is assumed that the control word turns off the property. For example, \ b turns on bold, whereas \ b0 turns off bold.
Certain control words, referred to as destinations, mark the beginning of a collection of related text which could appear at another position, or destination, within the document. Destinations may also be text which is used but should not appear within the document at all. An example of a destination is the \ footnote group, where the footnote text follows the control word. Destination control words and their following text must be enclosed in braces. Destinations added after the RTF specification published in the March 1987 Microsoft Systems Journal may be preceded by the control symbol \ *. This control symbol identifies destinations whose related text should be ignored if the RTF reader does not recognize the destination. (RTF writers should follow the convention of using this control symbol when adding new destinations or groups.) Destinations whose related text should be inserted into the document even if the RTF reader does not recognize the destination should not use \ *. All destinations that were not included in the March 1987 revision of the RTF specification are shown with \ * as part of the control word.
Formatting specified within a group affects only the text within that group. Generally, text within a group inherits the formatting of the text in the preceding group. However, Microsoft implementations of RTF assume that the footnote, annotation, header, and footer groups (described later in this chapter) do not inherit the formatting of the preceding text. Therefore, to ensure that these groups are always formatted correctly, you should set the formatting within these groups to the default with the \ sectd, \ pard, and \ plain control words, and then add any desired formatting.
The control words, control symbols, and braces constitute control information. All other characters in the file are plain text. Here is an example of plain text that does not exist within a group:
{\rtf\ansi\deff0{\fonttbl{\f0\froman Tms Rmn;}{\f1\fdecor 
Symbol;}{\f2\fswiss Helv;}}{\colortbl;\red0\green0\blue0;
\red0\green0\blue255;\red0\green255\blue255;\red0\green255\
blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\
green255\blue0;\red255\green255\blue255;}{\stylesheet{\fs20 \snext0Normal;}}{\info{\author John Doe}
{\creatim\yr1990\mo7\dy30\hr10\min48}{\version1}{\edmins0}
{\nofpages1}{\nofwords0}{\nofchars0}{\vern8351}}\widoctrl\ftnbj \sectd\linex0\endnhere \pard\plain \fs20 This is plain text.\par}

The phrase “This is plain text” is not part of a group and is treated as document text.
As previously mentioned, the backslash ( \ ) and braces ({ }) have special meaning in RTF. To use these characters as text, precede them with a backslash, as in \ \ , \ {, and \ }.
Conventions of an RTF Reader
The reader of an RTF stream is concerned with the following:
·	Separating control information from plain text.
·	Acting on control information.
·	Collecting and properly inserting text into the document, as directed by the current group state.
Acting on control information is designed to be a relatively simple process. Some control information simply contributes special characters to the plain text stream. Other information serves to change the program state, which includes properties of the document as a whole, or to change any of a collection of group states, which apply to parts of the document.
As previously mentioned, a group state can specify the following:
·	The destination, or part of the document that the plain text is constructing.
·	Character-formatting properties, such as bold or italic.
·	Paragraph-formatting properties, such as justified or centered.
·	Section-formatting properties, such as the number of columns.
·	Table-formatting properties, which define the number of cells and dimensions of a table row.
In practice, an RTF reader will evaluate each character it reads in sequence as follows:
·	If the character is an opening brace ({), the reader stores its current state on the stack. If the character is a closing brace (}), the reader retrieves the current state from the stack.
·	If the character is a backslash, the reader collects the control word or control symbol and its parameter, if any, and looks up the control word or control symbol in a table that maps control words to actions. It then carries out the action prescribed in the table. (The possible actions are discussed below.) The read pointer is left before or after a control-word delimiter, as appropriate.
·	If the character is anything other than opening brace ({), closing brace (}), or backslash (\) , the reader assumes that the character is plain text and writes the character to the current destination using current formatting properties.
If the RTF reader cannot find a particular control word or control symbol in the look-up table described above, the control word  or control symbol should be ignored. If a control word or control symbol is preceded by an opening brace ({), it is part of a group. The current state should be saved on the stack, but no state change should occur. When a closing brace (}) is encountered, the current state should be retrieved from the stack, thereby resetting the current state. If the \ * control symbol precedes a control word, then it defines a destination group and was itself preceded by an opening brace ({). The RTF reader should discard all text up to and including the closing brace (}) that closes this group. All RTF readers must recognize all destinations defined in the March 1987 RTF specification. The reader may skip past the group, but it is not allowed to simply discard the control word. Destinations defined since March 1987 are marked with the \* control symbol.
Note
All RTF readers must implement the \* control symbol to be able to read RTF files written by newer RTF writers.
For control words or control symbols that the RTF reader can find in the look-up table, the possible actions are as follows.
Change Destination
The RTF reader changes the destination to the destination described in the table entry. Destination changes are legal only immediately after an opening brace ({). (Other restrictions may also apply; for example, footnotes cannot be nested.) Many destination changes imply that the current property settings will be reset to their default settings. Examples of control words that change destination are \ footnote, \ header, \ footer, \ pict, \ info, \ fonttbl, \ stylesheet, and \ colortbl. This chapter identifies all destination control words where they appear in control-word tables.
Change Formatting Property
The RTF reader changes the property as described in the table entry. The entry will specify whether a parameter is required. “Alphabetic List of RTF Keywords,” later in this chapter, also specifies which control words require parameters. If a parameter is needed and not specified, then a default will be used. The default value used depends on  the control word. If the control word does not specify a default, then all RTF readers should assume a default of 0.
Insert Special Character
The reader inserts into the document the character code or codes described in the table entry.
Insert Special Character and Perform Action
The reader inserts into the document the character code or codes described in the table entry and performs whatever other action the entry specifies. For example, when Microsoft Word interprets \ par, a paragraph mark is inserted in the document and special code is run to record the paragraph properties belonging to that paragraph mark.
Formal Syntax
This chapter describes RTF using the following syntax, based on Backus-Naur Form:
Syntax	Meaning	
#PCDATA	Text (without control words)	
#SDATA	Hexadecimal data	
#BDATA	Binary data	
'c'	A literal 	
<text>	A non-terminal	
a	The (terminal) control word a, without a parameter. 	
a	The (terminal) control word a, with a parameter	
a?	Item a is optional.	
a+	One or more repetitions of item a.	
a*	Zero or more repetitions of item a.	
a b	Item a followed by item b.	
a | b	Item a or item b	
a & b	Item a and/or item b, in any order	

Contents of an RTF File
An RTF file has the following syntax:
<File>	'{' <header> <document>'}'	

This syntax is overly strict; all RTF readers must read RTF that does not conform to this syntax. However, all RTF readers must correctly read RTF written according to this syntax. If you write RTF that conforms to this syntax, all correct RTF readers will read it.
Header
The header has the following syntax:
<header>	\ rtf <charset> \ deff? <fonttbl> <colortbl> <stylesheet>?	

RTF Version
An entire RTF file is considered a group and must be enclosed in braces. The control word \ rtfN must follow the opening brace. The numeric parameter N identifies the version of the RTF standard used. The RTF standard described in this chapter corresponds to RTF Specification Version 1.
Character Set
After specifying the RTF version, you must declare the character set used in this document. The control word for the character set must precede any plain text or any table control words. The RTF specification currently supports the following character sets:
Control word	Character set	
\ ansi	ANSI (default)	
\ mac	Apple Macintosh	
\ pc	IBM PC code page 437	
\ pca	IBM PC code page 850, used by IBM Personal System/2 (not implemented in version 1 of Word for OS/2)	

Font Table
The \ fonttbl control word introduces the font table group. This group defines the fonts available in the document and has the following syntax:
<fonttbl>	'{' \ fonttbl (<fontinfo> | ('{' <fontinfo> '}'))+  '}'	
<fontinfo>	<fontnum><fontfamily><fcharset><fprq><fontemb>?<codepage>? <fontname><fontaltname> ';' 	
<fontnum>	\ f 	
<fontfamily>	\ fnil | \ froman | \ fswiss | \ fmodern | \ fscript | \ fdecor | \ ftech | \ fbidi	
<fcharset>	\ fcharset	
<fprq>	\ fprq	
<fontname>	#PCDATA	
<fontaltname>	'{\*' \falt #PCDATA '}'	
<fontemb>	'{\ *' \ fontemb <fonttype> <fontfname>? <data>? '}'	
<fonttype>	\ ftnil | \ fttruetype	
<fontfname>	'{\ * \ fontfile <codepage>? #PCDATA '}'	
<codepage>	\ cpg	

Note for <fontemb> that either  <fontname> or <data> must be present, although both may be present.
All fonts available to the RTF writer can be included in the font table, even if the document doesn't use all the fonts.
RTF also supports font families, so that applications can attempt to intelligently choose fonts if the exact font is not present on the reading system. RTF uses the following control words to describe the various font families.
Control word	Font family	
\ fnil	Unknown or default fonts (default)	
\ froman	Roman, proportionally spaced serif fonts (Tms Rmn, Palatino, etc.)	
\ fswiss	Swiss, proportionally spaced sans serif fonts (Swiss, etc.)	
\ fmodern	Fixed-pitch serif and sans serif fonts (Courier, Pica, etc.)	
\ fscript	Script fonts (Cursive, etc.)	
\ fdecor	Decorative fonts (Old English, ITC Zapf Chancery, etc.)	
\ ftech	Technical, symbol, and mathematical fonts (Symbol, etc.)	
\ fbidi	Arabic, Hebrew, or other bi-directional font (Miriam, etc.)	

If an RTF file uses a default font, the default font number is specified with the \ deffN control word, which must precede the font-table group. The RTF writer supplies the default font number used in the creation of the document as the numeric argument N. The RTF reader then translates this number through the font table into the most similar font available on the reader's system.
The following control words specify the character set and pitch of a font in the font table:
Control word	Definition	
\ fcharsetN 	Specifies the character set of a font in the font table. 	
\ fprqN 	Specifies the pitch of a font in the font table. 	

If \fcharset is specified, the N argument can be one of the following types:
Character set	N value	
ANSI_CHARSET	0	
SYMBOL_CHARSET	2	
SHIFTJIS_CHARSET	128	
GREEK_CHARSET	161	
TURKISH_CHARSET	162	
HEBREW_CHARSET	177	
ARABICSIMPLIFIED_CHARSET	178	
ARABICTRADITIONAL_CHARSET	179	
ARABICUSER_CHARSET	180	
HEBREWUSER_CHARSET	181	
CYRILLIC_CHARSET	204	
EASTERNEUROPE_CHARSET	238	
PC437_CHARSET	254	
OEM_CHARSET	255	

If \fprq is specified, the N argument can be one of the following values:
Pitch	Value	
Default pitch	0	
Fixed pitch	1	
Variable pitch	2	

Code Page Support
A font may have a different character set from the character set of the document. For example, the Symbol font has the same characters in the same positions on both the Macintosh and Windows. RTF describes this with the \ cpg control word, which names the character set used by the font. In addition, file names (used in field instructions and in embedded fonts) may not necessarily be the same as the character set of the document, and the \ cpg control word can change the character set for these file names, as well. However, all RTF documents must still declare a character set, to maintain backwards compatibility with older RTF readers.
The table below describes valid values for \ cpg:
Value	Description	
437	United States IBM	
708	Arabic (ASMO 708)	
709	Arabic (ASMO 449+, BCON V4)	
710	Arabic (Transparent Arabic)	
711	Arabic (Nafitha Enhanced)	
720	Arabic (Transparent ASMO)	
819	Windows 3.1 (United States & Western Europe)	
850	IBM Multilingual	
852	Eastern European	
860	Portuguese	
862	Hebrew	
863	French Canadian	
864	Arabic	
865	Norwegian	
866	Soviet Union	
932	Japanese	
1250	Windows 3.1 (Eastern European)	
1251	Windows 3.1 (Soviet Union)	

Font Embedding
RTF supports embedded fonts with the \ fontemb group located inside a font definition. An embedded font can be specified by a file name, or the actual font data may be located inside the group. If a file name is specified, it is contained in the \ fontfile group. The \ cpg control word can be used to specify the character set for the file name.
RTF supports TrueType‘ and other embedded fonts. The type of the embedded font is described by  the following control words:
Control word	Embedded font type	
\ ftnil	Unknown or default font type (default)	
\ fttruetype	TrueType font	

The File Table
The \ filetbl control word introduces the file table destination, a new destination. This group defines the files referenced in the document and has the following syntax:
<filetbl> 	'{\ *'  \ filetbl ('{' <fileinfo> '}')+  '}'	
<fileinfo>	'{' \ file <filenum><relpath>?<osnum>? <filesource>+ <filename> ';}'	
<filenum>	 \ fid 	
<relpath>	\ frelative 	
<osnum>	\ fosnum	
<filesource>	 \ fvalidmac | \ fvaliddos | \ fvalidntfs | \ fvalidhpfs | \ fnetwork	
<filename>	#PCDATA	

Note that the filename can be any valid alphanumeric string for the named file system, giving the complete path and filename.
Control word	Definition	
\ filetbl	A structure analogous to the style or font table, the file table is a list of documents referenced by the current document. This is a destination control word output as part of the document header.	
\ file	This marks the beginning of a file group, which lists relevant information about the referenced file. This is a destination control word.	
\ fidN	File ID number. Files are referenced later in the document using this number.	
\ frelativeN	The character position within the path (starting at zero) where the referenced file's path starts to be relative to the path of the owning document. For example, a document is saved to the path c:\ private\ resume\ foo.doc and its file table contains the path c:\ private\ resume\ edu\ bar.doc, then that entry in the file table will be \ frelative18, to point at the character 'e' in "edu". This is to allow preservation of relative paths.	
\ fosnumN	Currently only filled in for paths from the Macintosh file system. It is a OS-specific number for identifying the file, which may be used to speed up access to the file, or find it if it has been moved to another folder on disk. The MacOS name for this number is the "file id". Additional meanings of the \ fosnumN may be defined for other file systems in the future.	
\ fvalidmac	Macintosh file system.	
\ fvaliddos	MS-DOS file system.	
\ fvalidntfs	NTFS file system.	
\ fvalidhpfs	HPFS file system.	
\ fnetwork	Network file system. This keyword may be used in conjunction with any of the previous file source keywords.	

Color Table
The \ colortbl control word introduces the color table group, which defines screen colors, character colors, and other color information. This group has the following syntax:
<colortbl>	'{' \ colortbl <colordef>+ '}'	
<colordef>	\ red ? & \ green ? & \ blue ? ';'	

The following are valid control words for this group:
Control word	Meaning	
\ redN	Red index	
\ greenN	Green index	
\ blueN	Blue index	

Each definition must be delimited by a semicolon, even if the definition is omitted. If a color definition is omitted, the RTF reader uses its default color. In the example below, three colors are defined. The first color is omitted, as shown by the semicolon following the \ colortbl control word.
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;}

The foreground and background colors use indexes into the color table to define a color. For more information on color setup, see your Windows documentation.
The following example defines a block of text in color (where supported). Note that the cf/cb index is the index of an entry in the color table, which represents a red/green/blue color combination.
{\f1\cb1\cf2 This is colored text. The background is color
1 and the foreground is color 2.}

If the file is translated for software that does not display color, the reader ignores the color-table group.
Style Sheet
The \ stylesheet control word introduces the style sheet group,  which contains definitions and descriptions of the various styles used in the document. All styles in the document's style sheet can be included, even if not all the styles are used. In RTF, a style is a shorthand used to specify a set of character, paragraph, or section formatting.
The style-sheet group has the following syntax:
<stylesheet> 	'{' \ stylesheet <style>+ '}'	
<style>	'{' <styledef>?<keycode>? <formatting> <additive>? <based>? <next>? <stylename>? ';' '}'	
<styledef>	\ s  | \ cs  | \ ds 	
<keycode>	'{' \ keycode <keys> '}'	
<additive>	\additive	
<based>	\ sbasedon 	
<next>	\ snext 	
<formatting>	(<brdrdef> | <parfmt> | <apoctl> | <tabdef> | <shading> | <chrfmt>)+	
<stylename>	#PCDATA	
<keys>	( \ shift? & \ ctrl? & \ alt?) <key>	
<key>	\ fn | #PCDATA	

For <style>, both <styledef> and <stylename> are optional; the default is paragraph style 0. Note for <stylename> that Microsoft Word for the Macintosh interprets commas in #PCDATA as separating style synonyms. Also, for <key>, the data must be exactly one character.
Control word	Meaning	
\ additive	Used in a character style definition ({\ *\ cs_). Indicates that style attributes are to be applied in addition to current attributes, rather than setting the character attributes to only the style definition.	
\ sbasedonN	Defines the number of the style on which the current style is based (default is 222‑no style).	
\ snextN	Defines the next style associated with the current style; if omitted, the next style is the current style.	
\ keycode	This group is specified within the description of a style in the style sheet in the RTF header. The syntax for this group is {\ *\ keycode Keys} where Keys are the characters used in the key code. For example, a style, Normal, may be defined {\ s0 {\ *\ keycode \ shift\ ctrl n}Normal;} within the RTF style sheet. See the Special Character control words for the characters outside of the alphanumeric range that may be used.	
\ alt	The ALT modifier key. Used to describe quick-key codes for styles.	
\ shift	The SHIFT modifier key. Used to describe quick-key codes for styles.	
\ ctrl	The CTRL modifier key. Used to describe quick-key codes for styles.	
\ fnN	Specifies a function key where N is the function key number. Used to describe quick-key codes for styles.	

The following is an example of an RTF style sheet:
{\stylesheet{\fs20 \sbasedon222\snext0{\*\keycode \shift\ctrl n} 
Normal;}{\s1\ar \fs20 \sbasedon0\snext1 FLUSHRIGHT;}{\s2\fi-720\li720\fs20\ri2880\sbasedon0\snext2 IND;}}

and RTF paragraphs to which the styles are applied:
\widowctrl\ftnbj\ftnrestart \sectd \linex0\endnhere \pard\plain 
\fs20 This is Normal style.
\par \pard\plain \s1
This is right justified. I call this style FLUSHRIGHT.
\par \pard\plain \s2
This is an indented paragraph. I call this style IND. It produces 
a hanging indent.
\par}

In the preceding example, the PostScript style is declared but not used. Some of the control words in this example are discussed in later sections.
Revision Marks
This table allows tracking of multiple authors and reviewers of a document, and is used in conjunction with the character properties for revision marks.
Control word	Definition	
\ revtbl	This group consists of subgroups that each identify the author of a revision in the document, as in {Author1;}. This is a destination control word.
Revision conflicts, such as one author deleting another's additions, are stored as one group, in the following form:
CurrentAuthor\'00\'<length of previousauthor's name>PreviousAuthor\'00
PreviousRevisionTime
The four bytes of the DTTM strucutre are emitted as ASCII characters, so values > 127 should be emitted as quoted hex values.	

All time references for revision marks use the following bit field structure, DTTM:
Bit numbers	Information	Range	
0–5	Minute	0–59	
6–10	Hour	0–23	
11–15	Day of month	1–31	
16–19	Month	1–12	
20–28	Year	= Year - 1900	
29–31	Day of week	0 (Sun)–6 (Sat)	

Document Area
Once the RTF header is defined, the RTF reader has enough information to correctly read the actual document text. The document area has the following syntax:
<document>	<info>? <docfmt>* <section>+	

Information Group
The \ info control word introduces the information group, which contains information about the document. This can include the title, author, keywords, comments, and other information specific to the file. This information is for use by a document-management utility, if available.
This group has the following syntax:
<info>	'{' <title>? & <subject>? & <author>? & <operator>? & <keywords>? & <comment>? & \ version? & <doccomm>? & \ vern? & <creatim>? & <revtim>? & <printim>? & <buptim>? & \ edmins? & \ nofpages? & \ nofwords? & \ id? '}'	
<title>	'{' \ title #PCDATA '}'	
<subject>	'{' \ subject #PCDATA '}'	
<author>	'{' \ author #PCDATA '}'	
<operator>	'{' \ operator #PCDATA '}'	
<keywords>	'{' \ keywords #PCDATA '}'	
<comment>	'{' \ comment #PCDATA '}'	
<doccomm>	'{' \ doccomm #PCDATA '}'	
<creatim>	'{' \ creatim <time> '}'	
<revtim>	'{' \ revtim <time> '}'	
<printim>	'{' \ printim <time> '}'	
<buptim>	'{' \ buptim <time> '}'	
<time>	\ yr? \ mo? \ dy? \ hr? \ min? \ sec?	

Some applications, such as Word, ask a user to type this information when saving the document in its native format. If the document is then saved as an RTF file or translated into RTF, the RTF writer specifies this information using the following control words. These control words are destinations and both the control words and the text should be enclosed in braces ({}).
Control word	Meaning	
\ title	Title of the document. This is a destination control word.	
\ subject	Subject of the document. This is a destination control word.	
\ author	Author of the document. This is a destination control word.	
\ operator	Person who last made changes to the document. This is a destination control word.	
\ keywords	Selected keywords for the document. This is a destination control word.	
\ comment	Comments; text is ignored. This is a destination control word.	
\ versionN	Version number of the document.	
\ doccomm	Comments displayed in Word's Edit Summary Info dialog box. This is a destination control word.	

The RTF writer may automatically enter other control words, including the following:
Control word	Meaning	
\ vernN	Internal version number	
\ creatim	Creation time	
\ revtim	Revision time	
\ printim	Last print time	
\ buptim	Backup time	
\ edminsN	Total editing time (in minutes)	
\ yrN	Year	
\ moN	Month	
\ dyN	Day	
\ hrN	Hour	
\ minN	Minute	
\ secN	Seconds	
\ nofpagesN	Number of pages	
\ nofwordsN	Number of words	
\ nofcharsN	Number of characters	
\ idN	Internal ID number	

Any control word described in the previous table that does not have a numeric parameter specifies a date; all dates are specified with the \ yr \ mo \ dy \ hr \ min \ sec controls. An example of an information group follows:
{\info{\title The Panda's Thumb}{\author Stephen J Gould}{\keywords 
science natural history }}

Document-Formatting Properties
After the information group (if any), there may be some document formatting control words (described as  <docfmt> in the syntax description.). These control words specify the attributes of the document, such as margins and footnote placement. These attributes must precede the first plain-text character in the document.
The control words that specify document formatting are listed in the following table (measurements are in twips). For omitted control words, RTF uses the default values:
Control word	Meaning	
\ deftabN	Default tab width in twips (default is 720).	
\ hyphhotzN	Hyphenation hot zone in twips (amount of space at the right margin in which words are hyphenated).	
\ hyphconsecN	N is the maximum number of consecutive lines that will be allowed to end in a hyphen. 0 means no limit.	
\ hyphcaps	Toggles hyphenation of capitalized words (default is on).  Append with 1 or leave keyword by itself to toggle property on; append 0 (zero) to turn it off.	
\ hyphauto	Toggles automatic hyphenation (default is off).  Append with 1 or leave keyword by itself to toggle property on; append 0 (zero) to turn it off.	
\ linestartN	Beginning line number (default is 1).	
\ fracwidth	Uses fractional character widths when printing (QuickDraw only).	
\ *\ nextfile	Destination; the argument is the name of the file to print or index next; must be enclosed in braces. This is a destination control word.	
\ *\ template	Destination; the argument is the name of a related template file; must be enclosed in braces. This is a destination control word.	
\ makebackup	Backup copy is made automatically when the document is saved.	
\ defformat	Tells the RTF reader that the document should be saved in RTF format.	
\ psover	Prints PostScript over the text.	
\ doctemp	Document is a boilerplate document. For Word for Windows, this is a template, for Word for the Macintosh this is a stationery file.	
\ deflangN	Defines the default language used in the document used with a \ plain. See the section "Character-Formatting Properties" for a list of possible values for N.	
Footnotes and endnotes		
\ fetN	Footnote/endnote type. This indicates what type of notes are present in the document.
0	Footnotes only or nothing at all (default).
1	Endnotes only.
2	Footnotes and endnotes both.
For backwards compatibility, if \ fet1 is emitted, \ endnotes or \ enddoc will be emitted along with \ aendnotes or \ aenddoc. Readers that understand \ fet will need to ignore the footnote positioning keywords, and use the endnote keywords instead.	
\ ftnsep	Text argument separates footnotes from the document. This is a destination control word.	
\ ftnsepc	Text argument separates continued footnotes from the document. This is a destination control word.	
\ ftncn	Text argument is a notice for continued footnotes. This is a destination control word.	
\ aftnsep	Text argument separates endnotes from the document. This is a destination control word.	
\ aftnsepc	Text argument separates continued endnotes from the document. This is a destination control word.	
\ aftncn	Text argument is a notice for continued endnotes. This is a destination control word.	
\ endnotes	Footnotes at the end of the section (default).	
\ enddoc	Footnotes at the end of the document.	
\ ftntj	Footnotes beneath text.	
\ ftnbj	Footnotes at the bottom of the page.	
\ aendnotes	Position endnotes at end of section. (default)	
\ aenddoc	Position endnotes at end of document.	
\ aftnbj	Position endnotes at bottom of page (bottom justified).	
\ aftntj	Position endnotes beneath text (top justified).	
\ ftnstartN	Beginning footnote number (default is 1).	
\ aftnstartN	Beginning endnote number (default is 1).	
\ ftnrstpg	Restart footnote numbering each page.	
\ ftnrestart	Footnote numbers restart at each section. Microsoft Word for the Macintosh uses this control to restart footnote numbering at each page.	
\ ftnrstcont	Continuous footnote numbering. (default)	
\ aftnrestart	Restart endnote numbering each section.	
\ aftnrstcont	Continuous endnote numbering (default).	
\ ftnnar	Footnote numbering - Arabic numbering (1, 2, 3, _)	
\ ftnnalc	Footnote numbering - Alphabetic lowercase (a, b, c, _)	
\ ftnnauc	Footnote numbering - Alphabetic uppercase (A, B, C, _)	
\ ftnnrlc	Footnote numbering - Roman lowercase (i, ii, iii, _)	
\ ftnnruc	Footnote numbering - Roman uppercase (I, II, III, _)	
\ ftnnchi	Footnote numbering - Chicago Manual of Style (*, _, _, §)	
\ aftnnar	Endnote numbering - Arabic numbering (1, 2, 3, _)	
\ aftnnalc	Endnote numbering - Alphabetic lowercase (a, b, c, _)	
\ aftnnauc	Endnote numbering - Alphabetic uppercase (A, B, C, _)	
\ aftnnrlc	Endnote numbering - Roman lowercase (i, ii, iii, _)	
\ aftnnruc	Endnote numbering - Roman uppercase (I, II, III, _)	
\ aftnnchi	Endnote numbering - Chicago Manual of Style (*, _, _, §)	
Page information		
\ paperwN	Paper width in twips (default is 12,240).	
\ paperhN	Paper height in twips (default is 15,840).	
\ pszN	Used to disambiguate between paper sizes with identical dimensions under Windows NT. Values 1–41 correspond to paper sizes defiend in DRIVINI.H in the Windows 3.1 SDK (DMPAPER_ values). Values >=42 correspond to user-defined forms under Windows NT.	
\ marglN	Left margin in twips (default is 1,800).	
\ margrN	Right margin in twips (default is 1,800).	
\ margtN	Top margin in twips (default is 1,440).	
\ margbN	Bottom margin in twips (default is 1,440).	
\ facingp	Facing pages (activates odd/even headers and gutters).	
\ gutterN	Gutter width in twips (default is 0).	
\ margmirror	Switches margin definitions on left and right pages.	
\ landscape	Landscape format.	
\ pgnstartN	Beginning page number (default is 1).	
\ widowctrl	Enable widow and orphan control.	
Linked styles		
\ linkstyles	Update document styles automatically based on template. 	
Compatibility options		
\ notabind	Don't add automatic tab stop for hanging indent.	
\ wraptrsp	Wrap trailing spaces onto the next line.	
\ prcolbl	Print all colors as black.	
\ noextrasprl	Don't add extra space to line height for showing raised/lowered characters.	
\ nocolbal	Don't balance columns.	
\ cvmme	Treat old-style escaped quotation marks (\ ") as current style ("") in mail merge data documents.	
\ sprstsp	Suppress extra line spacing at top of page. Basically, this means to ignore any line spacing larger than Auto at the top of a page.	
\ sprsspbf	Suppress space before paragraph property after hard page or column break.	
\ otblrul	Combine table borders like Word for Macintosh 5.x. Contradictory table border information is resolved in favor of the first cell.	
\ transmf	Metafiles are considered transparent; don't blank the area behind metafiles. 	
\ swpbdr	If a paragraph has a left border (not a box) and the Different Odd And Even or Mirror Margins check box is selected, Word will print the border on the right for odd-numbered pages.	
\ brkfrm	Show hard (manual) page breaks and column breaks in frames.	
Forms		
\ formprot	This document is protected for forms.	
\ allprot	This document has no unprotected areas.	
\ formshade	This document has form field shading on.	
\ formdisp	This document currently has a forms drop down or check box selected.	
\ printdata	This document has print form data only on.	
Revision marks		
\ revprot	This document is protected for revisions. The user can edit the document, but revision marking cannot be disabled.	
\ revisions	Turns on revision marking.	
\ revpropN	Argument indicates how revised text will be displayed: 0 for no properties shown; 1 for bold; 2 for italic; 3 for underline (default); 4 for double underline.	
\ revbarN	Vertical lines mark altered text, based on the argument: 0 for no marking; 1 for left margin; 2 for right margin; 3 for outside (left on left pages, right on right pages; default).	
Annotations		
\ annotprot	This document is protected for annotations. The user cannot edit the document, but can insert annotations.	
Bidirectional controls		
\ rtldoc	This document will be formatted to have Arabic style pagination.	
\ ltrdoc	This document will have English style pagination. This is the default.	

Note that the three document protections keywords (\ formprot, \ revprot, and \ annotprot)  are mutually exclusive; only one of the three can apply to any given document. Also, there is currently no method for passing passwords in RTF, so any document which associates a password with a protection level will lose the password protection in RTF.
For more information about bidirection controls, see “Bidirectional Writing Order,” later in this chapter.
Section Text
Each section in the RTF file has the following syntax:
<section>	 <secfmt>* <hdrftr>? <para>+ ( \ sect <section>)?	

Section-Formatting Properties
At the beginning of each section, there may be some section formatting control words (described as <secfmt> in the syntax description). These control words specify section-formatting properties, which apply to the text following the control word, with the exception of the section-break control words (those beginning with \ sbk). Section-break control words describe the break preceding the text. These control words can appear anywhere in the section, not just at the start.
Note that if the \sectd control word is not present, the current section inherits all section properties defined in the previous section.
The section-formatting control words are listed in the following table:
Control word	Meaning	
\ sectd	Reset to default section properties.	
\ endnhere	Endnotes included in the section.	
\ binfsxnN	N is the printer bin used for the first page of the section. If this control is not defined then the first page uses the same printer bin as defined by the \ binsxnN control.	
\ binsxnN	N is the printer bin used for the pages of the section.	
\ dsN	Designates section style; if a section style is specified, style properties must be specified with the section.	
\ sectunlocked	This section is unlocked for forms.	
Section break		
\ sbknone	No section break.	
\ sbkcol	Section break starts a new column.	
\ sbkpage	Section break starts a new page (default).	
\ sbkeven	Section break starts at an even page.	
\ sbkodd	Section break starts at an odd page.	
Columns		
\ colsN	Number of columns for "snaking" (default is 1).	
\ colsxN	Space between columns in twips (default is 720).	
\ colnoN 	Column number to be formatted; used to specify formatting for variable-width columns.	
\ colsrN 	Space to right of column in twips; used to specify formatting for variable-width columns.	
\ colwN 	Width of column in twips; used to override the default constant width setting for variable-width columns.	
\ linebetcol	Line between columns.	
Line numbering		
\ linemodN	Line-number modulus‑amount to increase each line number (default is 1).	
\ linexN	Distance from the line number to the left text margin in twips (default is 360). The automatic distance is 0.	
\ linestartsN	Beginning line number (default is 1).	
\ linerestart	Line numbers restart at \ linestarts value.	
\ lineppage	Line numbers restart on each page.	
\ linecont	Line numbers continue from the preceding section.	
Page information		
\ pgwsxnN	N is the page width in twips. A \ sectd resets the value to that specified by \ paperwN in the document properties.	
\ pghsxnN	N is the page height in twips. A \ sectd resets the value to that specified by \ paperhN in the document properties.	
\ marglsxnN	N is the left margin of the page in twips. A \ sectd resets the value to that specified by \ marglN in the document properties.	
\ margrsxnN	N is the right margin of the page in twips. A \ sectd resets the value to that specified by \ margrN in the document properties.	
\ margtsxnN	N is the right margin of the page in twips. A \ sectd resets the value to that specified by \ margrN in the document properties.	
\ margbsxnN	N is the top margin of the page in twips. A \ sectd resets the value to that specified by \ margtN in the document properties.	
\ guttersxnN	N is the width of the gutter margin for the section in twips. A \ sectd resets the value to that specified by \ gutterN from the document properties. If Facing Pages is turned off, the gutter will be added to the left margin of all pages. If Facing Pages is turned on, the gutter will be added to the left side of odd-numbered pages and the right side of even-numbered pages.	
\ lndscpsxn	Page orientation is in landscape format. In order to mix portrait and landscape sections within a document, the \ landscape control should not be used so that the default for a section is portrait which may be overridden by the \ lndscpsxn control.	
\ titlepg	First page has a special format.	
\ headeryN	Header is n twips from the top of the page (default is 720).	
\ footeryN	Footer is n twips from the bottom of the page (default is 720).	
Page numbers		
\ pgnstartsN	Beginning page number (default is 1).	
\ pgncont	Continuous page numbering (default).	
\ pgnrestart	Page numbers restart at \ pgnstarts value.	
\ pgnxN	Page-number is n twips from the right margin (default is 720).	
\ pgnyN	Page-number is n twips from the top margin (default is 720).	
\ pgndec	Page-number format is decimal.	
\ pgnucrm	Page-number format is uppercase roman numeral.	
\ pgnlcrm	Page-number format is lowercase roman numeral.	
\ pgnucltr	Page-number format is uppercase letter.	
\ pgnlcltr	Page-number format is lowercase letter.	
\ pgnhnN 	Indicates which heading level to prepend to the page number. 0 specifies to not show heading level (default). Values 1-9 correspond to heading levels 1 through 9. This is a destination control word.	
\ pgnhnsh	Hyphen separator character.	
\ pgnhnsp	Period separator character.	
\ pgnhnsc	Colon separator character.	
\ pgnhnsm	Em-dash separator character.	
\ pgnhnsn	En-dash separator character.	
\ pnseclvlN	Used for multilevel lists. This property sets the default numbering style for each corresponding \ pnlvlN (bullets and numbering property for paragraphs) within that section. This is a destination control word.	
Vertical alignment		
\ vertalt	Text is top-aligned (default).	
\ vertalb	Text is bottom-aligned.	
\ vertalc	Text is centered vertically.	
\ vertalj	Text is justified vertically.	
Bidirectional controls		
\ rtlsect	This section will thread columns from right to left.	
\ ltrsect	This section will thread columns from left to right. This is the default.	

Headers and Footers
Headers and footers are RTF destinations. Each section in the document may have its own set of headers and footers. If no headers or footers are defined for a given section, the headers and footers from the previous section (if any) are used. The syntax for headers and footers are as follows:
<hdrftr>	'{' <hdrctl> <para>+ '}' <hdrftr>?	
<hdrctl>	\ header | \ footer | \ headerl | \ headerr | \ headerf | \ footerl | \ footerr | \ footerf	

Note that each separate <hdrftr> group must have a distinct <hdrctl> introducing it.
Control word	Meaning	
\ header	Header on all pages. This is a destination control word.	
\ footer	Footer on all pages. This is a destination control word.	
\ headerl	Header on left pages only. This is a destination control word.	
\ headerr	Header on right pages only. This is a destination control word.	
\ headerf	Header on first page only. This is a destination control word.	
\ footerl	Footer on left pages only. This is a destination control word.	
\ footerr	Footer on right pages only. This is a destination control word.	
\ footerf	Footer on first page only. This is a destination control word.	

The \ headerl, \ headerr, \ footerl and \ footerr control words are used in conjunction with the \ facingp control word, and the \ headerf and \ footerf control words are used in conjunction with the \ titlepg control word. Many RTF readers will not function correctly if the appropriate document properties are not set. In particular, if \facingp is not set, then only \header  and \footer should be used; if \facingp is set, then only \headerl, \headerr, \footerl, and \footerr should be used. You should not use \header to set the headers for both pages when \facingp is set. You can use \headerf if \titlepg is not set, but no header will appear. For more information, see "Document-Formatting Properties" and "Section-Formatting Properties".
If the previous section had a first page header or footer and had \ titlepg set, and the current section does not, then the previous section's first page header or footer is disabled. It is not, however destroyed; if subsequent sections have \ titlepg set, then the first page header or footer will be restored.
Paragraph Text
There are two kinds of paragraphs: plain paragraphs and table paragraphs. A table is a collection of paragraphs and a table row is a continuous sequence of paragraphs partitioned into cells. The \ intbl paragraph-formatting control word identifies the paragraph as part of a table. For more information, see "Table Definitions". This control is inherited between paragraphs which do not have paragraph properties reset with a \ pard.
<para>	<textpar> | <row>	
<textpar>	<pn>? <brdrdef>? <parfmt>* <apoctl>* <tabdef>? <shading>? (\subdocument | <char>+) ( \ par <para>)?	
<row>	<tbldef> <cell>+ \ row	
<cell>	<textpar>+ \ cell	

Paragraph-Formatting Properties
These control words (described as <parfmt> in the syntax description) specify generic paragraph formatting properties. These control words can appear anywhere in the body of the paragraph, not just at the beginning.
Note that if the \pard control word is not present, the current paragraph inherits all paragraph properties defined in the previous paragraph.
The paragraph formatting control words are listed in the following table:
Control word	Meaning	
\ pard	Resets to default paragraph properties.	
\ sN	Designates paragraph style; if a paragraph style is specified, style properties must be specified with the paragraph.	
\ hyphpar	Toggles automatic hyphenation for the paragraph.  Append with 1 or leave keyword by itself to toggle property on; append 0 (zero) to turn it off.	
\ intbl	Paragraph is part of a table.	
\ keep	Keep paragraph intact.	
\ nowidctlpar	No widow/orphan control. This is a paragraph-level property and is used to override the document-level \ widowctrl.	
\ keepn	Keep paragraph with the next paragraph.	
\ levelN	N is the outline level of the paragraph.	
\ noline	No line numbering.	
\ pagebb	Break page before the paragraph.	
\ sbys	Side-by-side paragraphs.	
Alignment		
\ ql	Left-aligned (default).	
\qr	Right-aligned.	
\ qj	Justified.	
\ qc	Centered.	
Indentation		
\ fiN	First-line indent (default is 0).	
\ liN	Left indent (default is 0).	
\ riN	Right indent (default is 0).	
Spacing		
\ sbN	Space before (default is 0).	
\ saN	Space after (default is 0).	
\ slN	Space between lines: if this control word is missing or if \ s1000 is used, the line spacing is automatically determined by the tallest character in the line; if n is a positive value, uses this size only if it is taller than the tallest character (otherwise uses the tallest character); if n is a negative value, uses the absolute value of n, even if it is shorter than the tallest character.	
\ slmultN	Line spacing multiple; indicates that the current line spacing is a multiple of "Single" line spacing. This keyword can only follow the \ sl keyword and works in conjunction with it. 
0	"At Least" or "Exactly" line spacing.
1	Multiple line spacing, relative to "Single".	
Subdocuments		
\ subdocumentN	This indicates that a subdocument in a Master Document/Subdocument relationship should occur here. N represents an index into the file table. This control word must be the only item in a paragraph.	
Bidirectional controls		
\ rtlpar	Text in this paragraph will be displayed with right to left precedence.	
\ ltrpar	Text in this paragraph will be displayed with left to right precedence. This is the default.	

Tabs
Any paragraph may have its own set of tabs. Tabs must follow this syntax:
<tabdef>	(<tab> | <bartab>) +	
<tab>	<tabkind>? <tablead>? \ tx 	
<bartab>	<tablead>? \ tb	
<tabkind>	\ tqr | \ tqc | \ tqdec 	
<tablead>	\ tldot | \ tlhyph | \ tlul | \ tleq	

Control word	Meaning	
\ txN	Tab position in twips from the left margin.	
\ tqr	Flush-right tab.	
\ tqc	Centered tab.	
\ tqdec	Decimal tab.	
\ tbN	Bar tab position in twips from the left margin.	
\ tldot	Leader dots.	
\ tlhyph	Leader hyphens.	
\ tlul	Leader underline.	
\ tlth	Leader thick line.	
\ tleq	Leader equal sign.	

Bullets and Numbering
To provide compatibility with existing RTF readers, all applications with the ability to automatically bullet or number paragraphs will also emit the generated text as plain text in the \ pntext group. This will allow existing RTF readers to capture the plain text, and safely ignore the autonumber instructions. This group precedes all bulleted or numbered paragraphs, and will contain all the text and formatting that would be auto-generated. It should precede the {\ *\ pn _ } destination, and it is the responsibility of RTF readers that understand the {\ *\ pn _ } destination to ignore the \ pntext group.
<pn>	<pnseclvl> | <pnpara>	
<pnseclvl>	{\*' \pnseclvl <pndesc>'}'	
<pnpara>	<pntext> <pnprops>	
<pntext>	'{' \pntext <char> '}'	
<pnprops>	\*' \pn <pnlevel> <pndesc>'}'	
<pnlevel>	\pnlvl | \pnlvlblt | \pnlvlbody | \pnlvlcont	
<pndesc>	<pnnstyle> & <pnchrfmt> & <pntxtb> & <pntxta> & <pnfmt>	
<pnnstyle>	\pncard | \pndec | \pnucltr | \pnucrm | \pnlcltr | \pnlcrm | \pnord | \pnordt	
<pnchrfmt>	\pnf? & \pnfs? & \pnb? & \pni? & \pncaps? & \pnscaps? & <pnul>? & \pnstrike? & \pncf?	
<pnul>	\pnul | \pnuld | \pnuldb | \pnulnone | \pnulw	
<pnfmt>	\pnnumonce? & \pnacross? & \pnindent? & \pnsp? & \pnprev? & <pnjust>? & \pnstart? & \pnhang? & \pnrestart?	
<pnjust>	\pnqc | \pnql | \pnqr	
<pntxtb>	'{' \pntxtb #PCDATA'}'	
<pntxta>	'{' \pntxta #PCDATA'}'	

Settings marked with an asterisk can be turned off by appending 0 (zero) to the control word.
Control word	Definition	
\ pntext	This group precedes all numbered/bulleted paragraphs, and contains all auto-generated text and formatting. It should precede the {\ *\ pn _ } destination, and it is the responsibility of RTF readers that understand the {\ *\ pn _ } destination to ignore this preceding group. This is a destination control word.	
\ pn	Turns on paragraph numbering. This is a destination control word.	
\ pnlvlN 	Paragraph level, where N is a level from 1 to 9. Default set by \pnseclvlN section-formatting property.	
\ pnlvlblt	Bulleted paragraph (corresponds to level 11). The actual character used for the bullet is stored in the \ pntxtb group.	
\ pnlvlbody	Simple paragraph numbering (corresponds to level 10).	
\ pnlvlcont	Continue numbering, but do not display number (“skip numbering”).	
\ pnnumonce	Number each cell only once in a table (default is to number each paragraph in a table).	
\ pnacross	Number across rows (Default is to number down columns).	
\ pnhang	Paragraph uses a hanging indent.	
\ pnrestart 	Restart numbering after each section break. Note that this keyword is only used in conjunction with Heading Numbering (applying multilevel numbering to Heading style definitions).	
\ pncard	Cardinal numbering (One, Two, Three).	
\ pndec	Decimal numbering (1, 2, 3).	
\ pnucltr	Uppercase alphabetic numbering (A, B, C).	
\ pnucrm	Uppercase roman numbering (I, II, III).	
\ pnlcltr	Lowercase alphabetic numbering (a, b, c).	
\ pnlcrm	Lowercase roman numbering. (i, ii, iii).	
\ pnord	Ordinal numbering (1st, 2nd, 3rd).	
\ pnordt	Ordinal text numbering (First, Second, Third).	
\ pnb	Bold numbering.*	
\ pni	Italic numbering.*	
\ pncaps	All Caps numbering.*	
\ pnscaps	Small Caps numbering.*	
\ pnul	Continuous underline.*	
\ pnuld	Dotted underline.	
\ pnuldb	Double underline.	
\ pnulnone	Turns off underlining.	
\ pnulw	Word underline.	
\ pnstrike	Strikethrough numbering.*	
\ pncfN 	Foreground color - index into color table. Default is zero.	
\ pnfN 	Font number.	
\ pnfsN 	Font size (in half-points).	
\ pnindentN 	Minimum distance from margin to body text.	
\ pnspN	Distance from number text to body text.	
\ pnprev	Used for multilevel lists. Include information from previous level in this level; for example, 1, 1.1, 1.1.1, 1.1.1.1	
\ pnqc	Centered numbering.	
\ pnql	Left justified numbering.	
\ pnqr	Right justified numbering.	
\ pnstartN 	Start At number.	
\ pntxta	Text after. This group contains the text that succeeds the number. This is a destination control word.	
\ pntxtb	Text before. This group contains the text that precedes the number. This is a destination control word. 	

Note that there is a limit of 32 characters total for the sum of text before and text after for simple numbering. Mulilevel numbering has a limit of 64 characters total for the sum of all levels.
Paragraph Borders
Paragraph borders have the following syntax:
<brdrdef>	(<brdrseg> <brdr> )+	
<brdrseg>	\ brdrt | \ brdrb | \ brdrl | \ brdrr | \ brdrbtw | \ brdrbar | \ box	
<brdr>	<brdrk>  \ brdrw? \ brsp? \ brdrcf?	
<brdrk>	\ brdrs | \ brdrth | \ brdrsh | \ brdrdb | \ brdrdot | \brdrdash | \ brdrhair 	

Control word	Meaning	
\ brdrt	Border top.	
\ brdrb	Border bottom.	
\ brdrl	Border left.	
\ brdrr	Border right.	
\ brdrbtw	Consecutive paragraphs with identical border formatting are considered to be part of a single group with the border information applying to the entire group. In order to have borders around individual paragraphs within the group, the \ brdrbtw control must be specified for that paragraph.	
\ brdrbar	Border outside (right side of odd-numbered pages, left side of even-numbered pages).	
\ box	Border around the paragraph (box paragraph).	
\ brdrs	Single-thickness border.	
\ brdrth	Double-thickness border.	
\ brdrsh	Shadowed border.	
\ brdrdb	Double border.	
\ brdrdot	Dotted border.	
\brdrdash	Dashed border.	
\ brdrhair	Hairline border.	
\ brdrwN	N is the width in twips of the pen used to draw the paragraph border line. 	
\ brdrcfN	N is the color of the paragraph border; specified as an index into the color table in the RTF header. 	
\ brspN	Space in twips between borders and the paragraph.	

Paragraph Shading
Paragraph shading has the following syntax:
<shading>	( \ shading | <pat>) \ cfpat? \ cbpat?	
<pat>	\ bghoriz | \ bgvert | \ bgfdiag | \ bgbdiag | \ bgcross | \ bgdkhoriz | \ bgdkvert | \ bgdkfdiag | \ bgdkbdiag | \ bgdkcross | \ bgdkdcross 	

Control word	Meaning	
\ shadingN	N is the shading of the paragraph in hundredths of a percent.	
\ bghoriz	Specifies a horizontal background pattern for the paragraph.	
\ bgvert	Specifies a vertical background pattern for the paragraph.	
\ bgfdiag	Specifies a forward diagonal background pattern for the paragraph ( \ \ \ \ )	
\ bgbdiag	Specifies a backward diagonal background pattern for the paragraph (//// ).	
\ bgcross	Specifies a cross background pattern for the paragraph.	
\ bgdcross	Specifies a diagonal cross background pattern for the paragraph.	
\ bgdkhoriz	Specifies a dark horizontal background pattern for the paragraph.	
\ bgdkvert	Specifies a dark vertical background pattern for the paragraph.	
\ bgdkfdiag	Specifies a dark forward diagonal background pattern for the paragraph ( \ \ \ \ )	
\ bgdkbdiag	Specifies a dark backward diagonal background pattern for the paragraph (//// ).	
\ bgdkcross	Specifies a dark cross background pattern for the paragraph.	
\ bgdkdcross	Specifies a dark diagonal cross background pattern for the paragraph.	
\ cfpatN	N is the line color of the background pattern, specified as an index into the document's color table.	
\ cbpatN	N is the background color of the background pattern, specified as an index into the document's color table.	

Absolute-Positioned Objects and Frames
The following paragraph-formatting control words specify the location of a paragraph on the page. Consecutive paragraphs with the same frame formatting are considered to be part of the same frame. In order for two framed paragraphs to appear at the same position on a page, they must be separated by a paragraph with different, or no frame information.
Note that if any paragraph in a table row has any of these control words specified, then all paragraphs in the table row must have the same control words specified, either by inheriting the properties from the previous paragraph or by respecifying the controls.
Paragraph positioning has the following syntax:
<apoctl>	<framesize> & <horzpos> & <vertpos> & <txtwrap> & <dropcap>	
<framesize>	\ absw? & \ absh?	
<horzpos>	<hframe> & <hdist>	
<vertpos>	<vframe> & <vdist>	
<txtwrap>	\ nowrap? & \ dxfrtext? & \ dfrmtxtx? &\ dfrmtxty?	
<dropcap>	\dropcapli? & \dropcapt?	
<hframe>	\ phmrg? | \ phpg? | \ phcol?	
<hdist>	\ posx? | \ posnegx? | \ posxc? | \ posxi? | \ posxo? | \ posxl? | \ posxr?	
<vframe>	\ pvmrg? | \ pvpg? | \ pvpara?	
<vdist>	\ posy? | \ posnegy? | \ posyt? | \ posyil? | \ posyb? | \ posyc?	

Control word	Meaning	
\ abswN	N is the width of the frame in twips. 	
\ abshN	N is the height of the frame in twips. A positive number indicates the minimum height of the frame and a negative number indicates the exact height of the frame. A value of zero indicates that the height of the frame adjusts to the contents of the frame. This is the default for frames where no height is given.	
Horizontal position		
\ phmrg	Use the margin as the horizontal reference frame	
\ phpg	Use the page as the horizontal reference frame	
\ phcol	Use the column as the horizontal reference frame. This is the default if no horizontal reference frame is given.	
\ posxN	Positions the frame n twips from the left edge of the reference frame.	
\ posnegxN 	Same as \ posx, but allows arbitrary negative values. 	
\ posxc	Centers the frame horizontally within the reference frame.	
\ posxi	Positions the paragraph horizontally inside the reference frame.	
\ posxo	Positions the paragraph horizontally outside the reference frame.	
\ posxr	Positions the paragraph to the right within the reference frame.	
\ posxl	Positions the paragraph to the left within the reference frame. This is the default if no horizontal positioning information is given.	
Vertical position		
\ pvmrg	Positions the reference frame vertically relative to the margin. This is the default if no vertical frame positioning information is given.	
\ pvpg	Positions the reference frame vertically relative to the page.	
\ pvpara	Positions the reference frame vertically relative to the top of the top left corner of the next unframed paragraph in the RTF stream.	
\ posyN	Positions the paragraph n twips from the top edge of the reference frame.	
\ posnegyN 	Same as \ posy, but allows arbitrary negative values.	
\ posyil	Positions the paragraph vertically to be in-line.	
\ posyt	Positions the paragraph at the top of the reference frame.	
\ posyc	Centers the paragraph vertically within the reference frame.	
\ posyb	Positions the paragraph at the bottom of the reference frame.	
Text wrapping		
\ nowrap	Prevents text from flowing around the APO.	
\ dxfrtextN	Distance in twips of an absolute-positioned paragraph from text in the main text flow in all directions.	
\ dfrmtxtxN	N is the horizontal distance in twips from text on both sides of the frame.	
\ dfrmtxtyN	N is the vertical distance in twips from text on both sides of the frame.	
Drop caps		
\ dropcapliN 	Number of lines drop cap is to occupy. Range is 1 through 10.	
\ dropcaptN 	Type of drop cap:
1	In-text drop cap.
2	 Margin drop cap.	

The following is an example of absolute-positioned text in a document:
\par \pard \pvpg\phpg\posxc\posyt\absw5040\dxfrtest173 First APO para
\par \pard \phmrg\posxo\posyc\dxfrtext1152 Second APO para

Table Definitions
There is no RTF table group; instead, tables are specified as paragraph properties. A table is represented as a sequence of table rows. A table row is a continuous sequence of paragraphs partitioned into cells. The table row begins with the \ trowd control word and ends with the \ row control word. Every paragraph that is contained in a table row must have the \ intbl control word specified or inherited from the previous paragraph. A cell may have more than one paragraph in it; the cell is terminated by a cell mark (the \ cell control word), and the row is terminated by a row mark (the \ row control word). Table rows can also be absolutely positioned. In this case, every paragraph in a table row must have the same positioning controls (see the <apoctl> controls in “Absolute-Positioned Objects and Frames”). Table properties may be inherited from the previous row; therefore, a series of table rows may be introduced by a single <tbldef>.
An RTF table row has the following syntax, as shown in the general paragraph-text syntax given earlier.
<row>	<tbldef> <cell>+ \ row	
<cell>	<textpar>+ \ cell	

A table definition has the following syntax:
<tbldef>	\ trowd \ trgaph <rowjust>?  & <rowwrite>? & \ trleft? \trheader? & \trkeep? <celldef>+	
<rowjust>	 \ trql | \ trqr | \ trqc 	
<celldef>	( \ clmgf? & \ clmrg? <celltop>? & <cellleft>? & <cellbot>? & <cellright>? & <cellshad>?) \ cellx	
<celltop>	\ clbrdrt <brdr>	
<cellleft>	\ clbrdrl <brdr>	
<cellbot>	\ clbrdrb <brdr>	
<cellright>	\ clbrdrr <brdr>	
<cellshad>	<cellpat>? \ clcfpat? & \ clcbpat? & \ clshdng 	
<cellpat>	\ clbghoriz | \ clbgvert | \ clbgfdiag | \ clbgbdiag | \ clbgcross | \ clbgdkhor | \ clbgdkvert | \ clbgdkfdiag | \ clbgdkbdiag | \ clbgdkcross | \ clbgdkdcross 	
<rowwrite>	\ ltrrow | \ rtlrow	

Note for <tbldef> that the number of cellxs must match the number of \cells in the \row.
The following control words further define options for each row of the table:
Control word	Meaning	
\ trowd	Sets table row defaults.	
\ trgaphN	Half the space between the cells of a table row in twips.	
\ cellxN	Defines the right boundary of a table cell, including its half of the space between cells.	
\ clmgf	The first cell in a range of table cells to be merged.	
\ clmrg	Contents of the table cell are merged with those of the preceding cell.	
Row formatting		
\ trql	Left-justifies a table row with respect to its containing column.	
\ trqr	Right-justifies a table row with respect to its containing column.	
\ trqc	Centers a table row with respect to its containing column.	
\ trleftN	Position of the leftmost edge of the table with respect to the left edge of its column.	
\ trrhN	Height of a table row in twips; when 0, the height is sufficient for all the text in the line; when positive, the height is guaranteed to be at least the specified height; when negative, the absolute value of the height is used, regardless of the height of the text in the line.	
\ trhdr	Table row header; this row should appear at the top of every page the current table appears on.	
\ trkeep	Table row keep; this row cannot be split by a page break. This property is assumed off unless the keyword is present.	
Bidirectional controls		
\ rtlrow	Cells in this table row will have right to left precedence.	
\ ltrrow	Cells in this table row will have right to left precedence. This is the default.	
Row borders		
\ trbrdrt	Table row border top.	
\ trbrdrl	Table row border left.	
\ trbrdrb	Table row border bottom.	
\ trbrdrr	Table row border right.	
\ trbrdrh	Table row border horizontal (inside).	
\ trbrdrv	Table row border vertical (inside).	
Cell borders		
\ clbrdrb	Bottom table cell border.	
\ clbrdrt	Top table cell border.	
\ clbrdrl	Left table cell border.	
\ clbrdrr	Right table cell border.	
Cell shading and background pattern		
\ clshdngN	N is the shading of a table cell in hundredths of a percent. This control should be included in RTF along with cell border information.	
\ clbghoriz	Specifies a horizontal background pattern for the cell.	
\ clbgvert	Specifies a vertical background pattern for the cell.	
\ clbgfdiag	Specifies a forward diagonal background pattern for the cell ( \ \ \ \ )	
\ clbgbdiag	Specifies a backward diagonal background pattern for the cell (//// ).	
\ clbgcross	Specifies a cross background pattern for the cell.	
\ clbgdcross	Specifies a diagonal cross background pattern for the cell.	
\ clbgdkhor	Specifies a dark horizontal background pattern for the cell.	
\ clbgdkvert	Specifies a dark vertical background pattern for the cell.	
\ clbgdkfdiag	Specifies a dark forward diagonal background pattern for the cell ( \ \ \ \ )	
\ clbgdkbdiag	Specifies a dark backward diagonal background pattern for the cell (//// ).	
\ clbgdkcross	Specifies a dark cross background pattern for the cell.	
\ clbgdkdcross	Specifies a dark diagonal cross background pattern for the cell.	
\ clcfpatN	N is the line color of the background pattern.	
\ clcbpatN	N is the background color of the background pattern.	

The following is an example of table text:
\par \trowd \trqc\trgaph108\trrh280\trleft36
\clbrdrt\brdrth \clbrdrl\brdrth \clbrdrb\brdrdb
\clbrdrr\brdrdb \cellx3636\clbrdrt\brdrth
\clbrdrl\brdrdb \clbrdrb\brdrdb \clbrdrr\brdrdb
\cellx7236\clbrdrt\brdrth \clbrdrl\brdrdb
\clbrdrb\brdrdb \clbrdrr\brdrdb \cellx10836\pard \intbl
\cell \pard \intbl \cell \pard \intbl \cell \pard \intbl \row
\trowd \trqc\trgaph108\trrh280\trleft36 \clbrdrt\brdrdb
\clbrdrl\brdrth \clbrdrb \brdrsh\brdrs \clbrdrr\brdrdb
\cellx3636\clbrdrt\brdrdb \clbrdr \brdrdb
\clbrdrb\brdrsh\brdrs \clbrdrr\brdrdb
\cellx7236\clbrdrt\brdrdb \clbrdr \brdrdb
\clbrdrb\brdrsh\brdrs \clbrdrr\brdrdb \cellx10836\pard
\intbl \cell \pard \intbl \cell \pard \intbl \cell \pard
\intbl \row \pard

Character Text
Character text has the following syntax:
<char>	<ptext> | <atext> | '{' <char> '}'	
<ptext>	(<chrfmt>* <data>+ )+	
<data>	#PCDATA | <spec> | <pict> | <obj> | <do> | <foot> | <annot> | <field> | <idx> | <toc> | <book>	

Character-Formatting Properties
These control words (described as <chrfmt> in the syntax description) change character-formatting properties. A control word preceding plain text turns on the specified attribute. Some control words (indicated in the following table by an asterisk following the description) can be turned off by the control word followed by 0 (zero). For example, \ b turns on bold, while \ b0 turns off bold.
The character-formatting control words are listed in the following table:
Control word	Meaning	
\ plain	Reset character-formatting properties to a default value defined by the application. The associated character formatting properties (described in the section "Associated Character Properties") are also reset.	
\ b	Bold*	
\ caps	All capitals*	
\ deleted	Marks the text as deletion revision marked*	
\ dnN	Subscript position in half-points (default is 6)	
\ sub	Subscripts text and shrinks point size according to font information.	
\ nosupersub	Turns off superscripting or subscripting.	
\ expndN	Expansion or compression of the space between characters in quarter-points; a negative value compresses (default is 0)	
\ expndtwN	Expansion or compression of the space between characters in twips; a negative value compresses. For backwards compatibility, both \ expndtw and \ expnd should be emitted.	
\ kerningN 	Point size (in half-points) above which to kern character pairs. \ kerning0 turns off kerning.	
\ fN	Font number	
\ fsN	Font size in half-points (default is 24)	
\ i	Italic*	
\ outl	Outline*	
\ revised	Text has been added since revision marking was turned on	
\ revauthN	Index into the revision table. The content of the Nth group in the revision table is considered to be the author of that revision.	
\ revdttmN	Time of the revision. The 32-bit DTTM structure is emitted as a long integer.	
\ scaps	Small capitals*	
\ shad	Shadow*	
\ strike	Strikethrough*	
\ ul	Continuous underline. \ ul0 turns off all underlining	
\ uld	Dotted underline	
\ uldb	Double underline	
\ ulnone	Stops all underlining	
\ ulw	Word underline	
\ upN	Superscript position in half-points (default is 6)	
\ super	Superscripts text and shrinks point size according to font information.	
\ v	Hidden text*	
\ cfN	Foreground color (default is 0)	
\ cbN	Background color (default is 0)	
\ rtlch	The character data following this control word will be treated as a right to left run.	
\ ltrch	The character data following this control word will be treated as a left to right run. This is the default.	
\ csN	Designates character style; if a character style is specified, style properties must be specified with the character run.	
\ cchsN 	Indicates any characters not belonging to the default document character set and which character set they do belong to. Macintosh character sets are represented by values greater than 255. The values for N correspond to the values for the \ fcharset keyword.	
\ langN	Applies a language to a character. N is a number corresponding to a language. A \ plain resets the language property to the language defined by \ deflangN in the document properties.	

The following table defines the standard languages used by Microsoft. This table was generated by the Unicode group for use with TrueType and Unicode. 
Language name	Language ID	
No Language	0x0400	
Albanian	0x041c	
Arabic	0x0401	
Bahasa	0x0421	
Belgian Dutch	0x0813	
Belgian French	0x080c	
Brazilian Portuguese	0x0416	
Bulgarian	0x0402	
Catalan	0x0403	
Croato-Serbian (Latin)	0x041a	
Czech	0x0405	
Danish	0x0406	
Dutch	0x0413	
English (Aus.)	0x0c09	
English (UK)	0x0809	
English (US)	0x0409	
Finnish	0x040b	
French	0x040c	
French (Canadian)	0x0c0c	
German	0x0407	
Greek	0x0408	
Hebrew	0x040d	
Hungarian	0x040e	
Icelandic	0x040f	
Italian	0x0410	
Japanese	0x0411	
Korean	0x0412	
Norwegian (Bokmal)	0x0414	
Norwegian (Nynorsk)	0x0814	
Polish	0x0415	
Portuguese	0x0816	
Rhaeto-Romanic	0x0417	
Romanian	0x0418	
Russian	0x0419	
Serbo-Croatian (Cyrillic)	0x081a	
Simplified Chinese	0x0804	
Slovak	0x041b	
Spanish (Castilian)	0x040a	
Spanish (Mexican)	0x080a	
Swedish	0x041d	
Swiss French	0x100c	
Swiss German	0x0807	
Swiss Italian	0x0810	
Thai	0x041e	
Traditional Chinese	0x0404	
Turkish	0x041f	
Urdu	0x0420	

To read negative \ expnd values from Word for the Macintosh, an RTF reader should use only the low-order 6 bits of the value read. Word for the Macintosh does not emit negative values for \ expnd. Instead, it treats values from 57 through 63 as ‑7 through ‑1, respectively (the low-order 6 bits of 57 through 63 are the same as ‑7 through ‑1).
Associated Character Properties
Bi-directional aware text processors often need to associate a Latin (or other left to right) font with an Arabic or Hebrew (or other right to left) font. The association is needed to match commonly used pairs of fonts in name, size and other attributes. While RTF defines a broad variety of associated character properties, any implementation may choose to not implement a particular associated character property and share the property between the Latin and Arabic fonts.
Property association uses the following syntax:
<atext>	<ltrrun> | <rtlrun>	
<ltrrun>	\ rtlch \ af & <aprops>* \ ltrch <ptext>	
<rtlrun>	\ ltrch \ af & <aprops>* \ rtlch <ptext>	

Here are some examples of property association:
\ ltrch\ af2\ ab\ au\ rtlch\ u Sample Text

This is a right-to-left run. Text will use the default bi-directional font, and will be underlined. The left-to right font associated with this run is font 2 (in the font table) with bolding and underlining.
\ plain\ rtlch\ ltrch Sample Text 

This is a left to right run. The right to left font and the left to right font use the default font (specified by \ deff).
\ rtlch\ af5\ ab\ ai\ ltrch\ u Sample Text

This is a left to right run. The right to left font is font 5, bold and italicized. The left to right font is the default font, underlined. If the reader does not support underlining in the associated font, then both fonts will be underlined.
The property association control words (described as <aprops> in the syntax description) are listed in the following table. Some control words (indicated in the following table by an asterisk following the description) can be turned off by the control word followed by 0 (zero).
Control word	Meaning	
\ ab	Associated font is Bold*	
\ acaps	Associated font is All capitals*	
\ acfN	Associated Foreground color (default is 0)	
\ adnN	Associated font is Subscript position in half-points (default is 6)	
\ aexpndN	Expansion or compression of the space between characters in quarter-points; a negative value compresses (default is 0)	
\ afN	Associated Font number (default is 0)	
\ afsN	Associated Font size in half-points (default is 24)	
\ ai	Associated font is Italic*	
\ alangN	Language ID for the Associated font. (This uses the same language ID codes described above.)	
\ aoutl	Associated font is Outline*	
\ ascaps	Associated font is Small capitals*	
\ ashad	Associated font is Shadow*	
\ astrike	Associated font is Strikethrough*	
\ aul	Associated font is continuous underlined. \ aul0 turns off all underlining for the alternate font.	
\ auld	Associated font is dotted underlined	
\ auldb	Associated font is double underlined	
\ aulnone	Associated font is no longer underlined.	
\ aulw	Associated font is word underlined.	
\ aupN	Superscript position in half-points (default is 6)	

Special Characters
The RTF standard includes control words for special characters (described as <spec> in the syntax description). If a special-character control word is not recognized by the RTF reader, it is ignored and the text following it is considered plain text. The RTF specification is flexible enough to allow new special characters to be added for interchange with other software.
The special RTF characters are listed in the following table:
Control word	Meaning	
\ chdate	Current date (as in headers).	
\ chdpl	Current date in long format, e.g. Thursday, October 28, 1993	
\ chdpa	Current date in abbreviated format, e.g. Thu, Oct 28, 1993	
\ chtime	Current time (as in headers).	
\ chpgn	Current page number (as in headers).	
\ sectnum	Current section number (as in headers).	
\ chftn	Automatic footnote reference (footnotes follow in a group).	
\ chatn	Annotation reference (annotation text follows in a group).	
\ chftnsep	Anchoring character for footnote separator.	
\ chftnsepc	Anchoring character for footnote continuation.	
\ cell	End of table cell.	
\ row	End of table row.	
\ par	End of paragraph.	
\ sect	End of section and paragraph.	
\ page	Required page break.	
\ column	Required column break.	
\ line	Required line break (no paragraph break).	
\ softpage	Non-required page break. Emitted as it appears in galley view.	
\ softcol	Non-required column break. Emitted as it appears in galley view.	
\ softline	Non-required line break. Emitted as it appears in galley view.	
\ softlheightN	Non-required line height. This is emitted as a prefix to each line.	
\ tab	Tab character; same as ASCII 9.	
\ emdash	Em-dash (long hyphen).	
\ endash	En-dash (short hyphen).	
\ emspace	Non-breaking space equal to width of character "m" in current font.	
\ enspace	Non-breaking space equal to width of character "n" in current font.	
\ bullet	Bullet character.	
\ lquote	Left single quotation mark.	
\ rquote	Right single quotation mark.	
\ ldblquote	Left double quotation mark.	
\ rdblquote	Right double quotation mark.	
\ |	Formula character.	
\ ~	Non-breaking space.	
\ -	Optional hyphen.	
\ _	Non-breaking hyphen.	
\ :	Specifies a sub-entry in an index entry.	
\ *	Marks a destination whose text should be ignored if not understood by the RTF reader.	
\ 'hh	A hexadecimal value, based on the specified character set (may be used to identify 8-bit values).	
\ ltrmark	The following characters should be displayed from left to right; usually found at the start of \ltrch runs.	
\ rtlmark	The following characters should be displayed from right to left; usually found at the start of \rtlch runs.	
\ zwj	Zero Width Joiner. This is used to ligate words.	
\ zwnj	Zero-Width Non-Joiner. This is used for unligating a word. 	

Note that an ASCII 9 is accepted as a tab character. A carriage return (character value 13) or line feed (character value 10) will be treated as a \ par control if the character is preceded by a backslash. You must include the backslash or RTF ignores the control word. (You may also want to insert a carriage-return/line-feed pair without backslashes at least every 255 characters for better text transmission over communication lines.)
Here are the code values for the following special characters:
Keyword	Word for Windows and OS/2	Apple Macintosh	
\ bullet	149	0xA5	
\ endash	150	0xD1	
\ emdash	151	0xD0	
\ lquote	145	0xD4	
\ rquote	146	0xD5	
\ ldblquote	147	0xD2	
\ rdblquote	148	0xD3	

Bookmarks
This destination may specify one of two control words: \ *\ bkmkstart, which indicates the start of the specified bookmark, and \ *\ bkmkend, which indicates the end of the specified bookmark.
Bookmarks have the following syntax:
<book>	<bookstart> | <bookend>	
<bookstart>	'{\ *' \ bkmkstart ( \ bkmkcolf? &  \ bkmkcoll?) #PCDATA '}'	
<bookend>	'{\ *' \ bkmkend #PCDATA '}'	

A bookmark is shown in the following example:
\pard\plain \fs20 Kuhn believes that science, rather than 
discovering in experience certain structured 
relationships, actually creates (or already participates in) 
a presupposed structure to which it fits the data. 
{\bkmkstart paradigm} Kuhn calls such a presupposed 
structure a paradigm.{\bkmkend paradigm}

The bookmark start and the bookmark end are matched via the bookmark tag. In the example, the bookmark tag was paradigm. Each bookmark start should have a matching bookmark end; however, the bookmark start and the bookmark end may be in any order.
\ bkmkcolfN is used to denote the first column of a table covered by a bookmark. If it is not included then the first column will be assumed. \ bkmkcollN is used to denote the last column. If it is not used then the last column will be assumed. These controls are used within the \ *\ bkmkstart destination following the \ bkmkstart control. For example, {\ *\ bkmkstart\ bkmkcolf2\ bkmkcoll5 Table1} will place the bookmark "Table1" on columns two through five of a table.
Pictures
An RTF file can include pictures created with other applications. These pictures can be in hexadecimal (default) or binary format. Pictures are destinations, and begin with the \ pict control word. A picture destination has the following syntax:
<pict>	'{' \ pict (<brdr>? & <shading>? & <picttype> & <pictsize> & <metafileinfo>?) <data> '}'	
<picttype>	\ macpict | \ pmmetafile | \ wmetafile | \ dibitmap <bitmapinfo> | \ wbitmap <bitmapinfo>	
<bitmapinfo>	\ wbmbitspixel  & \ wbmplanes & \ wbmwidthbytes	
<pictsize>	( \ picw? & \ pich?) \ picscalex? & \ picscaley? & \ picscaled? & \ piccropt? & \ piccropb? & \ piccropr? & \ piccropl?	
<metafileinfo>	\picbmp & \picbpp	
<data>	( \ bin #BDATA) | #SDATA	

These control words are described in the following table (some measurements in this table are in twips; a twip is one-twentieth of a point):
Control word	Meaning	
\ macpict	Source of the picture is QuickDraw.	
\ pmmetafileN	Source of the picture is an OS/2 metafile; the n argument identifies the metafile type.	
\ wmetafileN	Source of the picture is a Windows metafile; the n argument identifies the metafile type (default is 1).	
\ dibitmapN	Source of the picture is a Windows Device Independent bitmap; the n argument identifies the bitmap type (default is 0).	
\ wbitmapN	Source of the picture is a Windows Device dependent bitmap; the n argument identifies the bitmap type (default is 0‑monochrome bitmap).	
Bitmap information		
\ wbmbitspixelN	Number of adjacent color bits on each plane needed to define a pixel (default is 1)	
\ wbmplanesN	Number of bitmap color planes (default is 1).	
\ wbmwidthbytesN	Specifies the number of bytes in each raster line. This value must be an even number since the Windows graphics device interface (GDI) assumes that the bit values of a bitmap form an array of integer (two-byte) values. In other words, wbmwidthbytes x 8 must be the next multiple of 16 greater than or equal to the picw (bitmap width in pixels) value.	
Picture size, scaling, and cropping		
\ picwN	xExt field if the picture is a metafile; picture width in pixels if the picture is a bitmap or from QuickDraw.	
\ pichN	yExt field if the picture is a metafile; picture height in pixels if the picture is a bitmap or from QuickDraw.	
\ picwgoalN	Desired width of the picture in twips.	
\ pichgoalN	Desired height of the picture in twips.	
\ picscalexN	Horizontal scaling value; the n argument is a value representing a percentage (default is 100).	
\ picscaleyN	Vertical scaling value; the n argument is a value representing a percentage (default is 100).	
\ picscaled	Scales the picture to fit within the specified frame; used only with \ macpict pictures.	
\ piccroptN	Top cropping value in twips; a positive value crops toward the center of the picture; a negative value crops away from the center, adding a space border around picture (default is 0).	
\ piccropbN	Bottom cropping value in twips; a positive value crops toward the center of the picture; a negative value crops away from the center, adding a space border around picture (default is 0).	
\ piccroplN	Left cropping value in twips; a positive value crops toward the center of the picture; a negative value crops away from the center, adding a space border around picture (default is 0).	
\ piccroprN	Right cropping value in twips; a positive value crops toward the center of the picture; a negative value crops away from the center, adding a space border around picture (default is 0).	
Metafile information		
\ picbmp	Specifies whether a metafile contains a bitmap.	
\ picbppN	Specifies the bits per pixel in a metafile bitmap. Valid range is 1–32, with 1, 4, 8, and 24 being recognized.	
Picture data		
\ binN	Picture is in binary format; the numeric parameter n is the number of bytes that follow. Unlike all other controls, this keyword takes a 32-bit parameter.	

The \ wbitmap control word is optional; if no other picture type is specified, the picture is assumed to be a Windows bitmap. If \ wmetafile is specified, the n argument can be one of the following types:
Type	n argument	
MM_TEXT	1	
MM_LOMETRIC	2	
MM_HIMETRIC	3	
MM_LOENGLISH	4	
MM_HIENGLISH	5	
MM_TWIPS	6	
MM_ISOTROPIC	7	
MM_ANISOTROPIC	8	

For more information about these types, see Volume 1 of the Programmer’s Reference in the Microsoft Windows 3.1 SDK.
If \ pmmetafile is specified, the n argument can be one of the following types:
Type	n argument	
PU_ARBITRARY	0x0004	
PU_PELS	0x0008	
PU_LOMETRIC	0x000C	
PU_HIMETRIC	0x0010	
PU_LOENGLISH	0x0014	
PU_HIENGLISH	0x0018	
PU_TWIPS	0x001C	

For more information about these types, see Volume 2 of the OS/2 Programmer’s Reference.
Be careful with spaces following control words when dealing with pictures in binary format. When reading files, RTF considers the first space after a control word the delimiter and subsequent spaces part of the document text. Therefore, any extra spaces are attached to the picture, with unpredictable results.
RTF writers should not use the carriage-return/line-feed (CRLF) combination to break up pictures in binary format. If they do, the CRLF is treated as literal text and considered part of the picture data.
The picture in hexadecimal or binary format follows the picture-destination control words. The following example illustrates the destination format:
{\pict\wbitmap0\picw170\pich77\wbmbitspixel1\wbmplanes1\wmbwidthbytes22
\picwgoal505
\pichgoal221
\picscalex172
\picscaley172
49f2000000000273023d1101a030
3901000a000000000273023d98
0048000200000275
02040000200010275023e000000000
273023d000002b90002b90002
b90002b90002b9
0002b90002b90002b90002b90002b90002
b92222b90002b90002b90
002b90002b9
0002b90002b90002b90002b9000

Objects
Microsoft OLE Links, Microsoft OLE Embedded Objects, and Macintosh Edition Manager Subscriber Objects are represented in RTF as objects. Objects are destinations that contain a data part and a result part. The data part is generally hidden to the application that produced the document. A separate application uses the data and supplies the appearance of the data. This appearance is the result part of the object.
The representation of objects in RTF is designed to allow RTF readers that don't understand objects or don't use a particular type of object to use the current result in place of the object. This allows the appearance of the object to be maintained through the conversion even though the object functionality is lost. Each object comes with optional information about the object, a required destination that contains the object data, and an optional result that contains the current appearance of the object. This result contains standard RTF. It is an important responsibility of the RTF writer to provide the result so that existing RTF readers that either do not support objects or that do not support the particular type of object will be able to display the object.
When the object is an OLE embedded or linked object, the data part of the object is the structure produced by the OLESaveToStream function. Some OLE clients rely on the OLE system to render the object and a copy of the result is not available to the RTF writer for that application. For these cases, the object result may be extracted from the structure produced by the OLESaveToStream function. For information about the OLESaveToStream function, see the Microsoft Object Linking and Embedding SDK.
The syntax for this destination is:
<obj>	( '{' \ object (<objtype> & <objmod>? & <objclass>? & <objname>? & <objtime>? & <objsize>? & <rsltmod>?) <objdata> <result> '}' ) | <pubobject>	
<objtype>	\ objemb | \ objlink | \ objautlink | \ objsub | \ objpub | \ objicemb	
<objmod>	\ linkself? & \ objlock? | \objupdate?	
<objclass>	'{\ *' \ objclass #PCDATA '}'	
<objname>	'{\ *' \ objname #PCDATA '}'	
<objtime>	'{\ *' \ objtime <time> '}'	
<rsltmod>	\ rsltmerge? & <rslttype>?	
<rslttype>	\ rsltrtf | \ rslttxt | \ rsltpict | \ rsltbmp	
<objsize>	\ objsetsize? & \ objalign? & \ objtransy? & <objhw>? & \ objcropt? & \ objcropb? & \ objcropl? & \ objcropr? & \ objscalex? & \ objscaley?	
<objhw>	\ objh & \ objw	
<objdata>	'{\ *' \ objdata (<objalias>? & <objsect>?) <data> '}'	
<objalias>	'{\ *' \ objalias <data> '}'	
<objsect>	'{\ *' \ objsect <data> '}'	
<result>	'{' \ result <para>+ '}'	

Control word	Meaning	
Object type		
\ objemb	An object type of OLE embedded object. If no type is given for the object then the object is assumed to be of type \ objemb.	
\ objlink	An object type of OLE link	
\ objautlink	An object type of OLE autolink	
\ objsub	An object type of Macintosh Edition Manager Subscriber	
\ objpub	An object type of Macintosh Edition Manager Publisher	
\ objicemb	An object type of MS Word for the Macintosh IC Embedder	
Object information		
\ linkself	The object is a link to another part of the same document.	
\ objlock	Locks the object from any updates.	
\ objupdate	Force an update to the object before displaying it.	
\ objclass	The text argument is the object class to use for this object; ignore the class specified in the object data. This is a destination control word.	
\ objname	The text argument is the name of this object. This is a destination control word.	
\ objtime	Describes the time that the object was last updated.	
Object size, position, cropping, and scaling		
\ objhN	N is the original object height in twips, assuming the object has a graphical representation.	
\ objwN	N is the original object width in twips, assuming the object has a graphical representation.	
\ objsetsize	Forces the object server to set the object's dimensions to that specified by the client	
\ objalignN	N is the distance in twips from the left edge of the objects that should be aligned on a tab stop. This will be needed to place Math Type equations correctly in line. 	
\ objtransyN	N is the distance in twips the objects should be moved vertically with respect to the baseline. This will be needed to place Math Type equations correctly in line. 	
\ objcroptN	N is the top cropping distance in twips.	
\ objcropbN	N is the bottom cropping distance in twips.	
\ objcroplN	N is the left cropping distance in twips.	
\ objcroprN	N is the right cropping distance in twips.	
\ objscalexN	N is the horizontal scaling percentage.	
\ objscaleyN	N is the vertical scaling percentage.	
Object data		
\ objdata	This sub-destination contains the data for the object in the appropriate format; OLE objects are in OLESaveToStream format. This is a destination control word.	
\ objalias	This sub-destination contains the Alias Record for the publisher object for the Macintosh Edition Manager. This is a destination control word.	
\ objsect	This sub-destination contains the Section Record for the publisher object for the Macintosh Edition Manager. This is a destination control word.	
Object result		
\ rsltrtf	Forces the result to be Rich Text, if possible.	
\ rsltpict	Forces the result to be a Windows metafile or MacPict image, if possible.	
\ rsltbmp	Forces the result to be a bitmap, if possible.	
\ rslttxt	Forces the result to be plain text, if possible.	
\ rsltmerge	Uses the formatting of the current result whenever a new result is obtained.	
\ result	The result destination is optional in the \ object destination. It contains the last update of the result of the object. The data of the result destination should be standard RTF so that RTF readers which don't understand objects or the type of object represented will be able to use the current result in the objects place to maintain appearance. This is a destination control word.	

Macintosh Edition Manager Publisher Objects
Word for the Macintosh writes Publisher Objects for the Macintosh Edition Manager in terms of bookmarks (see "Bookmarks" earlier in the document). The range of Publisher objects are marked as bookmarks so these controls are all used within the \ bkmkstart destination. The RTF syntax for a Publisher Object is:
<pubobject>	'{\ *' \ bkmkstart \ bkmkpub \ pubauto? (<objalias>? & <objsect>) #PCDATA '}'	

Control word	Meaning	
\ bkmkpub	The bookmark marks a Macintosh Edition Manager Publisher Object.	
\ pubauto	The publisher object will update all Macintosh Edition Manager Subscribers of this object automatically whenever it is edited.	

Drawing Objects
Drawing objects and the drawn primitives enumerated within drawing object groups use the syntax described by the following tables.
<do>	'{\ *' \ do <dohead> <dpinfo>'}'	
<dohead>	<dobx> <doby> <dodhgt> <dolock>?	
<dobx>	\ dobxpage | \ dobxcolumn | \ dobxmargin	
<doby>	\ dobypage | \ dobypara | \ dobymargin	
<dodhgt>	\ dodhgt	
<dolock>	\ dolock	
<dpinfo>	 <dpgroup> | <dpcallout> | <dpsimple>	
<dpgroup>	\ dpgroup \ dpcount <dphead> <dpinfo>+ \ dpendgroup <dphead> 	
<dpcallout>	\ dpcallout <cotype> <coangle>? <coaccent>? <cosmartattach>? <cobestfit>? <cominusx>? <cominusy>? <coborder>? <codescent>? \ dpcooffset \ dpcolength <dphead> <dppolyline> <dphead> <dpprops> <dptextbox> <dphead> <dpprops>	
<dpsimple>	<dpsimpledpk> <dphead> <dpprops>	
<dpsimpledpk>	<dpline> | <dprect> | <dptextbox> | <dpellipse> | <dppolyline> | <dparc>	
<dpline>	\ dpline <dppt> <dppt>	
<dprect>	\ dprect (\ dproundr)?	
<dptextbox>	\ dptxbx \ dptxbxmar '{' \ dptxbxtext <para>+'}'	
<dpellipse>	\ dpellipse	
<dparc>	\ dparc \ dparcflipx? \ dparcflipy?	
<dppolyline>	\ dppolyline (\ dppolygon)? \ dppolycount <dppt>+	
<dppt>	\ dpptx \ dppty	
<dphead>	\ dpx \ dpy \ dpxsize \ dpysize	

Note that in <dpgroup> the number of <dpinfo>s is equal to the argument of \ dpcount, while in <dppolyline> the number of <dppt>s is equal to the argument of \ dppolycount.
The following elements of the drawing object syntax pertain specifically to callout objects:
<cotype>	\ dpcotright | \ dpcotsingle | \ dpcotdouble | \ dpcottriple	
<coangle>	\ dpcoa	
<coaccent>	\ dpcoaccent	
<cosmartattach>	\ dpcosmarta	
<cobestfit>	\ dpcobestfit	
<cominusx>	\ dpcominusx	
<cominusy>	\ dpcominusy	
<coborder>	\ dpcoborder	
<codescent>	\ dpcodtop | \ dpcodcenter | \ dpcodbottom | \ dpcodabs	

The remaining elements of the drawing object syntax are properties applied to individual drawn primitives:
<dpprops>	<lineprops>? <fillprops>? <endstylestart>? <endstyleend>? <shadow>?	
<lineprops>	<linestyle> <linecolor> \ dplinew	
<linestyle>	\ dplinesolid | \ dplinehollow | \ dplinedash | \ dplinedot | \ dplinedado | \ dplinedadodo	
<linecolor>	<linegray> | <linergb>	
<linegray>	\ dplinegray	
<linergb>	\ dplinecor \ dplinecog \ dplinecob<linepal>?	
<linepal>	\ dplinepal	
<fillprops>	<fillcolorfg> <fillcolorbg> \ dpfillpat	
<fillcolorfg>	<fillfggray> | <fillfgrgb>	
<fillfggray>	\ dpfillfggray	
<fillfgrgb>	\ dpfillfgcr \ dpfillfgcg \ dpfillfgcb<fillfgpal>?	
<fillfgpal>	\ dpfillfgpal	
<fillcolorbg>	<fillbggray> | <fillbgrgb>	
<fillbggray>	\ dpfillbggray	
<fillbgrgb>	\ dpfillbgcr \ dpfillbgcg \ dpfillbgcb<fillbgpal>?	
<fillbgpal>	\ dpfillbgpal	
<endstylestart>	<arrowstartfill> \ dpastartl \ dpastartw	
<arrowstartfill>	\ dpastartsol | \ dpastarthol	
<endstyleend>	<arrowendfill> \ dpaendl \ dpaendw	
<arrowendfill>	\ dpaendsol | \ dpaendhol	
<shadow>	\ dpshadow \ dpshadx \ dpshady	

The following table describes the control words for the drawing object group in detail. All color values are RGB values between 0-255. All distances are in twips. All other values are as indicated.
Control word	Definition	
\ do	Indicates a drawing object (drawing object) is to be inserted at this point in the character stream. This is a destination control word.	
\ dolock	The drawing object's anchor is locked and cannot be moved.	
\ dobxpage	The drawing object is page relative in the x-direction.	
\ dobxcolumn	The drawing object is column relative in the x-direction.	
\ dobxmargin	The drawing object is margin relative in the x-direction.	
\ dobypage	The drawing object is page relative in the y-direction.	
\ dobypara	The drawing object is paragraph relative in the y-direction.	
\ dobymargin	The drawing object is margin relative in the y-direction.	
\ dodhgtN 	The drawing object is positioned at the following numeric address in the z-ordering.	
Drawing primitives		
\ dpgroup	Begin group of drawing primitives.	
\ dpcountN 	Number of drawing primitives in current group.	
\ dpendgroup	End group of drawing primitives.	
\ dparc 	Arc drawing primitive.	
\ dpcallout	Callout drawing primitive, which consists of both a polyline and a textbox.	
\ dpellipse	Ellipse drawing primitive.	
\ dpline 	Line drawing primitive.	
\ dppolygon 	Polygon drawing primitive (closed polyline).	
\ dppolyline 	Polyline drawing primitive.	
\ dprect 	Rectangle drawing primitive.	
\ dptxbx 	Text box drawing primitive.	
Position and size		
\ dpxN 	X-offset of the drawing primitive from its anchor.	
\ dpxsizeN 	X-size of the drawing primitive.	
\ dpyN 	Y-offset of the drawing primitive from its anchor.	
\ dpysizeN 	Y-size of the drawing primitive.	
Callouts		
\ dpcoaN 	Angle of callout's diagonal line is restricted to one of the following: 0, 30, 45, 60, or 90. If this keyword is absent, the callout has an arbitrary angle, indicated by the coordinates of its primitives.	
\ dpcoaccent	Accent bar on callout. (Vertical bar between polyline and textbox).	
\ dpcobestfit	Best fit callout. (X-length of each line in callout is similar).	
\ dpcoborder	Visible border on callout textbox.	
\ dpcodabsN	Absolute distance attached polyline. N is the offset in twips from the corner that a auto-attached callout would attach to.	
\ dpcodbottom	Bottom attached polyline.	
\ dpcodcenter	Center attached polyline.	
\ dpcodtop	Top attached callout.	
\ dpcolengthN 	Length of callout.	
\ dpcominusx	Textbox falls in quadrants II or III relative to polyline origin.	
\ dpcominusy	Textbox falls in quadrants III or IV relative to polyline origin.	
\ dpcooffsetN 	Offset of callout. This is the distance between the end of the polyline and the edge of the textbox.	
\ dpcosmarta	Auto-attached callout. Polyline will attach to either the top or bottom of the textbox depending on the relative quadrant.	
\ dpcotdouble	Double line callout.	
\ dpcotright	Right angle callout.	
\ dpcotsingle	Single line callout.	
\ dpcottriple	Triple line callout.	
Text boxes and rectangles		
\ dptxbxmarN 	Internal margin of the text box.	
\ dptxbxtext 	Group that contains the text of the text box.	
\ dproundr	Rectangle is a round rectangle.	
Lines and polylines		
\ dpptxN 	X-coordinate of the current vertex (only for lines and polylines). The coordinate order for a point must be x, y.	
\ dpptyN 	Y-coordinate of the current vertex (only for lines and polylines). The coordinate order for a point must be x, y.	
\ dppolycountN 	Number of vertices in polyline drawing primitive.	
Arcs		
\ dparcflipx	This indicates that the end point of the arc is to the right of the start point. Arcs are drawn counter-clockwise.	
\ dparcflipy	This indicates that the end point of the arc is below the start point. Arcs are drawn counter-clockwise.	
Line style		
\ dplinecobN 	Blue value for line color.	
\ dplinecogN 	Green value for line color.	
\ dplinecorN 	Red value for line color.	
\ dplinepal	Render line color using the PALETTERGB macro instead of the RGB macro in Windows.	
\ dplinedado	Dashed-dotted line style.	
\ dplinedadodo 	Dashed-dotted-dotted line style.	
\ dplinedash 	Dashed line style.	
\ dplinedot 	Dotted line style.	
\ dplinegrayN 	Grayscale value for line color (in half-percentages).	
\ dplinehollow 	Hollow line style (no line color).	
\ dplinesolid 	Solid line style.	
\ dplinewN 	Thickness of line (in twips).	
Arrow style		
\ dpaendhol	Hollow end arrow (lines only).	
\ dpaendlN 	Length of end arrow, relative to pen width:
1	Small
2	Medium
3	Large	
\ dpaendsol	Solid end arrow (lines only).	
\ dpaendwN 	Width of end arrow, relative to pen width:
1	Small
2	Medium
3	Large	
\ dpastarthol	Hollow start arrow (lines only)	
\ dpastartlN 	Length of start arrow, relative to pen width
1	Small
2	Medium
3	Large	
\ dpastartsol	Solid start arrow (lines only)	
\ dpastartwN 	Width of start arrow, relative to pen width:
1	Small
2	Medium
3	Large	
Fill pattern		
\ dpfillbgcbN 	Blue value for background fill color.	
\ dpfillbgcgN 	Green value for background fill color.	
\ dpfillbgcrN 	Red value for background fill color.	
\ dpfillbgpal	Render fill background color using the PALETTERGB macro instead of the RGB macro in Windows.	
\ dpfillbggrayN 	Grayscale value for background fill (in half-percentages).	
\ dpfillfgcbN 	Blue value for foreground fill color.	
\ dpfillfgcgN 	Green value for foreground fill color.	
\ dpfillfgcrN 	Red value for foreground fill color.	
\ dpfillfgpal	Render fill foreground color using the PALETTERGB macro instead of the RGB macro in Windows.	
\ dpfillfggrayN 	Grayscale value for foreground fill (in half-percentages).	
\ dpfillpatN 	Index into a list of fill patterns. See below for list.	
Shadow		
\ dpshadow 	Current drawing primitive has a shadow.	
\ dpshadxN 	X-offset of the shadow.	
\ dpshadyN 	Y-offset of the shadow.	

The following values are available for specifying fill patterns in drawing objects with the \dpfillpat control word:
Value	Fill Pattern	
0 (zero)	Clear (no pattern)	
1	Solid (100%)	
2	5%	
3	10%	
4	20%	
5	25%	
6	30%	
7	40%	
8	50%	
9	60%	
10	70%	
11	75%	
12	80%	
13	90%	
14	Dark horizontal lines	
15	Dark vertical lines	
16	Dark left-diagonal lines (\\\)	
17	Dark right-diagonal lines (///)	
18	Dark grid lines	
19	Dark trellis lines	
20	Light horizontal lines	
21	Light vertical lines	
22	Light left-diagonal lines (\\\)	
23	Light right-diagonal lines (///)	
24	Light grid lines	
25	Light trellis lines	

Footnotes
The \ footnote control word introduces a footnote. Footnotes are destinations in RTF. A footnote is anchored to the character that immediately precedes the footnote destination (that is, the footnote moves with the character to which it is anchored). If automatic footnote numbering is defined, the destination can be preceded by a footnote reference character, identified by the control word \ chftn. No Microsoft product supports footnotes within headers, footers, or annotations. Placing a footnote within headers, footers, or annotations will often result in a corrupt document.
Footnotes have the following syntax:
<foot>	'{\ *' \ footnote <para>+ '}'	

Here is an example of a destination containing footnotes.
\ftnbj\ftnrestart \sectd \linemod0\linex0\endnhere \pard\plain
\ri1170 \fs20 {\pu6 Mead's landmark study has been amply annotated.\chftn
{\*\footnote \pard\plain \s246 \fs20 {\up6\chftn }See Sahlins, Bateson, and 
Geertz for a complete bibliography.}
It was here work in America during the Second World War, however, that forms
the basis for the paper. As others have noted, \chftn
{\*\footnote \pard\plain \s246 \fs20 {\up6\chftn}
A complete bibliography will be found at the end of this chapter.}
this period was a turning point for Margaret Mead.}
\par

To indicate endnotes, the following combination is emitted: \ footnote\ ftnalt. Existing readers will ignore the \ ftnalt keyword and treat everything as a footnote. 
For other control words relating to footnotes, see the sections entitled "Document-Formatting Properties",  "Section-Formatting Properties",  and "Special Characters".
Annotations
RTF annotations have two parts; the author ID (introduced by the control word \ atnid) and the annotation text (introduced by the control word \ annotation ); there is no group enclosing both parts. No Microsoft product supports annotations within headers, footers, or footnotes. Placing an annotation within headers, footers, or footnotes will often result in a corrupt document. Each part of the annotation is an RTF destination. Annotations are anchored to the character that immediately precedes the annotation.
If an annotation is associated with an annotation bookmark, the following two destination control words precede and follow the bookmark. The alphanumeric string N, such as a long integer, represents the bookmark name.
<atrfstart>	'{\ *' \ atrfstart N '}'	
< atrfend>	'{\ *' \ atrfend N '}'	

Annotations have the following syntax:
<annot>	<annotid> <atnauthor> <atntime>? \ chatn <atnicn>? <annotdef>	
<annotid>	'{\ *' \ atnid #PCDATA '}'	
< atnauthor>	'{\*' \atnauthor #PCDATA '}'	
<annotdef>	'{\ *' \ annotation <atnref> <para>+ '}'	
< atnref>	'{\ *' \ atnref N '}'	
<atntime>	'{\ *' \ atntime <time> '}'	
<atnicn>	'{\ *' \ atnicn <pict> '}'	

An example of annotation text follows:
An example of a paradigm might be Newtonian physics or
Darwinian biology.{\v\fs16 {\atnid bz}\chatn{\*\annotation
\pard\plain \s224 \fs20 {\field{\fldinst page \\#'"Page: 
'#'\line'"}{\fldrslt}}{\fs16 \chatn }
How about some examples that deal with social science? 
That's what this paper is about.}}

Annotations may have optional time stamps (contained in the \ atntime destination) or icons (contained in the \ atnicn destination).
Fields
The \ field control word introduces a field destination, which contains the text of Word for Windows fields. 
Fields have the following syntax:
<field>	'{' \ field <fieldmod>? <fieldinst> <fieldrslt> '}'	
<fieldmod>	\ flddirty? & \ fldedit? & \ fldlock? & \ fldpriv?	
<fieldinst>	'{\ *' \ fldinst <char>+ <fldalt>? '}'	
<fldalt>	\ fldalt	
<fieldrslt>	'{\ *' \ fldrslt <para>+ '}'	

There are several control words that alter the interpretation of the field. These control words are:
Control word	Meaning	
\ flddirty	Formatting change has been made to the field result since the field was last updated.	
\ fldedit	Text has been added to, or removed from, the field result since the field was last updated.	
\ fldlock	Field is locked and cannot be updated.	
\ fldpriv	Result is not in a form suitable for display (for example, binary data used by fields whose result is a picture).	

Two sub-destinations are required within the \ field destination. They must be enclosed in braces ({}) and begin with the following control words:
Control word	Meaning	
\ fldinst	Field instructions. This is a destination control word.	
\ fldrslt	Most recent calculated result of the field. This is a destination control word.	

If the instruction for a field contains a file name, then the \ cpg control can be used to define the character set of the file name. See “Code Page Support” for details.
The \ fldrslt control word should be included even if no result has been calculated, because even readers that do not recognize fields can generally include the value of the \ fldrslt destination in the document.
An example of some field text follows:
{\field\fldedit{\fldinst author}{\fldrslt Joe Smith}}\par\pard
{\field{\fldinst time \\@ "h:mm AM/PM"}{\fldrslt 8:12 AM}}

You can use the \fldalt keyword to specify that the given field reference is to an endnote. For example, the following field in RTF is a reference to a footnote:
{\ field{\ *\ fldinst NOTEREF _RefNumber } {\ fldrslt 1}}

The following is an example of a reference to an endnote:
{\ field{\ *\ fldinst NOTEREF _RefNumber \ fldalt } {\ fldrslt I}}

If the specified field is a form field, the \*\datafield destination appears as a part of <char> and contains the binary data of a form field instruction. For example:
{\ field{\*\fldinst {\*\bkmkstart Text1} FORMTEXT {{\*\datafield 
00000000000000000554657874310008476565207768697a0000000000000000000000}}}{\fldrslt Default Result}}{\*\bkmkend Text1}

Note that the \datafield destination requires the \* prefix.
Index Entries
The \ xe control word introduces an index entry. Index entries in RTF are destinations. An index entry has the following syntax:
<idx>	'{' \ xe (\xef? & \ bxe? & \ ixe?) <char>+ (<txe> | <rxe>)? '}'	
<txe>	'{' \ txe <char>+ '}'	
<rxe>	'{' \ rxe #PCDATA '}'	

If the text of the index entry is not formatted as hidden text with the \ v control word, the text is put into the document as well as into the index. For more information on the \ v control word, see "Character-Formatting Properties". Similarly, the text of the \ txe sub-destination, described later in this section, becomes part of the document if it is not formatted as hidden text.
The following control words may also be used:
Control word	Meaning	
\ xefN	Allows multiple indices within the same document. N is an integer that corresponds to the ASCII value of a letter between A and Z.	
\ bxe	Formats the page number or cross-reference in bold.	
\ ixe	Formats the page number or cross-reference in italic.	
\ txe Text	Text argument to be used instead of a page number. This is a destination control word.	
\ rxe BookmarkName	Text argument is a bookmark for the range of page numbers. This is a destination control word.	

Table of Contents Entries
The \ tc control word introduces a table of contents entry, which can be used to build the actual table of contents. The \tcn control word marks a table of contents entry that will not have a page number associated with it; this is used in place of \ tc for such entries. Table of contents entries are destinations, and they have the following syntax:
<toc>	'{' \ tc | \tcn ( \ tcf? & \ tcl?) <char>+ '}'	

As with index entries, text that is not formatted as hidden with the \ v character-formatting control word is put into the document. The following control words can also be used in this destination:
Control word	Meaning	
\ tcfN	Type of table being compiled; n is mapped by existing Microsoft software to a letter between A and Z (default is 67, which maps to C, used for tables of contents).	
\ tclN	Level number (default is 1).	

Bidirectional language support
RTF supports bidirectional writing orders for languages such as Arabic. The controls are described below (as well as in the appropriate sections). Also refer to the associated character properties defined in “Associated Character Properties,” earlier in this chapter.
All the control words relating to bidirectional language support are repeated here for convenience.
Control word	Meaning	
\ rtlch	The character data following this control word will be treated as a right to left run.	
\ ltrch	The character data following this control word will be treated as a left to right run. This is the default.	
\ rtlmark	The following characters should be displayed from right to left.	
\ ltrmark	The following characters should be displayed from left to right.	
\ rtlpar	Text in this paragraph will be displayed with right to left precedence	
\ ltrpar	Text in this paragraph will be displayed with left to right precedence. This is the default.	
\ rtlrow	Cells in this table row will have right to left precedence.	
\ ltrrow	Cells in this table row will have left to right precedence. This is the default.	
\ rtlsect	This section will thread columns from right to left.	
\ ltrsect	This section will thread columns from left to right. This is the default.	
\ rtldoc	Text in this document will be displayed from right to left unless overridden by a more specific control.	
\ ltrdoc	Text in this document will be displayed from left to right unless overridden by a more specific control. This is the default.	
\ zwj	Zero Width Joiner. This is used for ligating words.	
\ zwnj	Zero-Width Non-Joiner. This is used for unligating a word. 	

Alphabetic List of RTF Keywords
The following table contains a list of all RTF keywords, the name of the section where it may be found, and a brief description of the type of keyword. The types are described in the following table:
Type	Description	
Flag	The keyword ignores any parameter.	
Destination	This keyword starts a group or destination. It ignores any parameter.	
Symbol	This keyword represents a special character.	
Toggle	This keyword distinguishes between 	
Value	This keyword requires a parameter.	

Note
In the following comprehensive table, the names of all control words that are new to Microsoft Word version 6.0 are followed by an asterisk (*).

Control word	Described in section	Type	
\ '	Special Character	Symbol	
\ *	Special Character	Symbol	
\ -	Special Character	Symbol	
\ :	Special Character	Symbol	
\ \	Special Character	Symbol	
\ _	Special Character	Symbol	
\ {	Special Character	Symbol	
\ |	Special Character	Symbol	
\ }	Special Character	Symbol	
\ ~	Special Character	Symbol	
\ ab	Character	Toggle	
\ absh	Frame	Value	
\ absw	Frame	Value	
\ acaps	Character	Toggle	
\ acf	Character	Value	
\ additive *	Style Sheet	Flag	
\ adn	Character	Value	
\ aenddoc *	Document	Flag	
\ aendnotes *	Document	Flag	
\ aexpnd	Character	Value	
\ af	Character	Value	
\ afs	Character	Value	
\ aftnbj *	Document	Flag	
\ aftncn *	Document	Destination	
\ aftnnalc *	Document	Flag	
\ aftnnar *	Document	Flag	
\ aftnnauc *	Document	Flag	
\ aftnnchi *	Document	Flag	
\ aftnnrlc *	Document	Flag	
\ aftnnruc *	Document	Flag	
\ aftnrestart *	Document	Flag	
\ aftnrstcont *	Document	Flag	
\ aftnsep *	Document	Destination	
\ aftnsepc *	Document	Destination	
\ aftnstart *	Document	Value	
\ aftntj *	Document	Flag	
\ ai	Character	Toggle	
\ alang	Character	Value	
\ allprot *	Document	Flag	
\ alt	Style Sheet	Flag	
\ annotation	Annotation	Destination	
\ annotprot *	Document	Flag	
\ ansi	Character Set	Flag	
\ aoutl	Character	Toggle	
\ ascaps	Character	Toggle	
\ ashad	Character	Toggle	
\ astrike	Character	Toggle	
\ atnauthor *	Annotations	Destination	
\ atnicn	Annotation	Destination	
\ atnid	Annotation	Destination	
\ atnref *	Annotations	Destination	
\ atntime	Annotation	Destination	
\ atrfend *	Annotations	Destination	
\ atrfstart *	Annotations	Destination	
\ aul	Character	Toggle	
\ auld	Character	Toggle	
\ auldb	Character	Toggle	
\ aulnone	Character	Toggle	
\ aulw	Character	Toggle	
\ aup	Character	Value	
\ author	Info	Destination	
\ b	Character	Toggle	
\ bgbdiag	Shading	Flag	
\ bgcross	Shading	Flag	
\ bgdcross	Shading	Flag	
\ bgdkbdiag	Shading	Flag	
\ bgdkcross	Shading	Flag	
\ bgdkdcross	Shading	Flag	
\ bgdkfdiag	Shading	Flag	
\ bgdkhoriz	Shading	Flag	
\ bgdkvert	Shading	Flag	
\ bgfdiag	Shading	Flag	
\ bghoriz	Shading	Flag	
\ bgvert	Shading	Flag	
\ bin	Picture	Value	
\ binfsxn	Section	Value	
\ binsxn	Section	Value	
\ bkmkcolf	Bookmark	Value	
\ bkmkcoll	Bookmark	Value	
\ bkmkend	Bookmark	Destination	
\ bkmkpub	Object	Flag	
\ bkmkstart	Bookmark	Destination	
\ blue	Color table	Value	
\ box	Border	Flag	
\ brdrb	Border	Flag	
\ brdrbar	Border	Flag	
\ brdrbtw	Border	Flag	
\ brdrcf	Border	Value	
\ brdrdash *	Border	Flag	
\ brdrdb	Border	Flag	
\ brdrdot	Border	Flag	
\ brdrhair	Border	Flag	
\ brdrl	Border	Flag	
\ brdrr	Border	Flag	
\ brdrs	Border	Flag	
\ brdrsh	Border	Flag	
\ brdrt	Border	Flag	
\ brdrth	Border	Flag	
\ brdrw	Border	Value	
\ brkfrm *	Document	Flag	
\ brsp	Border	Value	
\ bullet	Special Character	Symbol	
\ buptim	Info	Destination	
\ bxe	Index	Flag	
\ caps	Character	Toggle	
\ cb	Character	Value	
\ cbpat	Shading	Value	
\ cchs *	Character	Value	
\ cell	Special Character	Symbol	
\ cellx	Table	Value	
\ cf	Character	Value	
\ cfpat	Shading	Value	
\ chatn	Special Character	Symbol	
\ chdate	Special Character	Symbol	
\ chdpa	Special Character	Symbol	
\ chdpl	Special Character	Symbol	
\ chftn	Special Character	Symbol	
\ chftnsep	Special Character	Symbol	
\ chftnsepc	Special Character	Symbol	
\ chpgn	Special Character	Symbol	
\ chtime	Special Character	Symbol	
\ clbgbdiag	Table	Flag	
\ clbgcross	Table	Flag	
\ clbgdcross	Table	Flag	
\ clbgdkbdiag	Table	Flag	
\ clbgdkcross	Table	Flag	
\ clbgdkdcross	Table	Flag	
\ clbgdkfdiag	Table	Flag	
\ clbgdkhor	Table	Flag	
\ clbgdkvert	Table	Flag	
\ clbgfdiag	Table	Flag	
\ clbghoriz	Table	Flag	
\ clbgvert	Table	Flag	
\ clbrdrb	Table	Flag	
\ clbrdrl	Table	Flag	
\ clbrdrr	Table	Flag	
\ clbrdrt	Table	Flag	
\ clcbpat	Table	Value	
\ clcfpat	Table	Value	
\ clmgf	Table	Flag	
\ clmrg	Table	Flag	
\ clshdng	Table	Value	
\ colno *	Section	Value	
\ colortbl	Color Table	Destination	
\ cols	Section	Value	
\ colsr *	Section	Value	
\ colsx	Section	Value	
\ column	Special Character	Symbol	
\ colw *	Section	Value	
\ comment	Info	Destination	
\ cpg	Font	Value	
\ creatim	Info	Destination	
\ cs	Character	Value	
\ ctrl	Style Sheet	Flag	
\ cvmme *	Document	Flag	
\ datafield *	Field	Destination	
\ deff	Font	Value	
\ defformat	Document	Flag	
\ deflang	Document	Value	
\ deftab	Document	Value	
\ deleted	Character	Toggle	
\ dfrmtxtx	Frame	Value	
\ dfrmtxty	Frame	Value	
\ dibitmap	Picture	Value	
\ dn	Character	Value	
\ do *	Drawing Object	Destination	
\ dobxcolumn *	Drawing Object	Flag	
\ dobxmargin *	Drawing Object	Flag	
\ dobxpage *	Drawing Object	Flag	
\ dobymargin *	Drawing Object	Flag	
\ dobypage *	Drawing Object	Flag	
\ dobypara *	Drawing Object	Flag	
\ doccomm	Info	Destination	
\ doctemp	Document	Flag	
\ dodhgt  *	Drawing Object	Value	
\ dolock *	Drawing Object	Flag	
\ dpaendhol *	Drawing Object	Flag	
\ dpaendl  *	Drawing Object	Value	
\ dpaendsol *	Drawing Object	Flag	
\ dpaendw  *	Drawing Object	Value	
\ dparc  *	Drawing Object	Flag	
\ dparcflipx *	Drawing Object	Flag	
\ dparcflipy *	Drawing Object	Flag	
\ dpastarthol *	Drawing Object	Flag	
\ dpastartl  *	Drawing Object	Value	
\ dpastartsol *	Drawing Object	Flag	
\ dpastartw  *	Drawing Object	Value	
\ dpcallout *	Drawing Object	Flag	
\ dpcoa  *	Drawing Object	Value	
\ dpcoaccent *	Drawing Object	Flag	
\ dpcobestfit *	Drawing Object	Flag	
\ dpcoborder *	Drawing Object	Flag	
\ dpcodabs *	Drawing Object	Value	
\ dpcodbottom *	Drawing Object	Flag	
\ dpcodcenter *	Drawing Object	Flag	
\ dpcodtop *	Drawing Object	Flag	
\ dpcolength  *	Drawing Object	Value	
\ dpcominusx *	Drawing Object	Flag	
\ dpcominusy *	Drawing Object	Flag	
\ dpcooffset  *	Drawing Object	Value	
\ dpcosmarta *	Drawing Object	Flag	
\ dpcotdouble *	Drawing Object	Flag	
\ dpcotright *	Drawing Object	Flag	
\ dpcotsingle *	Drawing Object	Flag	
\ dpcottriple *	Drawing Object	Flag	
\ dpcount  *	Drawing Object	Value	
\ dpellipse *	Drawing Object	Flag	
\ dpendgroup *	Drawing Object	Flag	
\ dpfillbgcb  *	Drawing Object	Value	
\ dpfillbgcg  *	Drawing Object	Value	
\ dpfillbgcr  *	Drawing Object	Value	
\ dpfillbggray  *	Drawing Object	Value	
\ dpfillbgpal *	Drawing Object	Flag	
\ dpfillfgcb  *	Drawing Object	Value	
\ dpfillfgcg  *	Drawing Object	Value	
\ dpfillfgcr  *	Drawing Object	Value	
\ dpfillfggray  *	Drawing Object	Value	
\ dpfillfgpal *	Drawing Object	Flag	
\ dpfillpat  *	Drawing Object	Value	
\ dpgroup  *	Drawing Object	Flag	
\ dpline  *	Drawing Object	Flag	
\ dplinecob  *	Drawing Object	Value	
\ dplinecog  *	Drawing Object	Value	
\ dplinecor  *	Drawing Object	Value	
\ dplinedado *	Drawing Object	Flag	
\ dplinedadodo  *	Drawing Object	Flag	
\ dplinedash  *	Drawing Object	Flag	
\ dplinedot  *	Drawing Object	Flag	
\ dplinegray  *	Drawing Object	Value	
\ dplinehollow  *	Drawing Object	Flag	
\ dplinepal *	Drawing Object	Flag	
\ dplinesolid  *	Drawing Object	Flag	
\ dplinew  *	Drawing Object	Value	
\ dppolycount  *	Drawing Object	Value	
\ dppolygon  *	Drawing Object	Flag	
\ dppolyline  *	Drawing Object	Flag	
\ dpptx  *	Drawing Object	Value	
\ dppty  *	Drawing Object	Value	
\ dprect  *	Drawing Object	Flag	
\ dproundr *	Drawing Object	Flag	
\ dpshadow  *	Drawing Object	Flag	
\ dpshadx  *	Drawing Object	Value	
\ dpshady  *	Drawing Object	Value	
\ dptxbx  *	Drawing Object	Flag	
\ dptxbxmar  *	Drawing Object	Value	
\ dptxbxtext  *	Drawing Object	Destination	
\ dpx  *	Drawing Object	Value	
\ dpxsize  *	Drawing Object	Value	
\ dpy  *	Drawing Object	Value	
\ dpysize  *	Drawing Object	Value	
\ dropcapli  *	Frame	Value	
\ dropcapt  *	Frame	Value	
\ ds	Section	Value	
\ dxfrtext	Frame	Value	
\ dy	Info	Value	
\ edmins	Info	Value	
\ emdash	Special Character	Symbol	
\ emspace *	Special Character	Symbol	
\ endash	Special Character	Symbol	
\ enddoc	Document	Flag	
\ endnhere	Section	Flag	
\ endnotes	Document	Flag	
\ enspace *	Special Character	Symbol	
\ expnd	Character	Value	
\ expndtw *	Character	Value	
\ f	Character	Value	
\ facingp	Document	Flag	
\ falt *	Font Table	Destination	
\ fbidi	Font Table	Flag	
\ fcharset  *	Font Table	Value	
\ fdecor	Font Table	Flag	
\ fet *	Document	Value	
\ fi	Paragraph	Value	
\ fid *	File Table	Value	
\ field	Field	Destination	
\ file *	File Table	Destination	
\ filetbl *	File Table	Destination	
\ fldalt *	Document	Flag	
\ flddirty	Field	Flag	
\ fldedit	Field	Flag	
\ fldinst	Field	Destination	
\ fldlock	Field	Flag	
\ fldpriv	Field	Flag	
\ fldrslt	Field	Destination	
\ fmodern	Font Table	Flag	
\ fn	Style Sheet	Value	
\ fnetwork *	File Table	Flag	
\ fnil	Font Table	Flag	
\ fontemb	Font	Destination	
\ fontfile	Font	Destination	
\ fonttbl	Font Table	Destination	
\ footer	Header/Footer	Destination	
\ footerf	Header/Footer	Destination	
\ footerl	Header/Footer	Destination	
\ footerr	Header/Footer	Destination	
\ footery	Section	Value	
\ footnote	Footnote	Destination	
\ formdisp *	Document	Flag	
\ formprot *	Document	Flag	
\ formshade *	Document	Flag	
\ fosnum *	File Table	Value	
\ fprq  *	Font Table	Value	
\ fracwidth	Document	Flag	
\ frelative *	File Table	Value	
\ froman	Font Table	Flag	
\ fs	Character	Value	
\ fscript	Font Table	Flag	
\ fswiss	Font Table	Flag	
\ ftech	Font Table	Flag	
\ ftnalt *	Document	Flag	
\ ftnbj	Document	Flag	
\ ftncn	Document	Destination	
\ ftnil	Font	Flag	
\ ftnnalc *	Document	Flag	
\ ftnnar *	Document	Flag	
\ ftnnauc *	Document	Flag	
\ ftnnchi *	Document	Flag	
\ ftnnrlc *	Document	Flag	
\ ftnnruc *	Document	Flag	
\ ftnrestart	Document	Flag	
\ ftnrstcont *	Document	Flag	
\ ftnrstpg *	Document	Flag	
\ ftnsep	Document	Destination	
\ ftnsepc	Document	Destination	
\ ftnstart	Document	Value	
\ ftntj	Document	Flag	
\ fttruetype	Font	Flag	
\ fvaliddos *	File Table	Flag	
\ fvalidhpfs *	File Table	Flag	
\ fvalidmac *	File Table	Flag	
\ fvalidntfs *	File Table	Flag	
\ green	Color table	Value	
\ gutter	Document	Value	
\ guttersxn	Section	Value	
\ header	Header/Footer	Destination	
\ headerf	Header/Footer	Destination	
\ headerl	Header/Footer	Destination	
\ headerr	Header/Footer	Destination	
\ headery	Section	Value	
\ hr	Info	Value	
\ hyphauto *	Document	Toggle	
\ hyphcaps *	Document	Toggle	
\ hyphconsec *	Document	Value	
\ hyphhotz	Document	Value	
\ hyphpar *	Paragraph	Toggle	
\ i	Character	Toggle	
\ id	Info	Value	
\ info	Info	Destination	
\ intbl	Paragraph	Flag	
\ ixe	Index	Flag	
\ keep	Paragraph	Flag	
\ keepn	Paragraph	Flag	
\ kerning *	Character	Value	
\ keycode	Style Sheet	Destination	
\ keywords	Info	Destination	
\ landscape	Document	Flag	
\ lang	Character	Value	
\ ldblquote	Special Character	Symbol	
\ level	Paragraph	Value	
\ li	Paragraph	Value	
\ line	Special Character	Symbol	
\ linebetcol	Section	Flag	
\ linecont	Section	Flag	
\ linemod	Section	Value	
\ lineppage	Section	Flag	
\ linerestart	Section	Flag	
\ linestart	Document	Value	
\ linestarts	Section	Value	
\ linex	Section	Value	
\ linkself	Object	Flag	
\ linkstyles *	Document	Flag	
\ lndscpsxn	Section	Flag	
\ lquote	Special Character	Symbol	
\ ltrch	Character	Flag	
\ ltrdoc	Document	Flag	
\ ltrmark	Character	Symbol	
\ ltrpar	Paragraph	Flag	
\ ltrrow	Table	Flag	
\ ltrsect	Section	Flag	
\ mac	Character Set	Flag	
\ macpict	Picture	Flag	
\ makebackup	Document	Flag	
\ margb	Document	Value	
\ margbsxn	Section	Value	
\ margl	Document	Value	
\ marglsxn	Section	Value	
\ margmirror	Document	Flag	
\ margr	Document	Value	
\ margrsxn	Section	Value	
\ margt	Document	Value	
\ margtsxn	Section	Value	
\ min	Info	Value	
\ mo	Info	Value	
\ nextfile	Document	Destination	
\ nocolbal *	Document	Flag	
\ noextrasprl *	Document	Flag	
\ nofchars	Info	Value	
\ nofpages	Info	Value	
\ nofwords	Info	Value	
\ noline	Paragraph	Flag	
\ nosupersub *	Character	Flag	
\ notabind *	Document	Flag	
\ nowidctlpar *	Paragraph	Flag	
\ nowrap	Frame	Flag	
\ objalias	Object	Destination	
\ objalign	Object	Value	
\ objautlink	Object	Flag	
\ objclass	Object	Destination	
\ objcropb	Object	Value	
\ objcropl	Object	Value	
\ objcropr	Object	Value	
\ objcropt	Object	Value	
\ objdata	Object	Destination	
\ object	Object	Destination	
\ objemb	Object	Flag	
\ objh	Object	Value	
\ objicemb	Object	Flag	
\ objlink	Object	Flag	
\ objlock	Object	Flag	
\ objname	Object	Destination	
\ objpub	Object	Flag	
\ objscalex	Object	Value	
\ objscaley	Object	Value	
\ objsect	Object	Destination	
\ objsetsize	Object	Flag	
\ objsub	Object	Flag	
\ objtime	Object	Destination	
\ objtransy	Object	Value	
\ objupdate *	Object	Flag	
\ objw	Object	Value	
\ operator	Info	Destination	
\ otblrul *	Document	Flag	
\ outl	Character	Toggle	
\ page	Special Character	Symbol	
\ pagebb	Paragraph	Flag	
\ paperh	Document	Value	
\ paperw	Document	Value	
\ par	Special Character	Symbol	
\ pard	Paragraph	Flag	
\ pc	Character Set	Flag	
\ pca	Character Set	Flag	
\ pghsxn	Section	Value	
\ pgncont	Section	Flag	
\ pgndec	Section	Flag	
\ pgnhn  *	Section	Value	
\ pgnhnsc *	Section	Flag	
\ pgnhnsh *	Section	Flag	
\ pgnhnsm *	Section	Flag	
\ pgnhnsn *	Section	Flag	
\ pgnhnsp *	Section	Flag	
\ pgnlcltr	Section	Flag	
\ pgnlcrm	Section	Flag	
\ pgnrestart	Section	Flag	
\ pgnstart	Document	Value	
\ pgnstarts	Section	Value	
\ pgnucltr	Section	Flag	
\ pgnucrm	Section	Flag	
\ pgnx	Section	Value	
\ pgny	Section	Value	
\ pgwsxn	Section	Value	
\ phcol	Frame	Flag	
\ phmrg	Frame	Flag	
\ phpg	Frame	Flag	
\ picbmp *	Picture	Flag	
\ picbpp *	Picture	Value	
\ piccropb	Picture	Value	
\ piccropl	Picture	Value	
\ piccropr	Picture	Value	
\ piccropt	Picture	Value	
\ pich	Picture	Value	
\ pichgoal	Picture	Value	
\ picscaled	Picture	Flag	
\ picscalex	Picture	Value	
\ picscaley	Picture	Value	
\ pict	Picture	Destination	
\ picw	Picture	Value	
\ picwgoal	Picture	Value	
\ plain	Character	Flag	
\ pmmetafile	Picture	Value	
\ pn *	Bullets and Numbering	Destination	
\ pnacross *	Bullets and Numbering	Flag	
\ pnb *	Bullets and Numbering	Toggle	
\ pncaps *	Bullets and Numbering	Toggle	
\ pncard *	Bullets and Numbering	Flag	
\ pncf *	Bullets and Numbering	Value	
\ pndec *	Bullets and Numbering	Flag	
\ pnf *	Bullets and Numbering	Value	
\ pnfs *	Bullets and Numbering	Value	
\ pnhang *	Bullets and Numbering	Flag	
\ pni *	Bullets and Numbering	Toggle	
\ pnindent *	Bullets and Numbering	Value	
\ pnlcltr *	Bullets and Numbering	Flag	
\ pnlcrm *	Bullets and Numbering	Flag	
\ pnlvl *	Bullets and Numbering	Value	
\ pnlvlblt *	Bullets and Numbering	Flag	
\ pnlvlbody *	Bullets and Numbering	Flag	
\ pnlvlcont *	Bullets and Numbering	Flag	
\ pnnumonce *	Bullets and Numbering	Flag	
\ pnord *	Bullets and Numbering	Flag	
\ pnordt *	Bullets and Numbering	Flag	
\ pnprev *	Bullets and Numbering	Flag	
\ pnqc *	Bullets and Numbering	Flag	
\ pnql *	Bullets and Numbering	Flag	
\ pnqr *	Bullets and Numbering	Flag	
\ pnrestart *	Bullets and Numbering	Flag	
\ pnscaps *	Bullets and Numbering	Toggle	
\ pnseclvl *	Bullets and Numbering	Destination	
\ pnsp *	Bullets and Numbering	Value	
\ pnstart *	Bullets and Numbering	Value	
\ pnstrike *	Bullets and Numbering	Toggle	
\ pntext *	Bullets and Numbering	Destination	
\ pntxta *	Bullets and Numbering	Destination	
\ pntxtb *	Bullets and Numbering	Destination	
\ pnucltr *	Bullets and Numbering	Flag	
\ pnucrm *	Bullets and Numbering	Flag	
\ pnul *	Bullets and Numbering	Toggle	
\ pnuld *	Bullets and Numbering	Flag	
\ pnuldb *	Bullets and Numbering	Flag	
\ pnulnone *	Bullets and Numbering	Flag	
\ pnulw *	Bullets and Numbering	Flag	
\ posnegx  *	Frame	Value	
\ posnegy  *	Frame	Value	
\ posx	Frame	Value	
\ posxc	Frame	Flag	
\ posxi	Frame	Flag	
\ posxl	Frame	Flag	
\ posxo	Frame	Flag	
\ posxr	Frame	Flag	
\ posy	Frame	Value	
\ posyb	Frame	Flag	
\ posyc	Frame	Flag	
\ posyil	Frame	Flag	
\ posyt	Frame	Flag	
\ prcolbl *	Document	Flag	
\ printdata *	Document	Flag	
\ printim	Info	Destination	
\ psover	Document	Flag	
\ psz *	Document	Value	
\ pubauto	Object	Flag	
\ pvmrg	Frame	Flag	
\ pvpara	Frame	Flag	
\ pvpg	Frame	Flag	
\ qc	Paragraph	Flag	
\ qj	Paragraph	Flag	
\ ql	Paragraph	Flag	
\ qr	Paragraph	Flag	
\ rdblquote	Special Character	Symbol	
\ red	Color table	Value	
\ result	Object	Destination	
\ revauth *	Character	Value	
\ revbar	Document	Value	
\ revdttm *	Character	Value	
\ revised	Character	Toggle	
\ revisions	Document	Flag	
\ revprop	Document	Value	
\ revprot *	Document	Flag	
\ revtbl *	Revision Marks	Destination	
\ revtim	Info	Destination	
\ ri	Paragraph	Value	
\ row	Special Character	Symbol	
\ rquote	Special Character	Symbol	
\ rsltbmp	Object	Flag	
\ rsltmerge	Object	Flag	
\ rsltpict	Object	Flag	
\ rsltrtf	Object	Flag	
\ rslttxt	Object	Flag	
\ rtf	File	Destination	
\ rtlch	Character	Flag	
\ rtldoc	Document	Flag	
\ rtlmark	Character	Symbol	
\ rtlpar	Paragraph	Flag	
\ rtlrow	Table	Flag	
\ rtlsect	Section	Flag	
\ rxe	Index	Destination	
\ s	Paragraph	Value	
\ sa	Paragraph	Value	
\ sb	Paragraph	Value	
\ sbasedon	Style Sheet	Value	
\ sbkcol	Section	Flag	
\ sbkeven	Section	Flag	
\ sbknone	Section	Flag	
\ sbkodd	Section	Flag	
\ sbkpage	Section	Flag	
\ sbys	Paragraph	Flag	
\ scaps	Character	Toggle	
\ sec	Info	Value	
\ sect	Special Character	Symbol	
\ sectd	Section	Flag	
\ sectnum	Special Character	Symbol	
\ sectunlocked *	Section	Flag	
\ shad	Character	Toggle	
\ shading	Shading	Value	
\ shift	Style Sheet	Flag	
\ sl	Paragraph	Value	
\ slmult *	Paragraph	Value	
\ snext	Style Sheet	Value	
\ softcol *	Special Character	Flag	
\ softlheight *	Special Character	Value	
\ softline *	Special Character	Flag	
\ softpage *	Special Character	Flag	
\ sprsspbf *	Document	Flag	
\ sprstsp *	Document	Flag	
\ strike	Character	Toggle	
\ stylesheet	Style Sheet	Destination	
\ sub *	Character	Flag	
\ subdocument *	Pargraph	Value	
\ subject	Info	Destination	
\ super *	Character	Flag	
\ swpbdr *	Document	Flag	
\ tab	Special Character	Symbol	
\ tb	Tab	Value	
\ tc	Table of Contents	Destination	
\ tcf	Table of Contents	Value	
\ tcl	Table of Contents	Value	
\ tcn *	Table of Contents	Flag	
\ template	Document	Destination	
\ title	Info	Destination	
\ titlepg	Section	Flag	
\ tldot	Tab	Flag	
\ tleq	Tab	Flag	
\ tlhyph	Tab	Flag	
\ tlth	Tab	Flag	
\ tlul	Tab	Flag	
\ tqc	Tab	Flag	
\ tqdec	Tab	Flag	
\ tqr	Tab	Flag	
\ transmf *	Document	Flag	
\ trbrdrb *	Table	Flag	
\ trbrdrh *	Table	Flag	
\ trbrdrl *	Table	Flag	
\ trbrdrr *	Table	Flag	
\ trbrdrt *	Table	Flag	
\ trbrdrv *	Table	Flag	
\ trgaph	Table	Value	
\ trhdr *	Table	Flag	
\ trkeep *	Table	Flag	
\ trleft	Table	Value	
\ trowd	Table	Flag	
\ trqc	Table	Flag	
\ trql	Table	Flag	
\ trqr	Table	Flag	
\ trrh	Table	Value	
\ tx	Tab	Value	
\ txe	Index	Destination	
\ ul	Character	Toggle	
\ uld	Character	Flag	
\ uldb	Character	Flag	
\ ulnone	Character	Flag	
\ ulw	Character	Flag	
\ up	Character	Value	
\ v	Character	Toggle	
\ vern	Info	Value	
\ version	Info	Value	
\ vertalb	Section	Flag	
\ vertalc	Section	Flag	
\ vertalj	Section	Flag	
\ vertalt	Section	Flag	
\ wbitmap	Picture	Value	
\ wbmbitspixel	Picture	Value	
\ wbmplanes	Picture	Value	
\ wbmwidthbytes	Picture	Value	
\ widowctrl	Document	Flag	
\ wmetafile	Picture	Value	
\ wraptrsp *	Document	Flag	
\ xe	Index	Destination	
\ xef *	Index	Value	
\ yr	Info	Value	
\ zwj	Special Character	Symbol	
\ zwnj	Special Character	Symbol	

.