Go to the first, previous, next, last section, table of contents.


PKtype: Plain text transliteration of packed fonts

PKtype translates a packed font (PK) bitmap file (as output by GFtoPK, for example) to a plain text file that humans can read. It also serves as a PK-validating program, i.e., if PKtype can read a file, it's correct. Synopsis:

pktype pkname.dpi[pk]

The font pkname is searched for in the usual places (see section `Glyph lookup' in Kpathsea). To see all the relevant paths, set the environment variable KPATHSEA_DEBUG to `-1' before running the program.

The suffix `pk' is supplied if not already present. This suffix is not an extension; no `.' precedes it: for instance, `cmr10.600pk'.

The translation is written to standard output.

The only options are `-help' and `-version' (see section Common options).

As an example of the output, here is the (abridged) translation of the letter `K' in `cmr10', as rendered at 600dpi with the mode `ljfour' from `modes.mf' (available from `ftp://ftp.tug.org/tex/modes.mf').

955:  Flag byte = 184  Character = 75  Packet length = 174
  Dynamic packing variable = 11
  TFM width = 815562  dx = 4259840 
  Height = 57  Width = 57  X-offset = -3  Y-offset = 56
  [2]23(16)17(8)9(25)11(13)7(27)7(16)7(28)4(18)7(28)2(20)7(27)2(21)7(26)2(22)7 
  (25)2(23)7(24)2(24)7(23)2(25)7(22)2(26)7(21)2(27)7(20)2(28)7(19)2(29)7(18)2 
  ...
  (23)7(20)7(23)8(19)7(24)7(19)7(25)7(18)7(25)8(17)7(26)7(17)7(26)8(16)7(26)9 
  (14)9(24)12(5)[2]23(13)21 

Explanation:

`955'
The byte position in the file where this character starts.
`Flag byte'
`Dynamic packing variable'
Related to the packing for this character; see the source code.
`Character'
The character code, in decimal.
`Packet length'
The total length of this character definition, in bytes.
`TFM width'
The device-independent (TFM) width of this character. It is 2^24 times the ratio of the true width to the font's design size.
`dx'
The device-dependent width, in scaled pixels, i.e., units of horizontal pixels times 2^16.
`Height'
`Width'
The bitmap height and width, in pixels.
`X-offset'
`Y-offset'
Horizontal and vertical offset from the upper left pixel to the reference (origin) pixel for this character, in pixels (right and down are positive). The reference pixel is the pixel that occupies the unit square in Metafont; the Metafont reference point is the lower left hand corner of this pixel. Put another way, the x-offset is the negative of the left side bearing; the right side bearing is the horizontal escapement minus the bitmap width plus the x-offset.
`[2]23(16)...'
Finally, run lengths of black pixels alternate with parenthesized run lengths of white pixels, and brackets indicate a repeated row.


Go to the first, previous, next, last section, table of contents.