2 Copyright (C) 1989-1995, 2001 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 Here a list of obsolete keywords which are recognized by
155 but completely ignored:
160 A font file has two sections. The first section is a sequence
161 of lines each containing a sequence of blank delimited
162 words; the first word in the line is a key, and subsequent
163 words give a value for that key.
166 The name of the font is
170 The normal width of a space is
174 The characters of the font have a slant of
176 degrees. (Positive means forward.)
178 .BI ligatures\ lig1\ lig2\|.\|.\|.\|lign\ \fR[ 0 \fR]
181 .IR lig2 ,\|.\|.\|., lign
182 are ligatures; possible ligatures are
189 For backwards compatibility, the list of ligatures may be terminated
192 The list of ligatures may not extend over more than one line.
197 this means that when a character is requested that is not present in
198 the current font, it will be searched for in any special fonts that
201 Other commands are ignored by
203 but may be used by postprocessors to store arbitrary information
204 about the font in the font file.
206 The first section can contain comments which start with the
208 character and extend to the end of a line.
210 The second section contains one or two subsections.
214 and it may also contain a
217 These subsections can appear in any order.
218 Each subsection starts with a word on a line by itself.
222 starts the charset subsection.
225 line is followed by a sequence of lines.
226 Each line gives information for one character.
227 A line comprises a number of fields separated
228 by blanks or tabs. The format is
230 .I name metrics type code
236 identifies the character:
239 is a single character
241 then it corresponds to the groff input character
245 where c is a single character, then it
246 corresponds to the groff input character
248 otherwise it corresponds to the groff input character
250 (if it is exactly two characters
254 Groff supports eight bit characters; however some utilities
255 has difficulties with eight bit characters.
256 For this reason, there is a convention that the name
258 is equivalent to the single character whose code is
262 would be equivalent to the character with code 163
263 which is the pounds sterling sign in ISO Latin-1.
266 is special and indicates that the character is unnamed;
267 such characters can only be used by means of the
274 field gives the character type:
277 means the character has an descender, for example, p;
280 means the character has an ascender, for example, b;
283 means the character has both an ascender and a descender, for example,
288 field gives the code which the postprocessor uses to print the character.
289 The character can also be input to groff using this code by means of the
292 The code can be any integer.
295 it will be interpreted as octal;
300 it will be intepreted as hexadecimal.
304 field gives an ascii string identifying the glyph which the postprocessor
305 uses to print the character.
306 This field is optional and has been introduced so that the html device driver
307 can encode its character set.
308 For example, the character `\e[Po]' is represented as `£' in html 4.0.
310 Anything on the line after the encoding field resp. after `-\&-' will
317 .IR width [\fB, height [\fB, depth [\fB, italic_correction [\fB, \
318 left_italic_correction [\fB, subscript_correction ]]]]]
320 There must not be any spaces between these subfields.
321 Missing subfields are assumed to be 0.
322 The subfields are all decimal integers.
323 Since there is no associated binary format, these
324 values are not required to fit into a variable of type
326 as they are in ditroff.
329 subfields gives the width of the character.
332 subfield gives the height of the character (upwards is positive);
333 if a character does not extend above the baseline, it should be
334 given a zero height, rather than a negative height.
337 subfield gives the depth of the character, that is, the distance
338 below the lowest point below the baseline to which the
339 character extends (downwards is positive);
340 if a character does not extend below above the baseline, it should be
341 given a zero depth, rather than a negative depth.
344 subfield gives the amount of space that should be added after the
345 character when it is immediately to be followed by a character
348 .I left_italic_correction
349 subfield gives the amount of space that should be added before the
350 character when it is immediately to be preceded by a character
353 .I subscript_correction
354 gives the amount of space that should be added after a character
355 before adding a subscript.
356 This should be less than the italic correction.
358 A line in the charset section can also have the format
365 is just another name for the character mentioned in the
370 starts the kernpairs section.
371 This contains a sequence of lines of the form:
376 This means that when character
378 appears next to character
380 the space between them should be increased by
382 Most entries in kernpairs section will have a negative value for
385 .Tp \w'@FONTDIR@/devname/DESC'u+3n
386 .BI @FONTDIR@/dev name /DESC
387 Device description file for device
390 .BI @FONTDIR@/dev name / F
396 .BR groff_out (@MAN5EXT@),
397 .BR @g@troff (@MAN1EXT@).