luatex, dviluatex, luahbtex, luajittex, texlua, texluac - An extended version of
TeX using Lua as an embedded scripting language
luatex [
--lua=FILE] [
OPTION]...
[
TEXNAME[
.tex]] [
COMMANDS]
luatex [
--lua=FILE] [
OPTION]...
\FIRST-LINE
luatex [
--lua=FILE] [
OPTION]...
&FMT [
ARGS]
Run the luaTeX typesetter on
TEXNAME, usually creating
TEXNAME.pdf. Any remaining
COMMANDS are processed as
luaTeX input, after
TEXNAME is read.
Alternatively, if the first non-option argument begins with a backslash,
interpret all non-option arguments as a line of luaTeX input.
Alternatively, if the first non-option argument begins with a
&, the
next word is taken as the
FMT to read, overriding all else. Any
remaining arguments are processed as above.
If no arguments or options are specified, prompt for input.
If called as
texlua it acts as a Lua interpreter. If called as
texluac it acts as a Lua bytecode compiler.
LuaTeX began as an extended version of pdfTeX with Unicode and OpenType font
support, embedded
Lua scripting language, the
e-TeX and
Omega extensions, as well as an integrated MetaPost engine, that can
create
PDF files as well as
DVI files. For more information
about luatex, see
http://www.luatex.org; and you can read the LuaTeX manual
using the texdoc utility (
texdoc luatex).
All LuaTeX text input and output is considered to be Unicode text, although
various filters make it possible to support any encoding.
In
DVI mode, LuaTeX can be used as a complete replacement for the TeX
engine.
In
PDF mode, LuaTeX can natively handle the
PDF,
JPG,
JBIG2, and
PNG graphics formats. LuaTeX cannot include
PostScript or Encapsulated PostScript (EPS) graphics files; first convert them
to PDF using
epstopdf (1).
The luajittex variant includes the Lua just-in-time compiler.
The luahbtex variant can use the HarfBuzz engine for glyph shaping, instead of
LuaTeX's built-in shaper.
When the LuaTeX executable starts, it looks for the
--lua command-line
option. If there is no
--lua option, the command line is interpreted in
a similar fashion as in traditional pdfTeX and Aleph. But if the option is
present, LuaTeX will enter an alternative mode of command-line parsing in
comparison to the standard web2c programs. The presence of
--lua makes
most of other options unreliable, because the lua initialization file can
disable kpathsea and/or hook functions into various callbacks.
-
--lua=FILE
- The lua initialization file.
The following two options alter the executable behaviour:
- --luaonly
- 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
immediately after executing the specified Lua script.
- --luaconly
- 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:
- --debug-format
-
Debug format loading.
- --draftmode
- Sets \pdfdraftmode so luaTeX doesn't write a PDF and
doesn't read any included images, thus speeding up execution.
- --enable-write18
-
Synonym for --shell-escape.
- --disable-write18
-
Synonym for --no-shell-escape.
- --shell-escape
-
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.
- --no-shell-escape
-
Disable the \write18{command} construct and the other
Lua functions, even if it is enabled in the texmf.cnf file.
- --shell-restricted
- Enable restricted version of \write18,
os.execute(), os.exec(), os.spawn(), and
io.popen(), only commands listed in texmf.cnf file are
allowed.
- --file-line-error
- Print error messages in the form file:line:error
which is similar to the way many compilers format them.
- --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 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 typesetting, 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 corresponding \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.
- --nosocket
- 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 in PDF
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 influences the set of graphics
formats understood by luaTeX.
-
--progname=NAME
- Pretend to be program NAME (only for kpathsea).
- --recorder
- Enable the filename recorder. This leaves a trace of the
files opened for input and output in a file with extension
.fls.
- --safer
- Disable some Lua commands that can easily be abused by a
malicious document.
-
--synctex=NUMBER
- Enable/disable SyncTeX extension.
- --version
- Print version information and exit.
- --credits
- 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.
pdftex(1),
etex(1),
aleph(1),
lua(1).
The primary authors of LuaTeX are Taco Hoekwater, Hartmut Henkel, Hans Hagen,
and Luigi Scarso, with help from Martin Schröder, Karel Skoupy, and Han
The Thanh.
TeX was designed by Donald E. Knuth, who implemented it using his Web system for
Pascal programs. It was ported to Unix at Stanford by Howard Trickey, and at
Cornell by Pavel Curtis. The version now offered with the Unix TeX
distribution is that generated by the Web to C system (
web2c),
originally written by Tomas Rokicki and Tim Morgan.
The LuaTeX home page is
http://luatex.org.