{
    "content": [
        {
            "type": "text",
            "text": "# pktype (info)\n\n## Sections\n\n- **File: web2c.info,  Node: pktype invocation,  Next: gftype invocation,  Prev: pktogf invocation,  Up: Font utilities** (1 subsections)\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "pktype",
        "section": "",
        "mode": "info",
        "summary": null,
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "File: web2c.info,  Node: pktype invocation,  Next: gftype invocation,  Prev: pktogf invocation,  Up: Font utilities",
                "lines": 1,
                "subsections": [
                    {
                        "name": "11.4 PKtype: Plain text transliteration of packed fonts",
                        "lines": 73
                    }
                ]
            }
        ],
        "sections": {
            "File: web2c.info,  Node: pktype invocation,  Next: gftype invocation,  Prev: pktogf invocation,  Up: Font utilities": {
                "content": "",
                "subsections": [
                    {
                        "name": "11.4 PKtype: Plain text transliteration of packed fonts",
                        "content": "PKtype translates a packed font (PK) bitmap file (as output by GFtoPK,\nfor example) to a plain text file that humans can read.  It also serves\nas a PK-validating program, i.e., if PKtype can read a file, it's\ncorrect.  Synopsis:\n\npktype PKNAME.DPI[pk]\n\nThe font PKNAME is searched for in the usual places (*note\n(kpathsea)Glyph lookup::).  To see all the relevant paths, set the\nenvironment variable 'KPATHSEADEBUG' to '-1' before running the\nprogram.\n\nThe suffix 'pk' is supplied if not already present.  This suffix is\nnot an extension; no '.' precedes it: for instance, 'cmr10.600pk'.\n\nThe translation is written to standard output.\n\nThe only options are '-help' and '-version' (*note Common options::).\n\nAs an example of the output, here is the (abridged) translation of\nthe letter 'K' in 'cmr10', as rendered at 600dpi with the mode 'ljfour'\nfrom <modes.mf> (available from 'ftp://ftp.tug.org/tex/modes.mf').\n\n955:  Flag byte = 184  Character = 75  Packet length = 174\nDynamic packing variable = 11\nTFM width = 815562  dx = 4259840\nHeight = 57  Width = 57  X-offset = -3  Y-offset = 56\n[2]23(16)17(8)9(25)11(13)7(27)7(16)7(28)4(18)7(28)2(20)7(27)...\n...\n(14)9(24)12(5)[2]23(13)21\n\nExplanation:\n\n'955'\nThe byte position in the file where this character starts.\n\n'Flag byte'\n'Dynamic packing variable'\nRelated to the packing for this character; see the source code.\n\n'Character'\nThe character code, in decimal.\n\n'Packet length'\nThe total length of this character definition, in bytes.\n\n'TFM width'\nThe device-independent (TFM) width of this character.  It is 2^24\ntimes the ratio of the true width to the font's design size.\n\n'dx'\nThe device-dependent width, in \"scaled pixels\", i.e., units of\nhorizontal pixels times 2^16.\n\n'Height'\n'Width'\nThe bitmap height and width, in pixels.\n\n'X-offset'\n'Y-offset'\nHorizontal and vertical offset from the upper left pixel to the\nreference (origin) pixel for this character, in pixels (right and\ndown are positive).  The \"reference pixel\" is the pixel that\noccupies the unit square in Metafont; the Metafont reference point\nis the lower left hand corner of this pixel.  Put another way, the\nx-offset is the negative of the left side bearing; the right side\nbearing is the horizontal escapement minus the bitmap width plus\nthe x-offset.\n\n'[2]23(16)...'\nFinally, run lengths of black pixels alternate with parenthesized\nrun lengths of white pixels, and brackets indicate a repeated row.\n"
                    }
                ]
            }
        }
    }
}