groff_font.man revision 69626
118099Spst.ig \"-*- nroff -*- 218099SpstCopyright (C) 1989-1995 Free Software Foundation, Inc. 318099Spst 418099SpstPermission is granted to make and distribute verbatim copies of 518099Spstthis manual provided the copyright notice and this permission notice 618099Spstare preserved on all copies. 718099Spst 818099SpstPermission is granted to copy and distribute modified versions of this 918099Spstmanual under the conditions for verbatim copying, provided that the 1018099Spstentire resulting derived work is distributed under the terms of a 1118099Spstpermission notice identical to this one. 1218099Spst 1318099SpstPermission is granted to copy and distribute translations of this 1418099Spstmanual into another language, under the above conditions for modified 1518099Spstversions, except that this permission notice may be included in 1618099Spsttranslations approved by the Free Software Foundation instead of in 1718099Spstthe original English. 1818099Spst.. 1918099Spst.de TQ 2018099Spst.br 2118099Spst.ns 2218099Spst.TP \\$1 2318099Spst.. 2418099Spst.\" Like TP, but if specified indent is more than half 2518099Spst.\" the current line-length - indent, use the default indent. 2618099Spst.de Tp 2718099Spst.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP 2818099Spst.el .TP "\\$1" 2918099Spst.. 3018099Spst.TH GROFF_FONT @MAN5EXT@ "@MDATE@" "Groff Version @VERSION@" 3118099Spst.SH NAME 3218099Spstgroff_font \- format of groff device and font description files 3318099Spst.SH DESCRIPTION 3418099SpstThe groff font format is roughly a superset of the ditroff 3518099Spstfont format. 3618099SpstUnlike the ditroff font format, there is no associated binary 3718099Spstformat. 3818099SpstThe font files for device 3918099Spst.I name 4018099Spstare stored in a directory 4118099Spst.BI dev name. 4218099SpstThere are two types of file: a 4318099Spstdevice description file called 4418099Spst.B DESC 4518099Spstand for each font 4618099Spst.I F 4718099Spsta font file called 4818099Spst.IR F . 4918099SpstThese are text files; 5018099Spstthere is no associated binary format. 5118099Spst.SS DESC file format 5218099SpstThe DESC file can contain the following types of line: 5318099Spst.TP 5418099Spst.BI res\ n 5518099SpstThere are 5618099Spst.I n 5718099Spstmachine units per inch. 5818099Spst.TP 5918099Spst.BI hor\ n 6018099SpstThe horizontal resolution is 6118099Spst.I n 6218099Spstmachine units. 6318099Spst.TP 6418099Spst.BI vert\ n 6518099SpstThe vertical resolution is 6618099Spst.I n 6718099Spstmachine units. 6818099Spst.TP 6918099Spst.BI sizescale\ n 7018099SpstThe scale factor for pointsizes. 7118099SpstBy default this has a value of 1. 7218099SpstOne 7318099Spst.I 7418099Spstscaled point 7518099Spstis equal to 7618099Spstone 7718099Spst.RI point/ n . 7818099SpstThe arguments to the 7918099Spst.B unitwidth 8018099Spstand 8118099Spst.B sizes 8218099Spstcommands are given in scaled points. 8318099Spst.TP 8418099Spst.BI unitwidth\ n 8518099SpstQuantities in the font files are given in machine units 8618099Spstfor fonts whose point size is 8718099Spst.I n 8818099Spstscaled points. 8918099Spst.TP 9018099Spst.B tcommand 9118099SpstThis means that the postprocessor can handle the 9218099Spst.B t 9318099Spstand 9418099Spst.B u 9518099Spstoutput commands. 9618099Spst.TP 9718099Spst.BI sizes\ s1\ s2\|.\|.\|.\|sn\ 0 9818099SpstThis means that the device has fonts at 9918099Spst.IR s1 , 10018099Spst.IR s2 ,\|.\|.\|.\| sn 10118099Spstscaled points. 10218099SpstThe list of sizes must be terminated by a 10318099Spst.BR 0 . 10418099SpstEach 10518099Spst.BI s i 10618099Spstcan also be a range of sizes 10718099Spst.IR m \- n . 10818099SpstThe list can extend over more than one line. 10918099Spst.TP 11018099Spst.BI styles\ S1\ S2\|.\|.\|.\|Sm 11118099SpstThe first 11218099Spst.I m 11318099Spstfont positions will be associated with styles 11418099Spst.IR S1\|.\|.\|.\|Sm . 11518099Spst.TP 11618099Spst.BI fonts\ n\ F1\ F2\ F3\|.\|.\|.\|Fn 11718099SpstFonts 11818099Spst.I F1\|.\|.\|.\|Fn 11918099Spstwill be mounted in the font positions 12018099Spst.IR m +1,\|.\|.\|., m + n 12118099Spstwhere 12218099Spst.I m 12318099Spstis the number of styles. 12418099SpstThis command may extend over more than one line. 12518099SpstA font name of 12618099Spst.B 0 12718099Spstwill cause no font to be mounted on the corresponding font position. 12818099Spst.TP 12918099Spst.BI family\ fam 13018099SpstThe default font family is 13118099Spst.IR fam . 13218099Spst.TP 13369626Sru.B use_charnames_in_special 13469626SruThis command indicates that troff should encode named characters inside 13569626Sruspecial commands. 13669626Sru.TP 13769626Sru.B pass_filenames 13869626Srurequests that troff tells the driver the source file name being processed. 13969626SruThis is achieved by another tcommand: 14069626Sru.B F 14169626Sru.IR filename . 14269626Sru.TP 14318099Spst.B charset 14418099SpstThis line and everything following in the file are ignored. 14518099SpstIt is allowed for the sake of backwards compatibility. 14618099Spst.LP 14718099SpstThe res, unitwidth, fonts and sizes lines are compulsory. 14818099SpstOther commands are ignored by 14918099Spst.B troff 15018099Spstbut may be used by postprocessors to store arbitrary information 15118099Spstabout the device in the DESC file. 15269626Sru.LP 15369626SruHere a list of obsolete keywords which are recognized by 15469626Sru.B groff 15569626Srubut completely ignored: 15669626Sru.BR spare1 , 15769626Sru.BR spare2 , 15869626Sru.BR biggestfont . 15918099Spst.SS Font file format 16018099SpstA font file has two sections. The first section is a sequence 16118099Spstof lines each containing a sequence of blank delimited 16218099Spstwords; the first word in the line is a key, and subsequent 16318099Spstwords give a value for that key. 16418099Spst.TP 16518099Spst.BI name\ F 16618099SpstThe name of the font is 16718099Spst.IR F . 16818099Spst.TP 16918099Spst.BI spacewidth\ n 17018099SpstThe normal width of a space is 17118099Spst.IR n . 17218099Spst.TP 17318099Spst.BI slant\ n 17418099SpstThe characters of the font have a slant of 17518099Spst.I n 17618099Spstdegrees. (Positive means forward.) 17718099Spst.TP 17818099Spst.BI ligatures\ lig1\ lig2\|.\|.\|.\|lign\ \fR[ 0 \fR] 17918099SpstCharacters 18018099Spst.IR lig1 , 18118099Spst.IR lig2 ,\|.\|.\|., lign 18218099Spstare ligatures; possible ligatures are 18318099Spst.BR ff , 18418099Spst.BR fi , 18569626Sru.BR fl , 18669626Sru.B ffi 18718099Spstand 18818099Spst.BR ffl . 18918099SpstFor backwards compatibility, the list of ligatures may be terminated 19018099Spstwith a 19118099Spst.BR 0. 19218099SpstThe list of ligatures may not extend over more than one line. 19318099Spst.TP 19418099Spst.B special 19518099SpstThe font is 19618099Spst.IR special ; 19718099Spstthis means that when a character is requested that is not present in 19818099Spstthe current font, it will be searched for in any special fonts that 19918099Spstare mounted. 20018099Spst.LP 20118099SpstOther commands are ignored by 20218099Spst.B troff 20318099Spstbut may be used by postprocessors to store arbitrary information 20418099Spstabout the font in the font file. 20518099Spst.LP 20618099SpstThe first section can contain comments which start with the 20718099Spst.B # 20818099Spstcharacter and extend to the end of a line. 20918099Spst.LP 21018099SpstThe second section contains one or two subsections. 21118099SpstIt must contain a 21218099Spst.I charset 21318099Spstsubsection 21418099Spstand it may also contain a 21518099Spst.I kernpairs 21618099Spstsubsection. 21718099SpstThese subsections can appear in any order. 21818099SpstEach subsection starts with a word on a line by itself. 21918099Spst.LP 22018099SpstThe word 22118099Spst.B charset 22218099Spststarts the charset subsection. 22318099SpstThe 22418099Spst.B charset 22518099Spstline is followed by a sequence of lines. 22618099SpstEach line gives information for one character. 22718099SpstA line comprises a number of fields separated 22818099Spstby blanks or tabs. The format is 22918099Spst.IP 23069626Sru.I name metrics type code 23169626Sru.RI [ entity_name ] 23269626Sru.RB [ -- 23369626Sru.IR comment ] 23418099Spst.LP 23518099Spst.I name 23618099Spstidentifies the character: 23718099Spstif 23818099Spst.I name 23918099Spstis a single character 24018099Spst.I c 24118099Spstthen it corresponds to the groff input character 24218099Spst.IR c ; 24318099Spstif it is of the form 24418099Spst.BI \e c 24518099Spstwhere c is a single character, then it 24618099Spstcorresponds to the groff input character 24718099Spst.BI \e c\fR; 24818099Spstotherwise it corresponds to the groff input character 24918099Spst.BI \e[ name ] 25018099Spst(if it is exactly two characters 25118099Spst.I xx 25218099Spstit can be entered as 25318099Spst.BI \e( xx\fR.) 25418099SpstGroff supports eight bit characters; however some utilities 25518099Spsthas difficulties with eight bit characters. 25618099SpstFor this reason, there is a convention that the name 25718099Spst.BI char n 25818099Spstis equivalent to the single character whose code is 25918099Spst.I n . 26018099SpstFor example, 26118099Spst.B char163 26218099Spstwould be equivalent to the character with code 163 26318099Spstwhich is the pounds sterling sign in ISO Latin-1. 26418099SpstThe name 26518099Spst.B \-\-\- 26618099Spstis special and indicates that the character is unnamed; 26718099Spstsuch characters can only be used by means of the 26818099Spst.B \eN 26918099Spstescape sequence in 27018099Spst.BR troff . 27118099Spst.LP 27218099SpstThe 27318099Spst.I type 27418099Spstfield gives the character type: 27518099Spst.TP 27618099Spst1 27718099Spstmeans the character has an descender, for example, p; 27818099Spst.TP 27918099Spst2 28018099Spstmeans the character has an ascender, for example, b; 28118099Spst.TP 28218099Spst3 28318099Spstmeans the character has both an ascender and a descender, for example, 28418099Spst(. 28518099Spst.LP 28618099SpstThe 28718099Spst.I code 28818099Spstfield gives the code which the postprocessor uses to print the character. 28918099SpstThe character can also be input to groff using this code by means of the 29018099Spst.B \eN 29118099Spstescape sequence. 29218099SpstThe code can be any integer. 29318099SpstIf it starts with a 29418099Spst.B 0 29518099Spstit will be interpreted as octal; 29618099Spstif it starts with 29718099Spst.B 0x 29818099Spstor 29918099Spst.B 0X 30018099Spstit will be intepreted as hexadecimal. 30118099Spst.LP 30269626SruThe 30369626Sru.I entity_name 30469626Srufield gives an ascii string identifying the glyph which the postprocessor 30569626Sruuses to print the character. 30669626SruThis field is optional and has been introduced so that the html device driver 30769626Srucan encode its character set. 30869626SruFor example, the character `\e[Po]' is represented as `£' in html 4.0. 30918099Spst.LP 31069626SruAnything on the line after the encoding field resp. after `-\&-' will 31169626Srube ignored. 31269626Sru.LP 31318099SpstThe 31418099Spst.I metrics 31518099Spstfield has the form: 31618099Spst.IP 31718099Spst.IR width [\fB, height [\fB, depth [\fB, italic_correction [\fB, \ 31818099Spstleft_italic_correction [\fB, subscript_correction ]]]]] 31918099Spst.LP 32018099SpstThere must not be any spaces between these subfields. 32118099SpstMissing subfields are assumed to be 0. 32218099SpstThe subfields are all decimal integers. 32318099SpstSince there is no associated binary format, these 32418099Spstvalues are not required to fit into a variable of type 32518099Spst.B char 32618099Spstas they are in ditroff. 32718099SpstThe 32818099Spst.I width 32918099Spstsubfields gives the width of the character. 33018099SpstThe 33118099Spst.I height 33218099Spstsubfield gives the height of the character (upwards is positive); 33318099Spstif a character does not extend above the baseline, it should be 33418099Spstgiven a zero height, rather than a negative height. 33518099SpstThe 33618099Spst.I depth 33718099Spstsubfield gives the depth of the character, that is, the distance 33818099Spstbelow the lowest point below the baseline to which the 33918099Spstcharacter extends (downwards is positive); 34018099Spstif a character does not extend below above the baseline, it should be 34118099Spstgiven a zero depth, rather than a negative depth. 34218099SpstThe 34318099Spst.I italic_correction 34418099Spstsubfield gives the amount of space that should be added after the 34518099Spstcharacter when it is immediately to be followed by a character 34618099Spstfrom a roman font. 34718099SpstThe 34818099Spst.I left_italic_correction 34918099Spstsubfield gives the amount of space that should be added before the 35018099Spstcharacter when it is immediately to be preceded by a character 35118099Spstfrom a roman font. 35218099SpstThe 35318099Spst.I subscript_correction 35418099Spstgives the amount of space that should be added after a character 35518099Spstbefore adding a subscript. 35618099SpstThis should be less than the italic correction. 35718099Spst.LP 35818099SpstA line in the charset section can also have the format 35918099Spst.IP 36018099Spst.I 36118099Spstname \fB" 36218099Spst.LP 36318099SpstThis indicates that 36418099Spst.I name 36518099Spstis just another name for the character mentioned in the 36618099Spstpreceding line. 36718099Spst.LP 36818099SpstThe word 36918099Spst.B kernpairs 37018099Spststarts the kernpairs section. 37118099SpstThis contains a sequence of lines of the form: 37218099Spst.IP 37318099Spst.I 37418099Spstc1 c2 n 37518099Spst.LP 37618099SpstThis means that when character 37718099Spst.I c1 37818099Spstappears next to character 37918099Spst.I c2 38018099Spstthe space between them should be increased by 38118099Spst.IR n . 38218099SpstMost entries in kernpairs section will have a negative value for 38318099Spst.IR n . 38418099Spst.SH FILES 38518099Spst.Tp \w'@FONTDIR@/devname/DESC'u+3n 38618099Spst.BI @FONTDIR@/dev name /DESC 38718099SpstDevice description file for device 38818099Spst.IR name . 38918099Spst.TP 39018099Spst.BI @FONTDIR@/dev name / F 39118099SpstFont file for font 39218099Spst.I F 39318099Spstof device 39418099Spst.IR name . 39518099Spst.SH "SEE ALSO" 39618099Spst.BR groff_out (@MAN5EXT@), 39718099Spst.BR @g@troff (@MAN1EXT@). 398