2 Copyright (C) 1989-1995, 2001, 2002, 2003 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
26 .\" Like TP, but if specified indent is more than half
27 .\" the current line-length - indent, use the default indent.
29 .ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
34 .TH GROFF_FONT @MAN5EXT@ "@MDATE@" "Groff Version @VERSION@"
38 groff_font \- format of groff device and font description files
42 The groff font format is roughly a superset of the ditroff
45 The font files for device
47 are stored in a directory
50 There are two types of file: a
51 device description file called
59 unlike the ditroff font format,
60 there is no associated binary format.
65 The DESC file can contain the following types of line as shown below.
67 Later entries in the file override previous values.
71 This line and everything following in the file are ignored.
73 It is allowed for the sake of backwards compatibility.
77 The default font family is
81 .BI fonts\ n\ F1\ F2\ F3\|.\|.\|.\|Fn
84 will be mounted in the font positions
85 .IR m +1,\|.\|.\|., m + n
88 is the number of styles.
90 This command may extend over more than one line.
94 will cause no font to be mounted on the corresponding font position.
98 The horizontal resolution is
104 The physical vertical dimension of the output medium in machine units.
108 itself but by output devices.
117 .BI papersize\ string
122 are the ISO paper types A0-A7, B0-B7, C0-C7, D0-D7, DL, and the US paper
123 types letter, legal, tabloid, ledger, statement, executive, com10, and
126 Case is not significant for
128 if it holds predefined paper types.
132 can be a file name (e.g.\& `/etc/papersize'); if the file can be opened,
134 reads the first line and tests for the above paper sizes.
138 can be a custom paper size in the format
140 (no spaces before and after the comma).
146 must have a unit appended; valid values are `i' for inches, `c' for
147 centimeters, `p' for points, and `P' for picas.
152 An argument which starts with a digit is always treated as a custom paper
156 sets both the vertical and horizontal dimension of the output medium.
159 More than one argument can be specified;
161 scans from left to right and uses the first valid paper specification.
165 The physical horizontal dimension of the output medium in machine units.
175 itself but by output devices.
179 Make troff tell the driver the source file name being processed.
181 This is achieved by another tcommand:
189 as the postprocessor.
201 as the spooler program for printing.
215 machine units per inch.
218 .BI sizes\ s1\ s2\|.\|.\|.\|sn\ 0
219 This means that the device has fonts at
221 .IR s2 ,\|.\|.\|.\| sn
224 The list of sizes must be terminated by a
229 can also be a range of sizes
232 The list can extend over more than one line.
236 The scale factor for pointsizes.
238 By default this has a value of 1.
251 commands are given in scaled points.
254 .BI styles\ S1\ S2\|.\|.\|.\|Sm
257 font positions will be associated with styles
258 .IR S1\|.\|.\|.\|Sm .
262 This means that the postprocessor can handle the
270 Quantities in the font files are given in machine units
271 for fonts whose point size is
276 .B use_charnames_in_special
277 This command indicates that troff should encode named characters inside
282 The vertical resolution is
293 lines are compulsory.
295 Not all commands in the DESC file are used by
297 itself; some of the keywords (or even additional ones) are used by
298 postprocessors to store arbitrary information about the device.
301 Here a list of obsolete keywords which are recognized by
303 but completely ignored:
311 A font file has two sections.
312 The first section is a sequence
313 of lines each containing a sequence of blank delimited
314 words; the first word in the line is a key, and subsequent
315 words give a value for that key.
318 .BI ligatures\ lig1\ lig2\|.\|.\|.\|lign\ \fR[ 0 \fR]
321 .IR lig2 ,\ \|.\|.\|.,\ lign
322 are ligatures; possible ligatures are
330 For backwards compatibility, the list of ligatures may be terminated
334 The list of ligatures may not extend over more than one line.
338 The name of the font is
343 The characters of the font have a slant of
347 (Positive means forward.)
351 The normal width of a space is
358 this means that when a character is requested that is not present in
359 the current font, it will be searched for in any special fonts that
363 Other commands are ignored by
365 but may be used by postprocessors to store arbitrary information
366 about the font in the font file.
369 The first section can contain comments which start with the
371 character and extend to the end of a line.
374 The second section contains one or two subsections.
379 and it may also contain a
383 These subsections can appear in any order.
385 Each subsection starts with a word on a line by itself.
390 starts the charset subsection.
394 line is followed by a sequence of lines.
396 Each line gives information for one character.
398 A line comprises a number of fields separated
404 .I name metrics type code
411 identifies the character:
414 is a single character
416 then it corresponds to the groff input character
420 where c is a single character, then it
421 corresponds to the special character
423 otherwise it corresponds to the groff input character
424 .BI \[rs][ name ]\fR.
426 If it is exactly two characters
431 Note that single-letter special characters can't be accessed as
433 the only exception is `\[rs]-' which is identical to `\[rs][-]'.
437 is special and indicates that the character is unnamed;
438 such characters can only be used by means of the
444 Groff supports eight-bit characters; however some utilities
445 have difficulties with eight-bit characters.
447 For this reason, there is a convention that the name
449 is equivalent to the single character whose code is
454 would be equivalent to the character with code 163
455 which is the pounds sterling sign in ISO Latin-1.
460 field gives the character type:
464 means the character has a descender, for example, p;
468 means the character has an ascender, for example, b;
472 means the character has both an ascender and a descender, for example,
478 field gives the code which the postprocessor uses to print the character.
480 The character can also be input to groff using this code by means of the
484 The code can be any integer.
488 it will be interpreted as octal;
493 it will be intepreted as hexadecimal.
495 Note, however, that the
497 escape sequence only accepts a decimal integer.
502 field gives an ascii string identifying the glyph which the postprocessor
503 uses to print the character.
505 This field is optional and has been introduced so that the html device driver
506 can encode its character set.
508 For example, the character `\[rs][Po]' is represented as `£' in
512 Anything on the line after the encoding field resp. after `-\&-' will
518 field has the form (in one line; it is broken here for the sake of
522 .IR width [\fB, height [\fB, depth [\fB, italic-correction
524 .RI [\fB, left-italic-correction [\fB, subscript-correction ]]]]]
527 There must not be any spaces between these subfields.
529 Missing subfields are assumed to be 0.
531 The subfields are all decimal integers.
533 Since there is no associated binary format, these
534 values are not required to fit into a variable of type
536 as they are in ditroff.
540 subfields gives the width of the character.
544 subfield gives the height of the character (upwards is positive);
545 if a character does not extend above the baseline, it should be
546 given a zero height, rather than a negative height.
550 subfield gives the depth of the character, that is, the distance
551 below the lowest point below the baseline to which the
552 character extends (downwards is positive);
553 if a character does not extend below above the baseline, it should be
554 given a zero depth, rather than a negative depth.
558 subfield gives the amount of space that should be added after the
559 character when it is immediately to be followed by a character
563 .I left-italic-correction
564 subfield gives the amount of space that should be added before the
565 character when it is immediately to be preceded by a character
569 .I subscript-correction
570 gives the amount of space that should be added after a character
571 before adding a subscript.
573 This should be less than the italic correction.
576 A line in the charset section can also have the format
585 is just another name for the character mentioned in the
591 starts the kernpairs section.
593 This contains a sequence of lines of the form:
599 This means that when character
601 appears next to character
603 the space between them should be increased by
606 Most entries in kernpairs section will have a negative value for
612 .Tp \w'@FONTDIR@/devname/DESC'u+3n
613 .BI @FONTDIR@/dev name /DESC
614 Device description file for device
618 .BI @FONTDIR@/dev name / F
627 .BR groff_out (@MAN5EXT@),
628 .BR @g@troff (@MAN1EXT@).