2 Copyright (C) 1989-1995 Free Software Foundation, Inc.
4 Permission is granted to make and distribute verbatim copies of
5 this manual provided the copyright notice and this permission notice
6 are preserved on all copies.
8 Permission is granted to copy and distribute modified versions of this
9 manual under the conditions for verbatim copying, provided that the
10 entire resulting derived work is distributed under the terms of a
11 permission notice identical to this one.
13 Permission is granted to copy and distribute translations of this
14 manual into another language, under the above conditions for modified
15 versions, except that this permission notice may be included in
16 translations approved by the Free Software Foundation instead of in
24 .\" Like TP, but if specified indent is more than half
25 .\" the current line-length - indent, use the default indent.
27 .ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
30 .TH GROFF_FONT @MAN5EXT@ "@MDATE@" "Groff Version @VERSION@"
32 groff_font \- format of groff device and font description files
34 The groff font format is roughly a superset of the ditroff
36 Unlike the ditroff font format, there is no associated binary
38 The font files for device
40 are stored in a directory
42 There are two types of file: a
43 device description file called
50 there is no associated binary format.
52 The DESC file can contain the following types of line:
57 machine units per inch.
60 The horizontal resolution is
65 The vertical resolution is
70 The scale factor for pointsizes.
71 By default this has a value of 1.
82 commands are given in scaled points.
85 Quantities in the font files are given in machine units
86 for fonts whose point size is
91 This means that the postprocessor can handle the
97 .BI sizes\ s1\ s2\|.\|.\|.\|sn\ 0
98 This means that the device has fonts at
100 .IR s2 ,\|.\|.\|.\| sn
102 The list of sizes must be terminated by a
106 can also be a range of sizes
108 The list can extend over more than one line.
110 .BI styles\ S1\ S2\|.\|.\|.\|Sm
113 font positions will be associated with styles
114 .IR S1\|.\|.\|.\|Sm .
116 .BI fonts\ n\ F1\ F2\ F3\|.\|.\|.\|Fn
119 will be mounted in the font positions
120 .IR m +1,\|.\|.\|., m + n
123 is the number of styles.
124 This command may extend over more than one line.
127 will cause no font to be mounted on the corresponding font position.
130 The default font family is
133 .B use_charnames_in_special
134 This command indicates that troff should encode named characters inside
138 requests that troff tells the driver the source file name being processed.
139 This is achieved by another tcommand:
144 This line and everything following in the file are ignored.
145 It is allowed for the sake of backwards compatibility.
147 The res, unitwidth, fonts and sizes lines are compulsory.
148 Other commands are ignored by
150 but may be used by postprocessors to store arbitrary information
151 about the device in the DESC file.
153 A font file has two sections. The first section is a sequence
154 of lines each containing a sequence of blank delimited
155 words; the first word in the line is a key, and subsequent
156 words give a value for that key.
159 The name of the font is
163 The normal width of a space is
167 The characters of the font have a slant of
169 degrees. (Positive means forward.)
171 .BI ligatures\ lig1\ lig2\|.\|.\|.\|lign\ \fR[ 0 \fR]
174 .IR lig2 ,\|.\|.\|., lign
175 are ligatures; possible ligatures are
181 For backwards compatibility, the list of ligatures may be terminated
184 The list of ligatures may not extend over more than one line.
189 this means that when a character is requested that is not present in
190 the current font, it will be searched for in any special fonts that
193 Other commands are ignored by
195 but may be used by postprocessors to store arbitrary information
196 about the font in the font file.
198 The first section can contain comments which start with the
200 character and extend to the end of a line.
202 The second section contains one or two subsections.
206 and it may also contain a
209 These subsections can appear in any order.
210 Each subsection starts with a word on a line by itself.
214 starts the charset subsection.
217 line is followed by a sequence of lines.
218 Each line gives information for one character.
219 A line comprises a number of fields separated
220 by blanks or tabs. The format is
222 .I name metrics type code
228 identifies the character:
231 is a single character
233 then it corresponds to the groff input character
237 where c is a single character, then it
238 corresponds to the groff input character
240 otherwise it corresponds to the groff input character
242 (if it is exactly two characters
246 Groff supports eight bit characters; however some utilities
247 has difficulties with eight bit characters.
248 For this reason, there is a convention that the name
250 is equivalent to the single character whose code is
254 would be equivalent to the character with code 163
255 which is the pounds sterling sign in ISO Latin-1.
258 is special and indicates that the character is unnamed;
259 such characters can only be used by means of the
266 field gives the character type:
269 means the character has an descender, for example, p;
272 means the character has an ascender, for example, b;
275 means the character has both an ascender and a descender, for example,
280 field gives the code which the postprocessor uses to print the character.
281 The character can also be input to groff using this code by means of the
284 The code can be any integer.
287 it will be interpreted as octal;
292 it will be intepreted as hexadecimal.
296 field gives an ascii string identifying the glyph which the postprocessor
297 uses to print the character.
298 This field is optional and has been introduced so that the html device driver
299 can encode its character set.
300 For example, the character `\e[Po]' is represented as `£' in html 4.0.
302 Anything on the line after the encoding field resp. after `-\&-' will
309 .IR width [\fB, height [\fB, depth [\fB, italic_correction [\fB, \
310 left_italic_correction [\fB, subscript_correction ]]]]]
312 There must not be any spaces between these subfields.
313 Missing subfields are assumed to be 0.
314 The subfields are all decimal integers.
315 Since there is no associated binary format, these
316 values are not required to fit into a variable of type
318 as they are in ditroff.
321 subfields gives the width of the character.
324 subfield gives the height of the character (upwards is positive);
325 if a character does not extend above the baseline, it should be
326 given a zero height, rather than a negative height.
329 subfield gives the depth of the character, that is, the distance
330 below the lowest point below the baseline to which the
331 character extends (downwards is positive);
332 if a character does not extend below above the baseline, it should be
333 given a zero depth, rather than a negative depth.
336 subfield gives the amount of space that should be added after the
337 character when it is immediately to be followed by a character
340 .I left_italic_correction
341 subfield gives the amount of space that should be added before the
342 character when it is immediately to be preceded by a character
345 .I subscript_correction
346 gives the amount of space that should be added after a character
347 before adding a subscript.
348 This should be less than the italic correction.
350 A line in the charset section can also have the format
357 is just another name for the character mentioned in the
362 starts the kernpairs section.
363 This contains a sequence of lines of the form:
368 This means that when character
370 appears next to character
372 the space between them should be increased by
374 Most entries in kernpairs section will have a negative value for
377 .Tp \w'@FONTDIR@/devname/DESC'u+3n
378 .BI @FONTDIR@/dev name /DESC
379 Device description file for device
382 .BI @FONTDIR@/dev name / F
388 .BR groff_out (@MAN5EXT@),
389 .BR @g@troff (@MAN1EXT@).