Microsoft
Rich Text Format Specification
Note: This document was edited for distribution with the XcRichText widget by Dan Connolly <connolly@convex.com>. The cover pages have been reproduced by hand.
Annotations in Helvetica italic discuss the format as implemented by the XcRichText widget.
Information in this document is subject to change without notice and does not represent a commitment on the part of Microsoft Corporation.
You have the royalty-free right to reproduce and distribute products that use RTF (Rich Text Format) as a file conversion medium provided that you: (a) do not use Microsoft's name, logo, or trademarks to market your software product; and (b) agree to indemnify, hold harmless, and defend Microsoft from and against any claims or lawsuits, including attorneys' fees, that arise from the use or distribution of your software.
You may reproduce and distribute this specification provided that it is preproduced in its entirety including this copyright page.
If you have suggestions for enhancements or extensions to the RTF Specification, have developed an application using RTF, or wish to receive the most up-to-date copy of the RTF specification, please write:
Microsoft Corporation
Department: RTF
16011 NE 36th Way
Box 97017
Redmond, WA 98073-9717

(C) Copyright Microsoft Corporation, 1987-1989

Rich Text Format

RTF Syntax

Note: The implementation of the basic RTF syntax is a C++ adaptation of Paul DuBois' RTF-Stuff distribution.
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 DOS applications, and between DOS applications and Apple Macintosh applications.

The RTF standard provides a standard format for text and graphics interchange that can be used with different output devices, operating environments, and operating systems.  RTF uses the ANSI, 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 composed under different operating systems and with different software applications can be transferred between those operating systems and applications.

An RTF file consists of unformatted text, "control words," "control symbols," and "groups." A standard RTF file consists of only 7-bit ASCII characters for ease of transport.

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 consists of a backslash followed by an alphabetic string and a delimiter, as shown in the following example

\rtf1...

A B C

A	Backslash begins each control word
C	Alphabetic string
C	Numeric delimiter

The delimiter can be a space or one or more nonalphabetic characters. If a numeric parameter immediately follows the control word, this parameter is the delimiter, and is itself followed by a delimiter, also consisting of a space or one or more nonalphabetic characters.

A "control symbol" consists of a backslash followed by a single, nonalphabetic character. For example, \~ represents a nonbreaking space. Control symbols take no delimiters.

A "group" consists of text and control words or control symbols enclosed in braces ({}). Formatting specified within a group affects only the text within the group. Generally, text within a group inherits any formatting of the text preceding the group. However, Microsoft implementations of RTF assume that the footnote, header/footer, and annotation groups (described later in this document) do not inherit formatting of the preceding text.  Therefore, to ensure that these groups will always be 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.

Any other characters in the file are plain text. As mentioned above, the backslash (\) and braces ({}) have special meaning in RTF. To use these characters as text, precede them with a backslash.

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 plain text and writes a new file containing the plain text and the RTF groups associated with that text. An RTF reader does the converse of this procedure.

An entire RTF file is considered a group and must be enclosed in braces. The control word \rtfn must follow the first open brace. The numeric parameter identifies the version of the RTF standard used. The RTF standard described in this document corresponds to version 1.

The order of groups within an RTF file is important. Each group specifies the part of the document affected by the group and the different attributes of that text. An RTF file must begin with the following two control words in the following order

∑ RTF version (\rtfn)

∑ Character set

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. If included, the group for fonts should precede the group for styles.

The groups are discussed in the following sections. If a group isn't used, it can be omitted.

Certain groups, referred to as "destinations," mark the beginning of a collection of related text. An example of this is the \footnote group, where the footnote text follows the control word. 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 this convention when adding new control words. Destinations whose related text should be inserted into the document even if the destination is not recognized should not use \*. In this document, all destinations that use \* will be shown with \* as part of the control word.

The Character Set

After specifying the RTF writer you must declare the character set. The RTF specification currently supports the following character sets

Control word	Character set	
\ansi	ANSI (default)	
\mac	Apple Macintosh	
\pc	IBM PC	
\pca	IBM PC page 850, used by IBM Personal System/2	

Note: The XcRichText widget currently ignores character set specifications. The character set used by the RTF file is assumed to match the character set of the X font.
The Font Table

This group contains descriptions of fonts and begins with the control word \fonttbl.  All fonts available to the RTF writer can be included in the font table, even if the document doesn't use all the fonts.

A font is defined by its name, a font number, and a font family, as shown in the following example.  Semicolons are used as delimiters between fonts.

{\fonttbl\f0\froman Tms Rmn;}...

   A B C       D

A Control word
B Font number
C Font family
D Font name

The font numbers represent the full font definitions in the group, and vary with each document. The font families are listed below

Control word	Font family	
\fnil	Unknown or default fonts (default)	
\froman	Roman, proportionally spaced serif fonts (TmsRmn, Palatino, etc.)	
\fswiss	Swiss, proportionally spaced sans serif fonts (Swiss, etc.)	
\fmodern	Fixed-pitch serif and sans serif fonts (Courier, Elite, Pica, etc.)	
\fscript	Script fonts (Cursive, etc.)	
\fdecor	Decorative fonts (Old English Zapf Chancery, etc.)	
\ftech	Technical, symbol, and mathematical fonts (Symbol, 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. The RTF reader then translates this number through the font table into the most similar font available on the reader's system.
Note: The XcRichText widget uses its fontPatterns resource to translate RTF font familiesto groups of X fonts. See the man page for details.

The Style Sheet

The style sheet group begins with the control word \stylesheet. This group contains definitions and descriptions of the various styles used in the document. The style sheet is declared only once, in the RTF file header. All styles in the document's style sheet can be included, even if not all the styles are used.

In some applications, styles are based on, or are the basis for, other styles. In these cases, two other control words can be used

Control word	Meaning	
\sbasedonn	Defines the number of the style on which current style is based	
\snextn	Defines next style associated with current style; if omitted, next style is the current style	

An example of an RTF style sheet and styles is shown in the following example. In this example, Postscript is declared but not used. Some of the control words in this example are discussed in the following sections.

...

{\stylesheet{\fs20 \sbasedon222\snext0 Normal;}{\s1\qr\fs20
Aª \sbasedon0\snext1 FLUSHRlGHT;}{\s2\fi-720\li720\fs20\ri2880\fs20
\sbasedon0\snext2 IND;}}

...

\widowctrl\ftnbj\ftnrestart\sectd\linex0\endnhere
\pard\plain\fs20 This is Normal style.
\par\pard\plain\s1
Bª 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}

This is Normal Style.

This is right justified. I call this style FLUSHRIGHT.
This is an indented paragraph.  I call this style IND.
It produces a hanging indent.

A Style sheet
B Styles applied to text
Note: The stylesheet is mostly an editing feature. The XcRichText widget ignores stylsheets.

The Color Table

Screen colors, character colors, and other color information are contained in the color table group. The control word \colortbl begins this group. Values for red, green, blue, and the foreground and background colors are shown in the following list. These parameter values correspond to the color indexes used by Microsoft Windows (0-255). Each color table entry is defined by the amount of red, green, and blue it has. For more information on color setup, see your Windows documentation.

The following are valid control words for this group

Control word	Meaning	
\redn	Red index	
\greenn	Green index	
\bluen	Blue index	
\cfn	Foreground color (default is 0)	
\cbn	Background color (default is 0)	

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 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 by software that does not display color, this group is ignored.

Note: Foreground colors are supported by the XcRichText widget. The \red, \green, and \blue values are scaled and used as arguments to XAllocColor (using the colormap from the widget's core resources).
Pictures

An RTF file can include picture files composed with other applications. These files are in hexadecimal (default) or binary format. The control word \pict begins this group.  Control words that define and describe the picture parameters follow the \pict control word.
Note: Picture groups are assumed to be hex encoded Sun Raster images, either 1- or 8-bit, with RLE encoding. Most RTF picture control words are not supported. Supported control words are indicated by [X].

These control words are listed in the table that follows. Some measurements in this table are in twips; a twip is one-twentieth of a printer's point. The control words for picture border patterns (\brdrs, \brdrdb, \brdrth, \brdrsh, \brdrdot, and \brdrhair) are ignored when translated into Microsoft Word for the Macintosh, which uses character properties to make borders.

Control word	Meaning	
\brdrs	Single border for picture	
\brdrdb	Double border for picture	
\brdrth	Thick border for picture	
\brdrsh	Shadow border for picture	
\brdrdot	Dotted border for picture	
\brdrhair	Hairline border for picture	
\macpict	Source of picture is Macintosh Quick Draw	
\wmetafilen	Source of picture is Windows metafile; argument identifies the metafile type; default is 1 (MM_TEXT)	
\wbitmapn	Source of picture is a bitmap; argument identifies the bitmap type; default is 0 (logical bitmap)	
\picwn	[X]xExt field if picture is metafile; picture width in pixels if picture is bitmap or from Macintosh Quick Draw	
\pichn	[X]yExt field if picture is metafile; picture height in pixels if picture is bitmap or from Macintosh Quick Draw	
\picwGoaln	Desired width of picture in twips	
\pichGoaln	Desired height of picture in twips	
\picscalexn	Horizontal scaling value; argument is a value between 1 and 100 (default is 10)	
\picscaleyn	Vertical scaling value; argument is a value between 1 and 100 (default is 10)	
\picscaled	Scales picture to fit within specified frame; used only with \macpict pictures	
\piccroptn	Top cropping value in twips; positive value crops toward center of picture; negative value crops away from center, adding space border around picture (default is 0)	
\piccropbn	Bottom cropping value in twips; positive value crops toward center of picture; negative value crops away from center, adding space border around picture (default is 0)	
\piccropln	Left cropping value in twips; positive value crops toward center of picture; negative value crops away from center, adding space border around picture (default is 0)	
\piccroprn	Right cropping value in twips; positive value crops toward center of picture; negative value crops away from center, adding space border around picture (default is 0)	
\wbmbitspixeln	Bitmap bits/pixel (default is 1)	
\wbmplanesn	Number of bitmap planes (default is 1)	
\wbmwidthbytesn	Bitmap width in bytes	
\binn	Picture is in binary format; numeric parameter is number of bytes to follow	

The \wbitmap control word is optional; if neither \wmetafile nor \macpict is specified, the picture is assumed to be a Windows bitmap.

Be careful with spaces following control words when dealing with pictures in binary format.  When reading files, RTF considers the first space the delimiter and subsequent spaces part of the document text.  Therefore, any extra white space is 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. In this case, the CRLF will be treated as literal text and considered part of the picture data.

The picture in hexadecimal or binary format follows the picture group control words. The following example illustrates the group format and the result.

{\pict\wbitmap0\picw170\pich77\wbmbitspixel1\wbmplanes1
\wbmwidthbytes22\picwgoal505
\pichgoal221
\picscalex172
\picscaley172
4912000000000273023d1101a030
3901000a000000000273023d98
0048000200000275
0240000200010275023e000000000
273023dO00002b90002b90002
b90002b90002b9
0002b90002b90002b90002b90002b90002
b92222b90002b90002b90
002b90002b9
D002b90002b90002b90002b9000

A Source
B Width
C Height
D Bits per pixel
E Bitmap planes
F Width of picture in bytes
G Desired picture width
H Desired picture height
I Horizontal scaling value
J Vertical scaling value
K Hexadecimal data

Footnotes

The group containing footnote text begins with the control word \footnote. Footnotes are anchored to the character that immediately precedes the footnote group. If automatic footnoting is defined, the group can be preceded by a footnote reference character, identified by the control word \chftn.

The following is an example of a group containing footnotes

\ftnbj\ftnrestart\sectd \linemod0\linex0\endnhere \pard\plain \ri1170 \fs20 {\up6 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 her work in America during the Second World War, however, that forms the basis for this 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

Mead's landmark study has been amply annotated.1 It was her work in America during the Second World War. however. that forms the basis for this paper. As others have noted2 this period was a turning point for Margaret Mead.

1See Sahlins, Bateson, and Geertz for a complete bibliography.
2A complete bibliography will be found at the end of this chapter.

A Footnotes

See "Section Formatting Properties," "Document Formatting Properties," and "Special Characters" later in this document for other control words relating to footnotes.

Note: Footnotes are ignored by the XcRichText widget.
Annotations

The group containing annotation text begins with the control word \*\annotation. Annotations are anchored to the character that immediately precedes the annotation group. The group must be preceded by an annotation reference character, identified by the control word \chatn, which itself must be preceded by a group that begins with the control word \*\atnid, and contains the identification text for the author of the annotation.

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.}}
...
Note: Annotations are ignored by the XcRichText widget.

Headers and Footers

Headers and footers are treated as separate groups in RTF. These groups must precede the first plain text character in the given document section. The control words \header and \footer begin these groups.

Headers and footers can be defined for each section. If none is defined for a given section, the headers and footers from the previous section (if any) are used.

The control words \header and \footer can be replaced by the following control words, as appropriate

Control word	Meaning	
\headerl	Header on left pages only	
\headerr	Header on right pages only	
\headerf	Header on first page only	
\footerl	Footer on left pages only	
\footerr	Footer on right pages only	
\footerf	Footer on first page only	

Note: Headers and footers are ignored by the XcRichText widget.
Information

The RTF file can also contain an information group, which is translated but not displayed with the text. This information can include the title, author, key words, comments, and other information specific to the file. This information can be used when a document management utility is available.

This group begins with the control word \info. Some applications, such as Word, ask a user to type this docurnent information when saving the document in native format. When the document is then saved or translated into RTF, the RTF writer specifies this information using the following control words. These control words are destinations, and should be enclosed in braces ({}).

Control word	Meaning	
\title	Title of document	
\subject	Subject of document	
\author	Author of document	
\operator	Person who last made changes to document	
\keywords	Selected key words for document	
\comment	Comments; text is ignored	
\version	Version number of document	
\doccomm	Comments displayed in Edit Summary Info dialog box	

The RTF writer may automatically enter other control words, as shown in the following list

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	
\nofpagesn	Number of pages	
\nofwordsn	Number of words	
\nofcharsn	Number of characters	
\idn	Internal ID number	

Entries without the n parameter have the \yr \mo \dy \hr \min format. An example of an information group follows.

{\info{\title The Panda's Thumb}{\author Stephen J. Gould}{\keywords science natural history }}

Note: The information group is ignored by the XcRichText widget. 
Fields

The field group contains the text of Word fields. The field group begins with the control word \field.

The following control words can follow the \field control word

Control word	Meaning	
\flddirty	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 subgroups are available within the \field group. They must be enclosed in braces ({}) and begin with the following control words

Control word	Meaning	
\*\fldinst	Field instructions	
\fldrslt	Most recently calculated result of the field	

The \fldrslt control word should be included even if no result has been calculated. This simplifies the RTF reader's task, because even readers that do not recognize fields can generally include the value of the \fldrslt group in the document.

An example of some field text follows

IA	|C	IC

1          I

{\field\fldedit{\fldinst author}{\fldrslt Joe Smith}}\par\pard {\field{\fldinst time\\@"hmm AM/PM"}{\fldrslt 812 AM}}

A Begins fieId group 
B Field instructions
C Field result

Note: Field instructuions are ignored by the XcRichText widget. The \fldrslt group is displayed.
Index Entries

The index entry group begins with the control word \xe. Following this control word is the text of the index entry and other, optional control words that further define the index entry.

If the text of the index entry is not formatted as hidden text with the \v control word (see "Character Formatting Properties," later in this document), the text is put into the document as well as into the index. Similarly, the text of the \txe subgroup, described later, becomes part of the document if it is not formatted as hidden text.

The following control words may also be used

Control word	Meaning	
\bxe	Formats the page number or cross-reference bold	
\ixe	Formats the page number or cross-reference italic	

The following control words are destinations within the \xe group and are followed by text arguments. These control words and their arguments must be enclosed in braces ({})

Control word	Meaning	
\txe text	Uses text instead of a page number	
\rxe bookmark-name	Generates page numbers for the range of text specified by bookmark-name	

Note: Index entries are treatedas normal text by the XcRichText widget. That is, unless they are formatted as invisible text, they will be displayed.

Table of Contents Entries

The table of contents entry group begins with the control word \tc. It is followed by the text of the table of contents entry and optional switches.

As with index entries, text that is not formatted as hidden with the \v character formatting control word should be put into the document.

The following control words can also be used in this group

Control word	Meaning	
\tcfn	Type of table being compiled; n is mapped by existing Microsoft software to a Ietter between A and Z; default is 67, which maps to C, used for tables of contents	
\tcln	Level number (default is l)	

Note: Table of contents entries are treatedas normal text by the XcRichText widget. That is, unless they are formatted as invisible text, they will be displayed.
Bookmarks

This group contains two control words \*\bkmkstart, to indicate the start of the specified bookmark, and \*\bkmkend, to indicate the end of the specified bookmark. 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}

...
Note: Bookmark groups are ignored.
Document Formatting Properties

This section lists the control words that act on the attributes of a document, such as margins and footnote placement. These attributes must precede the first plain text character in the document.

The following control words specify document formatting. If you omit a control word, RTF uses the default value shown in parentheses. Measurements are in twips.
Note: Most document formatting properties don't apply to text displayed in an X window. These control words are not supported, except \deftab.

Control word	Meaning	
\paperwn	Paper width (12,240)	overridden by window width	
\paperhn	Paper height (15,840)	
\margln	Left margin (1,800)	
\margrn	Right margin (1,800)	
\margtn	Top margin (1,440)	
\margbn	Bottom margin (1,440)	
\facingp	Facing pages (activates odd/even headers and gutters)	
\guttern	Gutter width (0)	

Control word	Meaning	
\deftabn	Default tab width (720)	
\widowctrl	Widow control	
\hyphhotz	Hyphenation hot zone ( amount of space at right margin in which words are hyphenated)	
\ftnsep	Text argument separates footnotes from document	
\ftnsepc	Text argument separates continued footnotes from document	
\ftncn	Text argument is a notice for continued footnotes	
\endnotes	Footnotes at end of section (default)	
\enddoc	Footnotes at end of document	
\ftntj	Footnotes beneath text	
\ftnbj	Footnotes at bottom of page	
\ftnstartn	Beginning footnote number ( 1 )	
\ftnrestart	Footnote numbers restart on each page	
\pgnstartn	Beginning page number ( 1 )	
\linestartn	Beginning line number ( 1 )	
\landscape	Landscape format	
\fracwidth	Uses fractional character widths when printing (Macintosh (tm)	
\*\nextfile	Destination; argument is file name of file to print or index next; must be enclosed in braces ( {} )	
\*\template	Destination; argument is file name of related template file; must be enclosed in braces ( {} )	
\makeback	Backup copy is made automatically when document is saved	
\defformat	Tells RTF reader that document should be saved in RTF format	
\revisions	Turns on revision marking	
\margmirror	Switches margin definitions on left and right pages	
\revpropn	Argument indicates how revised text will be displayed; 0, no properties shown; 1, bold; 2, italic; 3, underline (default); 4, double underline	
\revbarn	Vertical lines mark altered text, based on the argument 0, no marking; 1, Ieft margin; 2 right mugin; 3, outside (Ieft on Ieft pages, right on right pages; default)	

Section Formatting Properties

The following control words are used to specify section formatting properties. Default values are shown in parentheses.

Note: Most section formatting properties are beyond the scope of the XcRichText widget. These control words are not supported.
Control word	Meaning	
\sectd	Reset to default section properties	
\sbknone	No section break	
\sbkcol	Section break starts new column	
\sbkpage	Section break starts new page (default)	

Control word	Meaning	
\sbkeven	Section break starts at even page	
\sbkodd	Section break starts at odd page	
\pgnstartsn	Beginning page number (1)	
\pgncont	Continuous page numbering (default)	
\pgnrestart	Page numbers restart at \pgnstarts value	
\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 upper case Ietter	
\pgnlcltr	Page number format is lower case letter	
\pgnxn	Page number is n twips from Ieft margin (720)	
\pgnyn	Page number is n twips from bottom margin ( 720)	
\headeryn	Header is n twips from top of page (1080)	
\footeryn	Footer is n twips from bottom of page (1080)	
\linemodn	Line number modulus (amount to increase each line number) (1)	
\linexn	Distance from line number to left text margin in twips (360)	
\linestartsn	Beginning line number (1)	
\linerestart	Line numbers restart at \linestarts value	
\lineppage	Line numbers restart each page	
\linecont	Line numbers continued from preceding section	
\vertalt	Text is top aligned (default)	
\vertal	Text is bottom aligned	
\vertalc	Text is centered vertically	
\vertalj	Text is justified vertically	
\colsn	Number of columns (snaking) (1)	
\colsxn	Space between columns in twips (720)	
\linebetcol	Line between columns	
\endnhere	Endnotes included in section	
\titlepg	Title page has special format	

Paragraph Formatting Properties

The following control words are used to specify paragraph formatting properties. Default values are shown in parentheses. When specifying border properties, the border segment control word (\brdrt, \brdrb, \brdrl, \brdrr, or \box) must precede the control word(s) specifymg the pattern for the border, to ensure compatibility with previous versions of RTF.

Note: Basic paragraph formatting is supported by the XcRichText widget. Borders are not supported. Tables are supported to a limited extent.
Control word	Meaning	
\pard	Resets to default paragraph properties	
\sn	Designates style; if a style is specified style properties must be specified with the paragraph	
\ql	Left aligned (default)	

Control word	Meaning	
\qr	Right aligned	
\qj	Justified	Not supported.	
\qc	Centered	
\fin	First-line indent (0)	
\lin	Left indent (0)	
\rin	Right indent (0)	
\sbn	Space before (0)	
\san	Space after (0)	
\sln	Space between lines (if this control word is missing or if \sl000 is used, line spacing is automatically determined by tallest character in line); if positive value, use this size if it is greater than the tallest character, otherwise use tallest character; if negative value, use the absolute value of number, even if tallest character is taller	Only positive values supported.
\intbl	Paragraph is part of a table	Not supported.	
\keep	Keep paragraph intact	Not supported.	
\keepn	Keep paragraph with next	Not supported.	
\sbys	Side-by-side paragraphs	Not supported.	
\pagebb	Break page before the paragraph	Not supported.	
\noline	No line numbering	
\txn	Tab position in twips from left margin	
\tqr	Flush-right tab	Not supported.	
\tqc	Centered tab	Not supported.	
\tqdec	Decimal tab	Not supported.	
\tb	Bar tab	Not supported.	
\brdrt	Border top	Not supported.	
\brdrb	Border bottom	Not supported.	
\brdrl	Border left	Not supported.	
\brdrr	Border right	Not supported.	
\box	Border around paragraph (box paragraph)	Not supported.	
\brdrs	Single-thickness border	Not supported.	
\brdrth	Thick border	Not supported.	
\brdrsh	Shadowed border	Not supported.	
\brdrdb	Double border	Not supported.	
\brdrdot	Dotted border	Not supported.	
\brdrhair	Hairline border	Not supported.	
\brspn	Space in twips between borders and object	Not supported.	
\tldot	Leader dots	Not supported.	
\tlhyph	Leader hyphens	Not supported.	
\tlul	leader underline	Not supported.	
\tlth	leader thick line	Not supported.	

Absolute-Positioned Objects

These paragraph formatting control words specify the location of the paragraph on the
page.
Note: Absolute positioned objects are note supported by the XcRichText widget.

Control word	Meaning	
\posxn	Positions paragraph n twips from left edge of reference frame	
\posxc	Centers paragraph horizontally within reference frame	
\posxi	Positions paragraph horizontally inside reference frame	
\posxl	Positions paragraph to left within reference frame	
\posxo	Positions paragraph horizontally outside reference frame	
\posxr	Positions paragraph to right within reference frame	
\posyn	Positions paragraph n twips from top edge of reference frame	
\posyil	Positions paragraph vertically to be in-line	
\posyt	Positions paragraph at top of reference frame	
\posyc	Centers paragraph vertically within reference frame	
\posyb	Positions paragraph at bottom of reference frame	
\abswn	Absolute width of paragraph text in twips	
\dxfrtextn	Horizontal distance in twips of an absolutely postioned paragraph from text in main text flow	
\pvmrg	Position vertically relative to margin	
\pvpg	Position vertically relative to page	
\phmrg	Position horizontally relative to margin	
\phpg	Position horizontally relative to page	
\phcol	Position horizontally relative to column	

The following is an example of absolute-positioned text in a document

...
\par \pard \pvpg\phpg\posxc\posyt\absw5040\dxfrtextl73 abs pos paral
\par \pard \phmrg\posxo\posyc \dxfrtext1 152 abs pos para2

...

A Text to be positioned

Tables

A table is a collection of paragraphs. A table row is a continuous sequence of paragraphs partitioned into cells. The last paragraph of a cell is terminated by a cell mark (the \cell control word), and the row is terminated by a row mark (the \row control word) There is no RTF table group; the \intbl paragraph formatting control word identifies the paragraph as part of a table.
Note: Tables are not really supported by the XcRichText widget. \cell is treated like \tab, and \row is treated like \par.

Control word	Meaning	
\clbrdrb	Bottom table cell border	
\clbrdrt	Top table cell border	
\clbrdrl	Left table cell border	
\clbrdrr	Right table cell border	
\trowd	Sets table row defaults	
\trql	Left justifies table row with respect to its table column	
\trqr	Right justifies table row with respect to its containing column	
\trqc	Centers table row with respect to its containing column	
\trgaphn	Half the space between cells of a table row in twips	
\trrhn	Height of a table row in twips; when 0, height is sufficient for all text in line; when positive, 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	
\trleftn	Position of Ieftmost edge of table with respect to the left edge of its column	
\cellxn	Moves 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 table cell are merged with preceding cell	

The following example shows some table text

...
\par\trowd\trqc\trgaph108\trrh280\trleft36
\clbrdrt\brdrth\clbrdrn\brdrth\clbrdrb\brdrdb
\clbrdr\brdrdb\celbx3636\clbrdrt\brdrth
\clbrdrl\brdrdb \clbrdrb\brdrdb \dbrdrr\brdrdb
\cellx7236\clbrdrt\brdrth\dbrdrl\brdrdb
\clbrdrb\brdrdb\clbrdr\brdrdb\cellx10836\pard \intbl
\cell \pard \intbl \cell \pard \intbl \cell \pard \intbl \row
\trowd \trqc\trgaph108\trrh280\trleft36 \dbrdrt\brdrdb
\clbrdrl\brdrth \clbrdrb \brdrsh\brdrs \dbrdrr\brdrdb
\cellx3636\clbrdr\brdrdb \dbrdr\brdrdb
\clbrdrb\brdrsh\brdrs \dbrdrr\brdrdb
\cellx7236\clbrdrt \brdrdb \dbrdr \brdrdb
\clbrdrb\brdrsh\brdrs \clbrdrr\brdrdb \celbx10836\pard
\intbl \cell \pard \intbl \cell \pard \intbl \cell \pard
\intbl \row \pard
...

Character Formatting Properties

The last group controls character formatting properties. A control word preceding plain text turns on the specified attribute. Some control words (indicated by an asterisk following the description) can be turned off by the control word followed by a zero (0). For example, \b turns bold on, while \b0 turns bold off.

Control word	Meaning	
\plain	Resets application's default character formatting properties	
\b	Bold*	
\i	Italic*	
\strike	Strikethrough*	Not supported.	
\outl	Outline*	Not supported.	
\shad	Shadow*	Not supported.	
\scaps	Small capitals*	Not supported.	
\caps	All capitals*	Not supported.	
\v	Hidden text*	
\fn	Font number	
\fsn	Font size in half-points (default is 24)		
\expndn	Expansion or compression of leading between characters in quarter-points; a negative value compresses (0)	Not supported.	
\ul	Continuous underline*	Not supported.	
\ulw	Word underline*	Not supported.	
\uld	Dotted underline*	Not supported.	
\uldb	Double underline*	Not supported.	
\ulnone	Stops all underlining	
\upn	Superscript position in half-points (default is 6)	
\dnn	Subscript position in half-points (default is 6)	
\revised	Text has been added since revision marking was turned on	Not supported.	

Special Characters

Special RTF characters are listed below. If a character 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 characters to be added for interchange with other software.

Control word	Meaning	
\chdate	Current date (as in headers)	
\chtime	Current time (as in headers)	
\chpgn	Current page number (as in headers)	
\chftn	Automatic footnole reference (footnotes follow in a group)	
\chatn	Annotion reference (annotation text follows in a group)	
\chftnsep	Anchoring character for footnote separator	

Note: The above special characters are not supported.
Control word	Meaning	
\chftnsepc	Anchoring character for footnote continuation	
\|	Formula character	
\~	Nonbreaking space	acts like a regular space.	
\-	Optional hyphen	
\_	Nonbreaking hyphen	acts like a regular hyphen.	
\'hh	A hexadecimal value, based on the specified character set (may be used to identify 8-bit values)	
\cell	End of table cell	Acts like \tab.	
\row	End of table row	Acts like \line.	
\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)	
\tab	Tab character, same as ASCII 9	
\	Specifies a subentry in an index entry	
\*	Marks a destination whose text should be ignored if not understood by the RTF reader	

An ASCII 9 will be accepted as a tab character. The code \<ASCII10> (line feed) or \<ASCIIl3> (carriage return) is treated as the control word \par. You must include the backslashes or RTF will ignore 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.