Don't use .Xo/.Xc. Fix date format.
[netbsd-mini2440.git] / gnu / usr.bin / groff / man / groff_font.man
blobc259f634abc5b4ab714d56d9e94b4f7c1fb62de1
1 .\" -*- nroff -*-
2 .de TQ
3 .br
4 .ns
5 .TP \\$1
6 ..
7 .TH GROFF_FONT @MAN5EXT@ "18 April 1990" "Groff Version @VERSION@"
8 .SH SYNOPSIS
9 groff_font \- format of groff device and font description files
10 .SH DESCRIPTION
11 The groff font format is roughly a superset of the ditroff
12 font format.
13 Unlike the ditroff font format, there is no associated binary
14 format.
15 The font files for device
16 .I name
17 are stored in a directory
18 .BI dev name.
19 There are two types of file: a
20 device description file called
21 .B DESC
22 and for each font
23 .I F
24 a font file called
25 .IR F .
26 These are text files;
27 there is no associated binary format.
28 .SS DESC file format
29 The DESC file can contain the following types of line:
30 .TP
31 .BI res\  n
32 There are
33 .I n
34 machine units per inch.
35 .TP
36 .BI hor\  n
37 The horizontal resolution is
38 .I n
39 machine units.
40 .TP
41 .BI vert\  n
42 The vertical resolution is
43 .I n
44 machine units.
45 .TP
46 .BI sizescale\  n
47 The scale factor for pointsizes.
48 By default this has a value of 1.
49 One
51 scaled point
52 is equal to
53 one
54 .RI point/ n .
55 The arguments to the
56 .B unitwidth
57 and
58 .B sizes
59 commands are given in scaled points.
60 .TP
61 .BI unitwidth\  n
62 Quantities in the font files are given in machine units
63 for fonts whose point size is
64 .I n 
65 scaled points.
66 .TP
67 .B tcommand
68 This means that the postprocessor can handle the
69 .B t
70 and
71 .B u
72 output commands.
73 .TP
74 .BI sizes\  s1\ s2\|.\|.\|.\|sn\  0
75 This means that the device has fonts at
76 .IR s1 ,
77 .IR s2 ,\|.\|.\|.\| sn
78 scaled points.
79 The list of sizes must be terminated by a
80 .BR 0 .
81 Each
82 .BI s i
83 can also be a range of sizes
84 .IR m \- n .
85 The list can extend over more than one line.
86 .TP
87 .BI styles\  S1\ S2\|.\|.\|.\|Sm
88 The first
89 .I m
90 font positions will be associated with styles
91 .IR S1\|.\|.\|.\|Sm .
92 .TP
93 .BI fonts\  n\ F1\ F2\ F3\|.\|.\|.\|Fn
94 Fonts
95 .I F1\|.\|.\|.\|Fn
96 will be mounted in the font positions 
97 .IR m +1,\|.\|.\|., m + n
98 where
99 .I m
100 is the number of styles.
101 This command may extend over more than one line.
103 .BI family\  fam
104 The default font family is
105 .IR fam .
107 .B charset
108 This line and everything following in the file are ignored.
109 It is allowed for the sake of backwards compatibility.
111 The res, unitwidth, fonts and sizes lines are compulsory.
112 Other commands are ignored by
113 .B gtroff
114 but may be used by postprocessors to store arbitrary information
115 about the device in the DESC file.
116 .SS Font file format
117 A font file has two sections. The first section is a sequence
118 of lines each containing a sequence of blank delimited
119 words; the first word in the line is a key, and subsequent
120 words give a value for that key.
122 .BI name\  F
123 The name of the font is
124 .IR F .
126 .BI spacewidth\  n
127 The normal width of a space is
128 .IR n .
130 .BI slant\  n
131 The characters of the font have a slant of
132 .I n
133 degrees. (Positive means forward.)
135 .BI ligatures\  lig1\ lig2\|.\|.\|.\|lign\ \fR[ 0 \fR]
136 Characters
137 .IR lig1 ,
138 .IR lig2 ,\|.\|.\|., lign
139 are ligatures; possible ligatures are
140 .BR ff ,
141 .BR fi ,
142 .BR fl 
144 .BR ffl .
145 For backwards compatibiliy, the list of ligatures may be terminated
146 with a
147 .BR 0.
148 The list of ligatures may not extend over more than one line.
150 .B special
151 The font is
152 .IR special ;
153 this means that when a character is requested that is not present in
154 the current font, it will be searched for in any special fonts that
155 are mounted.
157 Other commands are ignored by
158 .B gtroff
159 but may be used by postprocessors to store arbitrary information
160 about the font in the font file.
162 The first section can contain comments which start with the
163 .B #
164 character and extend to the end of a line.
166 The second section contains one or two subsections.
167 It must contain a
168 .I charset
169 subsection
170 and it may also contain a
171 .I kernpairs
172 subsection.
173 These subsections can appear in any order.
174 Each subsection starts with a word on a line by itself.
176 The word
177 .B charset
178 starts the charset subsection.
180 .B charset
181 line is followed by a sequence of lines.
182 Each line gives information for one character.
183 A line comprises a number of fields separated
184 by blanks or tabs. The format is
187 name metrics type code comment
189 .I name
190 identifies the character:
192 .I name
193 is a single character
194 .I c
195 then it corresponds to the groff input character
196 .IR c ;
197 if it is of the form
198 .BI \e c
199 where c is a single character, then it
200 corresponds to the groff input character
201 .BI \e c\fR;
202 otherwise it corresponds to the groff input character
203 .BI \e[ name ]
204 (if it is exactly two characters
205 .I xx
206 it can be entered as
207 .BI \e( xx\fR.)
208 Groff supports eight bit characters; however some utilities
209 has difficulties with eight bit characters.
210 For this reason, there is a convention that the name
211 .BI char n
212 is equivalent to the single character whose code is
213 .I n .
214 For example,
215 .B char163
216 would be equivalent to the character with code 163
217 which is the pounds sterling sign in ISO Latin-1.
218 The name
219 .B \-\-\-
220 is special and indicates that the character is unnamed;
221 such characters can only be used by means of the
222 .B \eN
223 escape sequence in
224 .BR gtroff .
227 .I type
228 field gives the character type:
231 means the character has an descender, for example, p;
234 means the character has an ascender, for example, b;
237 means the character has both an ascender and a descender, for example,
241 .I code
242 field gives the code which the postprocessor uses to print the character.
243 The character can also be input to groff using this code by means of the
244 .B \eN
245 escape sequence (this feature is deprecated).
246 The code must be a number between 0 and 255.
247 If it starts with a
248 .B 0
249 it is assumed to be in octal.
251 Anything on the line after the code field will be ignored.
254 .I metrics
255 field has the form:
257 .IR width [\fB, height [\fB, depth [\fB, italic_correction [\fB, \
258 left_italic_correction [\fB, subscript_correction ]]]]]
260 There must not be any spaces between these subfields.
261 Missing subfields are assumed to be 0.
262 The subfields are all decimal integers.
263 Since there is no associated binary format, these
264 values are not required to fit into a variable of type
265 .B char
266 as they are in ditroff.
268 .I width
269 subfields gives the width of the character.
271 .I height
272 subfield gives the height of the character (upwards is positive);
273 if a character does not extend above the baseline, it should be
274 given a zero height, rather than a negative height.
276 .I depth
277 subfield gives the depth of the character, that is, the distance
278 below the lowest point below the baseline to which the
279 character extends (downwards is positive);
280 if a character does not extend below above the baseline, it should be
281 given a zero depth, rather than a negative depth.
283 .I italic_correction
284 subfield gives the amount of space that should be added after the
285 character when it is immediately to be followed by a character
286 from a roman font.
288 .I left_italic_correction
289 subfield gives the amount of space that should be added before the
290 character when it is immediately to be preceded by a character
291 from a roman font.
293 .I subscript_correction
294 gives the amount of space that should be added after a character
295 before adding a subscript.
296 This should be less than the italic correction.
298 A line in the charset section can also have the format
301 name \fB"
303 This indicates that
304 .I name
305 is just another name for the character mentioned in the
306 preceding line.
308 The word
309 .B kernpairs
310 starts the kernpairs section.
311 This contains a sequence of lines of the form:
314 c1 c2 n
316 This means that when character
317 .I c1
318 appears next to character
319 .I c2
320 the space between them should be increased by
321 .IR n .
322 Most entries in kernpairs section will have a negative value for
323 .IR n .
324 .SH FILES
325 .TP \w'@FONTDIR@/devname/DESC'u+3n
326 .BI @FONTDIR@/dev name /DESC
327 Device description file for device
328 .IR name .
330 .BI @FONTDIR@/dev name / F
331 Font file for font
332 .I F
333 of device
334 .IR name .
335 .SH "SEE ALSO"
336 .BR groff_out (@MAN5EXT@),
337 .BR gtroff (@MAN1EXT@).