luatex, dviluatex, luahbtex, luajithbtex, luajittex, texlua,
- Provided by: texlive-binaries (Version: 2026.20260303.78225+ds-4)
- Source: texlive-bin
- Report a bug
luatex [--lua=luafile] [options] [&format] [ file [ more-input ] | [ \more-input ]
Run the LuaTeX typesetter on file[.tex], usually creating file.pdf. If the file argument has no extension, ".tex" will be appended to it. See tex(1) for details of command-line parsing, with the exceptions described here.
LuaTeX began as an extended version of pdfTeX with lua(1) as an embedded scripting language, Unicode and OpenType/TrueType font support, the e-TeX and Omega extensions, as well as an integrated MetaPost library. It can generate either pdf or dvi output. For more information about LuaTeX, see https://www.luatex.org; or you can read the LuaTeX manual using the texdoc utility (texdoc luatex).
All LuaTeX text input and output is read natively as Unicode text, although filters make it possible to support any encoding. Caveat: just because any Unicode character can be recognized as input does not mean it can be typeset as output; you still have to load the necessary fonts.
If the program is called as texlua it acts as a Lua interpreter. If called as texluac it acts as a Lua bytecode compiler.
By default, luatex produces pdf output, and dviluatex produces dvi output; both executables behave identically otherwise, within the limits of the output format. Both variants can be configured to produce either dvi or pdf output.
In pdf mode, LuaTeX can natively handle the pdf, jpg, jbig2, and png graphics formats, but not PostScript or Encapsulated PostScript (eps) graphics; see pdftex(1). As a special case, the PostScript files output by MetaPost can be handled directly via the supp-pdf.tex and supp-pdf.mkii macros.
The regular luatex programs embed Lua 5.3, developed by PUC-Rio; the jit variants such as luajittex embed LuaJIT for just-in-time compilation, developed by Mike Pall.
The luahbtex variant includes the HarfBuzz engine for glyph shaping. HarfBuzz must still be explicitly enabled at the TeX level.
By default, LuaTeX does not provide any primitives beyond those from TeX3. All extended primitives must be enabled at runtime using \directlua; see the LuaTeX manual and existing format-building files, e.g., luatex.ini.
For the common TeX command-line options and handling, see tex(1).
When the LuaTeX executable starts, it looks for the --lua command-line option. If there is no --lua option, the command line is interpreted similarly to traditional pdfTeX and Aleph. But if the option is present, LuaTeX will enter an alternative mode of command-line parsing, unrelated to the standard Web2C programs. The presence of --lua thus makes all other options unreliable, because the Lua initialization file can disable the default file searching via Kpathsea and/or hook functions into various callbacks.
The following two options alter the executable behaviour:
See tex(1).
aleph(1), etex(1), lua(1), mpost(1), pdftex(1), tex(1).
LuaTeX home page: https://luatex.org
Package page on CTAN: https://ctan.org/pkg/luatex
LuaTeX reference manual: https://mirror.ctan.org/systems/doc/luatex/luatex.pdf
Web2c manual: https://tug.org/web2c
Kpathsea manual: https://tug.org/kpathsea
Numerous articles have been published in TUGboat about LuaTeX: https://tug.org/TUGboat/Contents
TeX was created by Donald E. Knuth. The primary authors of the LuaTeX enhancements are Taco Hoekwater, Hartmut Henkel, Hans Hagen, and Luigi Scarso, with help from Martin Schröder, Karel Skoupý, and Hàn The Thành.
Bug reports: dev-luatex@ntg.nl
Public discussion list for LuaTeX-specific issues:
https://lists.tug.org/luatex
Public discussion list for all things TeX: https://lists.tug.org/texhax