{
    "content": [
        {
            "type": "text",
            "text": "# luajittex(1) (man)\n\n**Summary:** luatex,  dviluatex,  luahbtex,  luajittex, texlua, texluac - An extended version of TeX using Lua as an embedded scripting language\n\n**Synopsis:** luatex [--lua=FILE] [OPTION]...  [TEXNAME[.tex]] [COMMANDS]\nluatex [--lua=FILE] [OPTION]...  \\FIRST-LINE\nluatex [--lua=FILE] [OPTION]...  &FMT [ARGS]\n\n## Flags\n\n| Flag | Long | Arg | Description |\n|------|------|-----|-------------|\n| — | --luaonly | — | Start LuaTeX as a Lua interpreter. In this mode, it will set Lua's arg[0] to the found script name, pushing preceding op |\n| — | --luaconly | — | Start LuaTeX as a Lua byte compiler. In this mode, LuaTeX is exactly like luac from the standalone Lua distribution, exc |\n| — | --debug-format | — | Debug format loading. |\n| — | --draftmode | — | Sets \\pdfdraftmode so luaTeX doesn't write a PDF and doesn't read any included images, thus speeding up execution. |\n| — | --enable-write18 | — | Synonym for --shell-escape. |\n| — | --disable-write18 | — | Synonym for --no-shell-escape. |\n| — | --shell-escape | — | Enable the \\write18{command} construct, and Lua functions os.execute(), os.exec(), os.spawn(), and io.popen(). The comma |\n| — | --no-shell-escape | — | Disable the \\write18{command} construct and the other Lua functions, even if it is en‐ abled in the texmf.cnf file. |\n| — | --shell-restricted | — | Enable restricted version of \\write18, os.execute(), os.exec(), os.spawn(), and io.popen(), only commands listed in texm |\n| — | --file-line-error | — | Print error messages in the form file:line:error which is similar to the way many com‐ pilers format them. |\n| — | --no-file-line-error | — | Disable printing error messages in the file:line:error style. --fmt=FORMAT Use FORMAT as the name of the format to be us |\n| — | --nosocket | — | Disable the luasocket (network) library. --output-comment=STRING In DVI mode, use STRING for the DVI file comment instea |\n| — | --recorder | — | Enable the filename recorder. This leaves a trace of the files opened for input and output in a file with extension .fls |\n| — | --safer | — | Disable some Lua commands that can easily be abused by a malicious document. --synctex=NUMBER Enable/disable SyncTeX ext |\n| — | --version | — | Print version information and exit. |\n| — | --credits | — | Print credits and version details. The following options are ignored: --8bit, --etex, --parse-first-line, --no-parse-fir |\n\n## See Also\n\n- pdftex(1)\n- etex(1)\n- aleph(1)\n- lua(1)\n\n## Section Outline\n\n- **NAME** (3 lines)\n- **SYNOPSIS** (4 lines)\n- **DESCRIPTION** (35 lines)\n- **OPTIONS** (12 lines) — 16 subsections\n  - --luaonly (5 lines)\n  - --luaconly (6 lines)\n  - --debug-format (2 lines)\n  - --draftmode (3 lines)\n  - --enable-write18 (2 lines)\n  - --disable-write18 (2 lines)\n  - --shell-escape (4 lines)\n  - --no-shell-escape (3 lines)\n  - --shell-restricted (3 lines)\n  - --file-line-error (3 lines)\n  - --no-file-line-error (27 lines)\n  - --nosocket (18 lines)\n  - --recorder (3 lines)\n  - --safer (5 lines)\n  - --version (2 lines)\n  - --credits (11 lines)\n- **SEE ALSO** (2 lines)\n- **AUTHORS** (13 lines)\n\n## Full Content\n\n### NAME\n\nluatex,  dviluatex,  luahbtex,  luajittex, texlua, texluac - An extended version of TeX using\nLua as an embedded scripting language\n\n### SYNOPSIS\n\nluatex [--lua=FILE] [OPTION]...  [TEXNAME[.tex]] [COMMANDS]\nluatex [--lua=FILE] [OPTION]...  \\FIRST-LINE\nluatex [--lua=FILE] [OPTION]...  &FMT [ARGS]\n\n### DESCRIPTION\n\nRun the luaTeX typesetter on TEXNAME, usually creating TEXNAME.pdf.  Any  remaining  COMMANDS\nare processed as luaTeX input, after TEXNAME is read.\n\nAlternatively,  if  the  first  non-option  argument  begins  with a backslash, interpret all\nnon-option arguments as a line of luaTeX input.\n\nAlternatively, if the first non-option argument begins with a &, the next word  is  taken  as\nthe FMT to read, overriding all else. Any remaining arguments are processed as above.\n\nIf no arguments or options are specified, prompt for input.\n\nIf  called  as  texlua  it  acts as a Lua interpreter.  If called as texluac it acts as a Lua\nbytecode compiler.\n\nLuaTeX began as an extended version of pdfTeX with Unicode and OpenType font support,  embed‐\nded Lua scripting language, the e-TeX and Omega extensions, as well as an integrated MetaPost\nengine, that can create PDF files as well as DVI files.  For more information  about  luatex,\nsee  http://www.luatex.org; and you can read the LuaTeX manual using the texdoc utility (tex‐‐\ndoc luatex).\n\nAll LuaTeX text input and output is considered to be Unicode text, although  various  filters\nmake it possible to support any encoding.\n\nIn DVI mode, LuaTeX can be used as a complete replacement for the TeX engine.\n\nIn  PDF mode, LuaTeX can natively handle the PDF, JPG, JBIG2, and PNG graphics formats.  Lua‐\nTeX cannot include PostScript or Encapsulated PostScript (EPS) graphics files; first  convert\nthem to PDF using epstopdf (1).\n\nThe luajittex variant includes the Lua just-in-time compiler.\n\nThe  luahbtex  variant  can  use  the  HarfBuzz engine for glyph shaping, instead of LuaTeX's\nbuilt-in shaper.\n\n### OPTIONS\n\nWhen the LuaTeX executable starts, it looks for the --lua command-line option.  If  there  is\nno  --lua option, the command line is interpreted in a similar fashion as in traditional pdf‐\nTeX and Aleph. But if the option is present, LuaTeX will enter an alternative  mode  of  com‐\nmand-line  parsing  in comparison to the standard web2c programs. The presence of --lua makes\nmost of other options unreliable, because the lua initialization file  can  disable  kpathsea\nand/or hook functions into various callbacks.\n\n--lua=FILE\nThe lua initialization file.\n\nThe following two options alter the executable behaviour:\n\n#### --luaonly\n\nStart LuaTeX as a Lua interpreter. In this mode, it will set Lua's arg[0] to the found\nscript name, pushing preceding options in negative values and the rest of the  command\nline  in  the positive values, just like the Lua interpreter. LuaTeX will exit immedi‐\nately after executing the specified Lua script.\n\n#### --luaconly\n\nStart LuaTeX as a Lua byte compiler. In this mode, LuaTeX is exactly  like  luac  from\nthe  standalone Lua distribution, except that it does not have the -l switch, and that\nit accepts (but ignores) the --luaconly switch.\n\nThen the regular web2c options:\n\n#### --debug-format\n\nDebug format loading.\n\n#### --draftmode\n\nSets \\pdfdraftmode so luaTeX doesn't write a PDF and doesn't read any included images,\nthus speeding up execution.\n\n#### --enable-write18\n\nSynonym for --shell-escape.\n\n#### --disable-write18\n\nSynonym for --no-shell-escape.\n\n#### --shell-escape\n\nEnable  the  \\write18{command}  construct,  and Lua functions os.execute(), os.exec(),\nos.spawn(), and io.popen().  The command can be any shell command.  This construct  is\nnormally disallowed for security reasons.\n\n#### --no-shell-escape\n\nDisable the \\write18{command} construct and the other Lua functions, even if it is en‐\nabled in the texmf.cnf file.\n\n#### --shell-restricted\n\nEnable restricted  version  of  \\write18,  os.execute(),  os.exec(),  os.spawn(),  and\nio.popen(), only commands listed in texmf.cnf file are allowed.\n\n#### --file-line-error\n\nPrint error messages in the form file:line:error which is similar to the way many com‐\npilers format them.\n\n#### --no-file-line-error\n\nDisable printing error messages in the file:line:error style.\n\n--fmt=FORMAT\nUse FORMAT as the name of the format to be used, instead of the name by  which  luaTeX\nwas called or a %& line.\n\n--help Print help message and exit.\n\n--ini  Start  in INI mode, which is used to dump formats.  The INI mode can be used for type‐\nsetting, but no format is preloaded, and basic initializations like  setting  catcodes\nmay be required.\n\n--interaction=MODE\nSets the interaction mode.  The MODE can be either batchmode, nonstopmode, scrollmode,\nand errorstopmode.  The meaning of these modes is the same as that of the  correspond‐\ning \\commands.\n\n--jobname=NAME\nUse NAME for the job name, instead of deriving it from the name of the input file.\n\n--kpathsea-debug=BITMASK\nSets path searching debugging flags according to the BITMASK.  See the Kpathsea manual\nfor details.\n\n--mktex=FMT\nEnable mktexFMT generation, where FMT must be either tex or tfm.\n\n#### --nosocket\n\nDisable the luasocket (network) library.\n\n\n--output-comment=STRING\nIn DVI mode, use STRING for the DVI file comment instead of the date.  This option  is\nignored inPDF mode.\n\n--output-directory=DIRECTORY\nWrite output files in DIRECTORY instead of the current directory.  Look up input files\nin DIRECTORY first, then along the normal search path.\n\n--output-format=FORMAT\nSet the output format mode, where FORMAT must be either pdf or dvi.  This also  influ‐\nences the set of graphics formats understood by luaTeX.\n\n--progname=NAME\nPretend to be program NAME (only for kpathsea).\n\n#### --recorder\n\nEnable  the  filename recorder.  This leaves a trace of the files opened for input and\noutput in a file with extension .fls.\n\n#### --safer\n\nDisable some Lua commands that can easily be abused by a malicious document.\n\n--synctex=NUMBER\nEnable/disable SyncTeX extension.\n\n#### --version\n\nPrint version information and exit.\n\n#### --credits\n\nPrint credits and version details.\n\nThe following options are ignored:\n\n--8bit, --etex, --parse-first-line, --no-parse-first-line\nThese are always on.\n\n--default-translate-file=TCXNAME, --translate-file=TCXNAME\nThese are always off.\n\n### SEE ALSO\n\npdftex(1), etex(1), aleph(1), lua(1).\n\n### AUTHORS\n\nThe primary authors of LuaTeX are Taco Hoekwater,  Hartmut  Henkel,  Hans  Hagen,  and  Luigi\nScarso, with help from Martin Schröder, Karel Skoupy, and Han The Thanh.\n\nTeX  was designed by Donald E. Knuth, who implemented it using his Web system for Pascal pro‐\ngrams.  It was ported to Unix at Stanford by Howard Trickey, and at Cornell by Pavel  Curtis.\nThe version now offered with the Unix TeX distribution is that generated by the Web to C sys‐\ntem (web2c), originally written by Tomas Rokicki and Tim Morgan.\n\nThe LuaTeX home page is http://luatex.org.\n\n\n\nWeb2C 2022/dev                            17 November 2019                                 LUATEX(1)\n\n"
        }
    ],
    "structuredContent": {
        "command": "luajittex",
        "section": "1",
        "mode": "man",
        "summary": "luatex,  dviluatex,  luahbtex,  luajittex, texlua, texluac - An extended version of TeX using Lua as an embedded scripting language",
        "synopsis": "luatex [--lua=FILE] [OPTION]...  [TEXNAME[.tex]] [COMMANDS]\nluatex [--lua=FILE] [OPTION]...  \\FIRST-LINE\nluatex [--lua=FILE] [OPTION]...  &FMT [ARGS]",
        "flags": [
            {
                "flag": "",
                "long": "--luaonly",
                "arg": null,
                "description": "Start LuaTeX as a Lua interpreter. In this mode, it will set Lua's arg[0] to the found script name, pushing preceding options in negative values and the rest of the command line in the positive values, just like the Lua interpreter. LuaTeX will exit immedi‐ ately after executing the specified Lua script."
            },
            {
                "flag": "",
                "long": "--luaconly",
                "arg": null,
                "description": "Start LuaTeX as a Lua byte compiler. In this mode, LuaTeX is exactly like luac from the standalone Lua distribution, except that it does not have the -l switch, and that it accepts (but ignores) the --luaconly switch. Then the regular web2c options:"
            },
            {
                "flag": "",
                "long": "--debug-format",
                "arg": null,
                "description": "Debug format loading."
            },
            {
                "flag": "",
                "long": "--draftmode",
                "arg": null,
                "description": "Sets \\pdfdraftmode so luaTeX doesn't write a PDF and doesn't read any included images, thus speeding up execution."
            },
            {
                "flag": "",
                "long": "--enable-write18",
                "arg": null,
                "description": "Synonym for --shell-escape."
            },
            {
                "flag": "",
                "long": "--disable-write18",
                "arg": null,
                "description": "Synonym for --no-shell-escape."
            },
            {
                "flag": "",
                "long": "--shell-escape",
                "arg": null,
                "description": "Enable the \\write18{command} construct, and Lua functions os.execute(), os.exec(), os.spawn(), and io.popen(). The command can be any shell command. This construct is normally disallowed for security reasons."
            },
            {
                "flag": "",
                "long": "--no-shell-escape",
                "arg": null,
                "description": "Disable the \\write18{command} construct and the other Lua functions, even if it is en‐ abled in the texmf.cnf file."
            },
            {
                "flag": "",
                "long": "--shell-restricted",
                "arg": null,
                "description": "Enable restricted version of \\write18, os.execute(), os.exec(), os.spawn(), and io.popen(), only commands listed in texmf.cnf file are allowed."
            },
            {
                "flag": "",
                "long": "--file-line-error",
                "arg": null,
                "description": "Print error messages in the form file:line:error which is similar to the way many com‐ pilers format them."
            },
            {
                "flag": "",
                "long": "--no-file-line-error",
                "arg": null,
                "description": "Disable printing error messages in the file:line:error style. --fmt=FORMAT Use FORMAT as the name of the format to be used, instead of the name by which luaTeX was called or a %& line. --help Print help message and exit. --ini Start in INI mode, which is used to dump formats. The INI mode can be used for type‐ setting, but no format is preloaded, and basic initializations like setting catcodes may be required. --interaction=MODE Sets the interaction mode. The MODE can be either batchmode, nonstopmode, scrollmode, and errorstopmode. The meaning of these modes is the same as that of the correspond‐ ing \\commands. --jobname=NAME Use NAME for the job name, instead of deriving it from the name of the input file. --kpathsea-debug=BITMASK Sets path searching debugging flags according to the BITMASK. See the Kpathsea manual for details. --mktex=FMT Enable mktexFMT generation, where FMT must be either tex or tfm."
            },
            {
                "flag": "",
                "long": "--nosocket",
                "arg": null,
                "description": "Disable the luasocket (network) library. --output-comment=STRING In DVI mode, use STRING for the DVI file comment instead of the date. This option is ignored inPDF mode. --output-directory=DIRECTORY Write output files in DIRECTORY instead of the current directory. Look up input files in DIRECTORY first, then along the normal search path. --output-format=FORMAT Set the output format mode, where FORMAT must be either pdf or dvi. This also influ‐ ences the set of graphics formats understood by luaTeX. --progname=NAME Pretend to be program NAME (only for kpathsea)."
            },
            {
                "flag": "",
                "long": "--recorder",
                "arg": null,
                "description": "Enable the filename recorder. This leaves a trace of the files opened for input and output in a file with extension .fls."
            },
            {
                "flag": "",
                "long": "--safer",
                "arg": null,
                "description": "Disable some Lua commands that can easily be abused by a malicious document. --synctex=NUMBER Enable/disable SyncTeX extension."
            },
            {
                "flag": "",
                "long": "--version",
                "arg": null,
                "description": "Print version information and exit."
            },
            {
                "flag": "",
                "long": "--credits",
                "arg": null,
                "description": "Print credits and version details. The following options are ignored: --8bit, --etex, --parse-first-line, --no-parse-first-line These are always on. --default-translate-file=TCXNAME, --translate-file=TCXNAME These are always off."
            }
        ],
        "examples": [],
        "see_also": [
            {
                "name": "pdftex",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pdftex/1/json"
            },
            {
                "name": "etex",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/etex/1/json"
            },
            {
                "name": "aleph",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/aleph/1/json"
            },
            {
                "name": "lua",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/lua/1/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 35,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 12,
                "subsections": [
                    {
                        "name": "--luaonly",
                        "lines": 5,
                        "long": "--luaonly"
                    },
                    {
                        "name": "--luaconly",
                        "lines": 6,
                        "long": "--luaconly"
                    },
                    {
                        "name": "--debug-format",
                        "lines": 2,
                        "long": "--debug-format"
                    },
                    {
                        "name": "--draftmode",
                        "lines": 3,
                        "long": "--draftmode"
                    },
                    {
                        "name": "--enable-write18",
                        "lines": 2,
                        "long": "--enable-write18"
                    },
                    {
                        "name": "--disable-write18",
                        "lines": 2,
                        "long": "--disable-write18"
                    },
                    {
                        "name": "--shell-escape",
                        "lines": 4,
                        "long": "--shell-escape"
                    },
                    {
                        "name": "--no-shell-escape",
                        "lines": 3,
                        "long": "--no-shell-escape"
                    },
                    {
                        "name": "--shell-restricted",
                        "lines": 3,
                        "long": "--shell-restricted"
                    },
                    {
                        "name": "--file-line-error",
                        "lines": 3,
                        "long": "--file-line-error"
                    },
                    {
                        "name": "--no-file-line-error",
                        "lines": 27,
                        "long": "--no-file-line-error"
                    },
                    {
                        "name": "--nosocket",
                        "lines": 18,
                        "long": "--nosocket"
                    },
                    {
                        "name": "--recorder",
                        "lines": 3,
                        "long": "--recorder"
                    },
                    {
                        "name": "--safer",
                        "lines": 5,
                        "long": "--safer"
                    },
                    {
                        "name": "--version",
                        "lines": 2,
                        "long": "--version"
                    },
                    {
                        "name": "--credits",
                        "lines": 11,
                        "long": "--credits"
                    }
                ]
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHORS",
                "lines": 13,
                "subsections": []
            }
        ]
    }
}