## Name

miktex-luatex — an extended version of pdfTeX using Lua as an embedded scripting language

## Synopsis

`miktex-luatex` [`option`...] [[`command`...] | [`file`]]

## Description

This man page is an adaption of the corresponding TeX Live man page.

Run the LuaTeX typesetter on `file`, usually creating `file.pdf`. Any remaining commands are processed as LuaTeX input, after `file` 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 `format` 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 miktex-texlua it acts as Lua interpreter. If called as miktex-texluac it acts as Lua bytecode compiler.

LuaTeX is an extended version of pdfTeX with Unicode and OpenType font support, embeded Lua scripting language, the eTeX and Omega extensions, as well as integrated MetaPost engine, that can create PDF files as well as DVI files. For more information about LuaTeX, see http://www.luatex.org, you can read the LuaTeX manual using the MiKTeX Help Utility (`mthelp luatex`).

All LuaTeX text input and output is considered to be Unicode text.

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 miktex-epstopdf(1).

## Options

When the LuaTeX executable starts, it looks for the `--lua` commandline option. If there is no `--lua` option, the commandline is interpreted in a similar fashion as in traditional pdfTeX. But if the option is present, LuaTeX will enter an alternative mode of commandline parsing in comparison to the standard MiKTeX programs. The presence of `--lua` makes most of other options unreliable, because the Lua initialization file can disable path searching and/or hook functions into various callbacks.

`--lua=file`

Load and execute a Lua initialization script.

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 commandline 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 options:

`--alias=name`

Pretend to be program `name`, i.e., set program (and memory dump) name to `name`. This may affect the search paths and other values used. Using this option is equivalent to copying the program file to `name` and invoking `name`.

`--aux-directory=dir`

Set `dir` as the directory to which auxiliary files are written. Also look for input files in `dir` first, before along the normal search path.

`--c-style-errors`

Change the way, error messages are printed. The alternate style looks like error messages from many compilers and is easier to parse for some editors.

`--credits`

Display credits and exit.

`--debug-format`

Enable format debugging.

`--disable-installer`

Disable automatic installation of packages. Specifying this option overrules settings in the MiKTeX configuration data store.

`--disable-write18`

Disable the \write18{`command`} construct.

`--draftmode`

Switch on draft mode. luaTeX; doesn't write a PDF and doesn't read any included images, thus speeding up execution.

`--enable-installer`

Enable automatic installation of packages. Specifying this option overrules settings in the MiKTeX configuration data store.

`--enable-write18`

Fully enable the \write18{`command`} construct. It is only partially enabled by default to avoid security problems. When fully enabled, the command (which undergoes the usual TeX expansions) is passed to the command interpreter. The output of the command is not diverted anywhere, so it will not appear in the log file. The command execution either happens at \output time or right away, according to the absence or presence of the \immediate prefix.

`--halt-on-error`

Quit after the first error.

`--help`

Give help and exit.

`--include-directory=dir`

Add the directory `dir` to the head of the list of directories to be searched for input files.

`--initialize`

Become the INI variant of the program.

`--interaction=mode`

Set the interaction mode. Must be one of `batchmode`, `nonstopmode`, `scrollmode` and `errorstopmode`. The meaning of these modes is the same as the corresponding commands.

`--job-name=name`

Set the name of the job (\jobname). This has an affect on the output file names.

`--mktex=fmt`

Enable `fmt` generation, where `fmt` must be either `tex` or `tfm`.

`--no-c-style-errors`

Don't change the way, error messages are printed.

`--no-mktex=fmt`

Disable `fmt` generation, where `fmt` must be either `tex` or `tfm`.

`--nosocket`

Disable the Lua socket library.

`--output-comment=string`

Use `string` for DVI file comment instead of date.

`--output-directory=dir`

Write output files in `dir`. instead of the current directory. Look up input files in `dir` first, then along the normal search path.

`--output-format=format`

Use `format` for job output (one of: `dvi`, `pdf`).

`--recorder`

Enable the file name recorder. This leaves a trace of the files opened for input and output in a file with the extension `.fls`.

`--restrict-write18`

Partially enable the \write18{`command`} construct.

`--safer`

Disable easily exploitable Lua commands.

`--synctex=n`

Generate SyncTeX data for previewers. If `n` is zero, no `.synctex` file is created. If `n` is negative, the `.synctex` file is a text file. If `n` is positive, the `.synctex` file is compressed with gzip and the `.gz` file name extension is added.

Furthermore, `n` is interpreted as a bit field:

Bit 1 (`n` AND 2)

Don't add the `.gz` file name extension.

Bit 2 (`n` AND 4)

Activate form support.

Bit 3 (`n` AND 8)

Activate better compression.

`--undump=name`

Use `name` as the name of the format to be used, instead of the name by which the program was called or a

`%&`

line.

`--utc`

Init time to UTC.

`--version`

Show version information and exit.

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.

## Environment

`MIKTEX_EDITOR`

The editor to use when selecting `e` in the error prompt menu.

The value can contain these placesholder:

`%f`

The name of the file, which contains the erroneous line of TeX code.

`%l`

The line number.

`MIKTEX_TRACE`

Comma-separated list of trace stream names (see Chapter 9, Trace Streams). If this variable is set, then MiKTeX programs will write trace messages into the configured log sink.