{
    "mode": "info",
    "parameter": "mktexpk",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/info/mktexpk/json",
    "generated": "2026-07-05T13:02:47Z",
    "sections": {
        "File: kpathsea.info,  Node: mktex scripts,  Prev: Suppressing warnings,  Up: TeX support": {
            "content": "",
            "subsections": [
                {
                    "name": "6.5 'mktex' scripts",
                    "content": ""
                }
            ]
        },
        "If Kpathsea cannot otherwise find a file, for some file types it is": {
            "content": "configured by default to invoke an external program to create it\ndynamically (*note mktex configuration::).  These are collectively known\nas \"'mktex' scripts\", since most of them are named 'mktex...'.\n\nFor example, this is useful for fonts (bitmaps, TFM's, and\narbitrarily-sizable Metafont sources such as the Sauter and EC fonts),\nsince any given document can use fonts never before referenced.",
            "subsections": []
        },
        "Building all fonts in advance is therefore impractical, if not": {
            "content": "impossible.\n\nIt is also useful for the TeX '.fmt' (and Metafont '.base' and\nMetapost '.mem' files, *note (Web2c)Memory dumps::), where\npre-generating every format consumes a lot of both time and space.\n\nThe script is passed the name of the file to create and possibly\nother arguments, as explained below.  It must echo the full pathname of\nthe file it created (and nothing else) to standard output; it can write\ndiagnostics to standard error.\n\n* Menu:\n\n* config: mktex configuration.\n* names: mktex script names.\n* args: mktex script arguments.\n",
            "subsections": []
        },
        "File: kpathsea.info,  Node: mktex configuration,  Next: mktex script names,  Up: mktex scripts": {
            "content": "",
            "subsections": []
        },
        "The list of file types and program names that can run an external": {
            "content": "program to create missing files is listed in the next section.  In the\nabsence of 'configure' options specifying otherwise, everything but\n'mktextex' will be enabled by default.  The 'configure' options to\nchange the defaults are:\n",
            "subsections": [
                {
                    "name": "--without-mktexfmt-default",
                    "content": "",
                    "long": "--without-mktexfmt-default"
                },
                {
                    "name": "--without-mktexmf-default",
                    "content": "",
                    "long": "--without-mktexmf-default"
                },
                {
                    "name": "--without-mktexocp-default",
                    "content": "",
                    "long": "--without-mktexocp-default"
                },
                {
                    "name": "--without-mktexofm-default",
                    "content": "",
                    "long": "--without-mktexofm-default"
                },
                {
                    "name": "--without-mktexpk-default",
                    "content": "",
                    "long": "--without-mktexpk-default"
                },
                {
                    "name": "--without-mktextfm-default",
                    "content": "",
                    "long": "--without-mktextfm-default"
                },
                {
                    "name": "--with-mktextex-default",
                    "content": "The 'configure' setting is overridden if the environment variable or\nconfiguration file value named for the script is set; e.g., 'MKTEXPK'\n(*note mktex script arguments::).\n\n'mktexfmt' reads a file 'fmtutil.cnf', typically located in\n'texmf/web2c/' to glean its configuration information.  The rest of the\nfiles and features in this section are primarily intended for the font\ngeneration scripts.\n\nAs distributed, all the scripts source a file 'texmf/web2c/mktex.cnf'\nif it exists, so you can override various defaults.  See 'mktex.opt',\nfor instance, which defines the default mode, resolution, some special\ndirectory names, etc.  If you prefer not to change the distributed\nscripts, you can simply create 'mktex.cnf' with the appropriate\ndefinitions (you do not need to create it if you have nothing to put in\nit).  'mktex.cnf' has no special syntax; it's an arbitrary Bourne shell\nscript.  The distribution contains a sample 'mktex.cnf' for you to copy\nand modify as you please (it is not installed anywhere).\n\nIn addition, you can configure a number of features with the\n'MTFEATURES' variable, which you can define:\n\n* in 'mktex.opt', as just mentioned;\n\n* by editing the file 'mktex.opt', either before 'make install' (in\nthe source hierarchy) or after (in the installed hierarchy);\n\n* or in the environment.\n\nIf none of the options below are enabled, 'mktexpk', 'mktextfm', and\n'mktexmf' follow the following procedure to decide where fonts should be\ninstalled.  Find the tree where the font's sources are, and test the\npermissions of the 'fonts' directory of that tree to determine whether\nit is writable.  If it is, put the files in the tree in appropriate\nlocations.  If it isn't writable, see whether the tree is a system tree\n(named in 'SYSTEXMF').  If so, the 'VARTEXFONTS' tree is used.  In all\nother cases the working directory is used.\n\nThe 'appendonlydir' option is enabled by default.\n\n'appendonlydir'\nTell 'mktexdir' to create directories append-only, i.e., set their\nsticky bit (*note (coreutils)Mode Structure::).  This feature is\nsilently ignored on non-Unix platforms (e.g.  Windows/NT and\nMS-DOS) which don't support similar functionality.  This feature is\nenabled by default.\n\n'dosnames'\nUse 8.3 names; e.g., 'dpi600/cmr10.pk' instead of 'cmr10.600pk'.\nNote that this feature only affects filenames that would otherwise\nclash with other TeX-related filenames; 'mktex' scripts do nothing\nabout filenames which exceed the 8+3 MS-DOS limits but remain\nunique when truncated (by the OS) to these limits, and nether do\nthe scripts care about possible clashes with files which aren't\nrelated with TeX. For example, 'cmr10.600pk' would clash with\n'cmr10.600gf' and is therefore changed when 'dosnames' is in\neffect, but 'mf.pool' and 'mp.base' don't clash with any\nTeX-related files and are therefore unchanged.\n\nThis feature is turned on by default on MS-DOS. If you do not wish\n'dosnames' to be set on an MS-DOS platform, you need to set the\n'MTFEATURES' environment variable to a value that doesn't include\n'dosnames'.  You can also change the default setting by editing\n'mktex.opt', but only if you use the 'mktex' shell scripts; the\nemulation programs don't consult 'mktex.opt'.\n\n'fontmaps'\nInstead of deriving the location of a font in the destination tree\nfrom the location of the sources, the aliases and directory names\nfrom the Fontname distribution are used.  (*note Introduction:\n(fontname)Top.).\n\n'nomfdrivers'\nLet mktexpk and mktextfm create metafont driver files in a\ntemporary directory.  These will be used for just one metafont run\nand not installed permanently.\n\n'nomode'\nOmit the directory level for the mode name; this is fine as long as\nyou generate fonts for only one mode.\n\n'stripsupplier'\nOmit the font supplier name directory level.\n\n'striptypeface'\nOmit the font typeface name directory level.\n\n'strip'\nOmit the font supplier and typeface name directory levels.  This\nfeature is deprecated in favour of 'stripsupplier' and\n'striptypeface'.\n\n'varfonts'\nWhen this option is enabled, fonts that would otherwise be written\nin system texmf tree go to the 'VARTEXFONTS' tree instead.  The\ndefault value in 'kpathsea/Makefile.in' is '/var/tmp/texfonts'.\nThe 'Linux File System Standard' recommends '/var/tex/fonts'.\n\nThe 'varfonts' setting in 'MTFEATURES' is overridden by the\n'USEVARTEXFONTS' environment variable: if set to '1', the feature\nis enabled, and if set to '0', the feature is disabled.\n\n'texmfvar'\nForce generated files that would go into a system tree (as defined\nby 'SYSTEXMF') into 'TEXMFVAR'.  Starting with teTeX-3.0, the\nvariable 'TEXMFVAR' is always set.  The 'varfonts' feature takes\nprecedence if also set.\n\nThe 'texmfvar' setting in 'MTFEATURES' is overridden by the\n'USETEXMFVAR' environment variable: if set to '1', the feature is\nenabled, and if set to '0', the feature is disabled.\n",
                    "long": "--with-mktextex-default"
                }
            ]
        },
        "File: kpathsea.info,  Node: mktex script names,  Next: mktex script arguments,  Prev: mktex configuration,  Up: mktex scripts": {
            "content": "",
            "subsections": []
        },
        "The following table shows the default name of the script for each of the": {
            "content": "file types which support runtime generation.\n\n'mktexfmt'\n('.fmt', '.base', '.mem') TeX/Metafont/MetaPost formats.  This\nscript is also named 'fmtutil', and reads 'fmtutil.cnf' for\nconfiguration information.\n\n'mktexmf'\n('.mf') Metafont input files.\n\n'mkocp'\n('.ocp') Omega compiled process files.\n\n'mkofm'\n('.ofm') Omega font metric files.\n\n'mktexpk'\n('pk') Glyph fonts.\n\n'mktextex'\n('.tex') TeX input files (disabled by default).\n\n'mktextfm'\n('.tfm') TFM files.\n",
            "subsections": []
        },
        "These names can be overridden by an environment variable specific to the": {
            "content": "program--for example, 'DVIPSMAKEPK' for Dvipsk.\n\nIf a 'mktex...' script fails, the invocation is appended to a file\n'missfont.log' (by default) in the current directory.  You can then\nexecute the log file to create the missing files after fixing the\nproblem.\n\nIf the current directory is not writable and the environment variable\nor configuration file value 'TEXMFOUTPUT' is set, its value is used.",
            "subsections": []
        },
        "Otherwise, nothing is written.  The name 'missfont.log' is overridden by": {
            "content": "the 'MISSFONTLOG' environment variable or configuration file value.\n",
            "subsections": []
        },
        "File: kpathsea.info,  Node: mktex script arguments,  Prev: mktex script names,  Up: mktex scripts": {
            "content": "",
            "subsections": []
        },
        "The first argument to a 'mktex' script is always the name of the file to": {
            "content": "be created.\n\nIn the default 'mktexpk' implementation, additional arguments may\nalso be passed:\n\n'--dpi NUM'\nSets the resolution of the generated font to NUM.\n'--mfmode NAME'\nSets the Metafont mode to NAME.\n'--bdpi NUM'\nSets the \"base dpi\" for the font.  This must match the mode being\nused.\n'--mag STRING'\nA \"magstep\" string suitable for the Metafont 'mag' variable.  This\nmust match the combination of BDPI and DPI being used.\n'--destdir STRING'\nA directory name.  If the directory is absolute, it is used as-is.\nOtherwise, it is appended to the root destination directory set in\nthe script.\n",
            "subsections": []
        }
    },
    "flags": [],
    "examples": [],
    "see_also": []
}