About Shape Descriptions
Font and shape files (SHX) are compiled from shape definition files (SHP). You can
create or modify shape definition files with a text editor or word processor that
saves files in ASCII format.
The syntax of the shape description for each shape or character is the same regardless
of the final use (shape or font) for that shape description. If a shape definition
file is to be used as a font file, the first entry in the file describes the font
itself rather than a shape within the file. If this initial entry describes a shape,
the file is used as a shape file.
Each line in a shape definition file can contain up to 128 characters. Longer lines
cannot be compiled. Because the program ignores blank lines and text to the right
of a semicolon, you can embed comments in shape definition files.
Each shape description has a header line of the following form and is followed by
one or more lines containing specification bytes, separated by commas and terminated
by a 0.
The following list describes the fields of a shape description:
A number, unique to the file, between 1 and 258 (and up to 32768 for Unicode fonts),
and preceded by an asterisk (*). Non-Unicode font files use the shape numbers 256,
257, and 258 for the symbolic identifiers Degree_Sign, Plus_Or_Minus_Sign, and Diameter_Symbol.
For Unicode fonts these glyphs appear at the U+00B0, U+00B1, and U+2205 shape numbers
and are part of the â€œLatin Extended-Aâ€ subset.
Text fonts (files containing shape definitions for each character) require specific
numbers corresponding to the value of each character in the ASCII code; other shapes
can be assigned any numbers.
The number of data bytes ( specbytes ) required to describe the shape, including the terminating 0. The limit is 2,000
bytes per shape.
The shape name. Shape names must be uppercase to be recognized. Names with lowercase
characters are ignored and are usually used to label font shape definitions.
A shape specification byte. Each specification byte is a code that defines either
a vector length and direction or one of a number of special codes. A specification
byte can be expressed in the shape definition file as either a decimal or hexadecimal
value. If the first character of a specification byte is a 0 (zero), the two characters
that follow are interpreted as hexadecimal values.