.\" Automatically generated by Pod::Man version 1.15 .\" Mon Apr 2 10:44:41 2007 .\" .\" Standard preamble: .\" ====================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Ip \" List item .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used .\" to do unbreakable dashes and therefore won't be available. \*(C` and .\" \*(C' expand to `' in nroff, nothing in troff, for use with C<> .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr .\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and .\" index entries marked with X<> in POD. Of course, you'll have to process .\" the output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it .\" makes way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. .bd B 3 . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ====================================================================== .\" .IX Title "OT2KPX 1" .TH OT2KPX 1 "fontools" "2007-04-02" "fontools" .UC .SH "NAME" ot2kpx \- extract kerning information from an OpenType font .SH "SYNOPSIS" .IX Header "SYNOPSIS" ot2kpx \fIfont\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" In many OpenType fonts, most kerning data is stored in the `\s-1GPOS\s0' table rather than in the `kern' table. \fBot2kpx\fR extracts the kerning data from both tables and prints it (in \fIafm\fR format) to \f(CW\*(C`stdout\*(C'\fR. .SH "RESTRICTIONS" .IX Header "RESTRICTIONS" .Ip "\fB-\fR" 2 .IX Item "-" \&\fBot2kpx\fR prints data from all features named `kern', regardless of script and language. Maybe it would be better to let the user choose a script and language (defaulting to `latn' and `\s-1DFLT\s0') and print only the kerning data from features associated with these values. .Ip "\fB-\fR" 2 .IX Item "-" \&\fBot2kpx\fR uses only the XAdvance data associated with the first glyph in any kerning pair; all other data in the ValueRecords is ignored. I'm not sure whether this is The Right Thing to Do; however, almost always there is no other data, so this approach gives correct results (in fact, the only font I know of that does contain data other than XAdvance is Linotype Palatino; this also contains XAdvDevice data, which is used (according to the OpenType specification) to \fI`define subtle, device-dependent adjustments at specific font sizes or device resolutions'\fR. Since there is no way to express such adjustments in \fIafm\fR format, ignoring them seems to be the only option.) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIafm2afm\fR, \fIautoinst\fR, \fIcmap2enc\fR, \fIfont2afm\fR, \fIpfm2kpx\fR. .SH "AUTHOR" .IX Header "AUTHOR" Marc Penninga .SH "HISTORY" .IX Header "HISTORY" .Ip "\fI2005\-01\-10\fR" 12 .IX Item "2005-01-10" First version .Ip "\fI2005\-02\-18\fR" 12 .IX Item "2005-02-18" Rewrote some of the code .Ip "\fI2005\-03\-08\fR" 12 .IX Item "2005-03-08" Input files searched via \fBkpsewhich\fR (where available) .Ip "\fI2005\-03\-15\fR" 12 .IX Item "2005-03-15" Input files searched using \fBkpsewhich\fR or \fBfindtexmf\fR .Ip "\fI2005\-03\-21\fR" 12 .IX Item "2005-03-21" Test if \s-1GPOS\s0 table is present before trying to read it .Ip "\fI2005\-04\-29\fR" 12 .IX Item "2005-04-29" Improved the documentation .Ip "\fI2005\-05\-25\fR" 12 .IX Item "2005-05-25" Changed warning that's given when the font contains no \s-1GPOS\s0 table, to an informational message. .Ip "\fI2005\-07\-29\fR" 12 .IX Item "2005-07-29" A few updates to the documentation