Layout Codes


There are two kinds of layout codes: those which always modify a whole pragraph, and those which modify one or more characters. They are always kept strictly separate. A layout code consists of a type byte, followed by one or more modifier bytes. All rcognized codes are listed below.


Paragraph Layout List

A Paragraph Layout List is a LListB of Paragraph Layout Codes. Paragraph Layout Codes are almost always found in this form.


Paragraph Layout Codes

As explained above, a Paragraph Layout Code consists of a type byte, telling what kind of layout code this is, followed by a type-dependent amount of data.


Type Size Data Description

01 3B Color Background color

02 L , Length Indent left

03 L Length Indent right

04 L Length (Un)indent first line (length relative to indent left setting)

05 B Hor. justify left (00), centre (01), right (02) or full (03)

06 B Vert. justify top (0) centre (01) or bottom (02)

07 L Size Interline distance

08 B Interline distance is minimum (00) or exact (01)

09 L Size Line distance before paragraph start

0A L Size Line distance after paragraph end

0B B Line distance options: Keep on one page on (01) or off (00)

0C B Line distance options: Keep together with on (01) or off (00)

0D B Line distance options: On next page on (01) or off (00)

0E B Protection vs. single lines on pages disable (01) or enable (00)

10 L Length Distance of borders from text

11 9B Border Top border

12 9B Border Bottom border

13 9B Border Left border

14 9B Border Right border

15 * Bullet Bullets

16 L Length Set standard (left) tabs interval

17 5B Tab Set extra tab


Some comments. The first line of a paragraph can have a different indentation than the other lines. This indentation length is always relative to the normal indentation, and can be positive (more to the right) or negative (more to the left).

Borders can be made to be drawn beyond the standard margins, by specifying the amount of space between them and the text. This is always a positive value.

There always standard tab positions; they are placed at regular interfals as specified. These are always left tabs. Additional tabs can also be specified, but these are always in addition to the standard tab positions.


Borders


The four possible borders are specified separately, through initial type bytes 11 to 14. The border structure is shown below.


Offset Data Description

0000 B Type (see below)

0001 L Thickness (always 01 for types 02 to 06)

0005 Color Color of border

0008 B Unknown (always 01 ?)

0009


The border type can have the following values:

Border Type Description

00 None

01 Solid single line

02 Solid double line

03 Dotted line

04 Striped line

05 Dotstriped line

06 Dotdotstriped line

The thickness can only be defined for solid lines. It is expressed in units of 1/14 point (1/20 decimal), just like Sizes and Lengths. The three Unknown bytes may be another color code, or something completely different. The function of the final byte is also unclear.


Bullets

A Bullet description is a BListB. The complete structure is given below, including the initial length byte excluding the initial type byte 15.


Offset Data Description

0000 B Size of the remainder of this section in bytes

0001 Size Font size of bullet in points

0005 B Character used for bullet in ASCII

0006 B Indent after bullet on (01) or off (00)

0007 Color Color of bullet

0008 Font Font from which the bullet is taken (always Swiss?)


Tabs


In addition to the default left tabs, which are found at regular intervals, more tabs can be defined. Each additional tab is specified in its own structure. Below this structure is shown, excluding the initial type byte 17.


Offset Data Description

0000 Length Location of the tab, relative to the left margin

0004 B Tab type (see below)

0005


There are three kinds of tab. They specify the anchoring of the text just after the tab: either the first character, the centre character or the last character.


Tab type Kind

1 Left

2 Centre

3 Right



Character Layout List

A Character Layout List is a LListB of Character Layout Codes. Character Layout Codes are almost always found in this form.


Character Layout Codes

As explained above, a Character Layout Code consists of a type byte, telling what kind of layout code this is, followed by a type-dependent amount of data.


Type Size Data Description

19 3B Color Set text color

1A 3B Color Set ??? color

1C L Size Change character point size

1D B Italic on (01) or off (00)

1E B Bold on (01) or off (00

1F B Superscript (01) or subscipt (02) or off (00)

20 B Underline on (01) or off (00)

21 B Strikeout on (01) or off (00)

22 * Font Change character font


Some remarks: the use of code 1A is unclear. It is found in the dutch Welcome To The Psion 5 document, but Word seems to ignore it.