1LUATEX(1) General Commands Manual LUATEX(1)
2
3
4
6 luatex, dviluatex, luahbtex, luajittex, texlua, texluac - An extended
7 version of TeX using Lua as an embedded scripting language
8
10 luatex [--lua=FILE] [OPTION]... [TEXNAME[.tex]] [COMMANDS]
11 luatex [--lua=FILE] [OPTION]... \FIRST-LINE
12 luatex [--lua=FILE] [OPTION]... &FMT [ARGS]
13
15 Run the luaTeX typesetter on TEXNAME, usually creating TEXNAME.pdf.
16 Any remaining COMMANDS are processed as luaTeX input, after TEXNAME is
17 read.
18
19 Alternatively, if the first non-option argument begins with a back‐
20 slash, interpret all non-option arguments as a line of luaTeX input.
21
22 Alternatively, if the first non-option argument begins with a &, the
23 next word is taken as the FMT to read, overriding all else. Any remain‐
24 ing arguments are processed as above.
25
26 If no arguments or options are specified, prompt for input.
27
28 If called as texlua it acts as a Lua interpreter. If called as texluac
29 it acts as a Lua bytecode compiler.
30
31 LuaTeX began as an extended version of pdfTeX with Unicode and OpenType
32 font support, embedded Lua scripting language, the e-TeX and Omega ex‐
33 tensions, as well as an integrated MetaPost engine, that can create PDF
34 files as well as DVI files. For more information about luatex, see
35 http://www.luatex.org; and you can read the LuaTeX manual using the
36 texdoc utility (texdoc luatex).
37
38 All LuaTeX text input and output is considered to be Unicode text, al‐
39 though various filters make it possible to support any encoding.
40
41 In DVI mode, LuaTeX can be used as a complete replacement for the TeX
42 engine.
43
44 In PDF mode, LuaTeX can natively handle the PDF, JPG, JBIG2, and PNG
45 graphics formats. LuaTeX cannot include PostScript or Encapsulated
46 PostScript (EPS) graphics files; first convert them to PDF using epsto‐
47 pdf (1).
48
49 The luajittex variant includes the Lua just-in-time compiler.
50
51 The luahbtex variant can use the HarfBuzz engine for glyph shaping, in‐
52 stead of LuaTeX's built-in shaper.
53
54
56 When the LuaTeX executable starts, it looks for the --lua command-line
57 option. If there is no --lua option, the command line is interpreted
58 in a similar fashion as in traditional pdfTeX and Aleph. But if the op‐
59 tion is present, LuaTeX will enter an alternative mode of command-line
60 parsing in comparison to the standard web2c programs. The presence of
61 --lua makes most of other options unreliable, because the lua initial‐
62 ization file can disable kpathsea and/or hook functions into various
63 callbacks.
64
65 --lua=FILE
66 The lua initialization file.
67
68 The following two options alter the executable behaviour:
69
70 --luaonly
71 Start LuaTeX as a Lua interpreter. In this mode, it will set
72 Lua's arg[0] to the found script name, pushing preceding options
73 in negative values and the rest of the command line in the posi‐
74 tive values, just like the Lua interpreter. LuaTeX will exit im‐
75 mediately after executing the specified Lua script.
76
77 --luaconly
78 Start LuaTeX as a Lua byte compiler. In this mode, LuaTeX is ex‐
79 actly like luac from the standalone Lua distribution, except
80 that it does not have the -l switch, and that it accepts (but
81 ignores) the --luaconly switch.
82
83 Then the regular web2c options:
84
85 --debug-format
86 Debug format loading.
87
88 --draftmode
89 Sets \pdfdraftmode so luaTeX doesn't write a PDF and doesn't
90 read any included images, thus speeding up execution.
91
92 --enable-write18
93 Synonym for --shell-escape.
94
95 --disable-write18
96 Synonym for --no-shell-escape.
97
98 --shell-escape
99 Enable the \write18{command} construct, and Lua functions os.ex‐
100 ecute(), os.exec(), os.spawn(), and io.popen(). The command can
101 be any shell command. This construct is normally disallowed for
102 security reasons.
103
104 --no-shell-escape
105 Disable the \write18{command} construct and the other Lua func‐
106 tions, even if it is enabled in the texmf.cnf file.
107
108 --shell-restricted
109 Enable restricted version of \write18, os.execute(), os.exec(),
110 os.spawn(), and io.popen(), only commands listed in texmf.cnf
111 file are allowed.
112
113 --file-line-error
114 Print error messages in the form file:line:error which is simi‐
115 lar to the way many compilers format them.
116
117 --no-file-line-error
118 Disable printing error messages in the file:line:error style.
119
120 --fmt=FORMAT
121 Use FORMAT as the name of the format to be used, instead of the
122 name by which luaTeX was called or a %& line.
123
124 --help Print help message and exit.
125
126 --ini Start in INI mode, which is used to dump formats. The INI mode
127 can be used for typesetting, but no format is preloaded, and ba‐
128 sic initializations like setting catcodes may be required.
129
130 --interaction=MODE
131 Sets the interaction mode. The MODE can be either batchmode,
132 nonstopmode, scrollmode, and errorstopmode. The meaning of
133 these modes is the same as that of the corresponding \commands.
134
135 --jobname=NAME
136 Use NAME for the job name, instead of deriving it from the name
137 of the input file.
138
139 --kpathsea-debug=BITMASK
140 Sets path searching debugging flags according to the BITMASK.
141 See the Kpathsea manual for details.
142
143 --mktex=FMT
144 Enable mktexFMT generation, where FMT must be either tex or tfm.
145
146 --nosocket
147 Disable the luasocket (network) library.
148
149
150 --output-comment=STRING
151 In DVI mode, use STRING for the DVI file comment instead of the
152 date. This option is ignored inPDF mode.
153
154 --output-directory=DIRECTORY
155 Write output files in DIRECTORY instead of the current direc‐
156 tory. Look up input files in DIRECTORY first, then along the
157 normal search path.
158
159 --output-format=FORMAT
160 Set the output format mode, where FORMAT must be either pdf or
161 dvi. This also influences the set of graphics formats under‐
162 stood by luaTeX.
163
164 --progname=NAME
165 Pretend to be program NAME (only for kpathsea).
166
167 --recorder
168 Enable the filename recorder. This leaves a trace of the files
169 opened for input and output in a file with extension .fls.
170
171 --safer
172 Disable some Lua commands that can easily be abused by a mali‐
173 cious document.
174
175 --synctex=NUMBER
176 Enable/disable SyncTeX extension.
177
178 --version
179 Print version information and exit.
180
181 --credits
182 Print credits and version details.
183
184 The following options are ignored:
185
186 --8bit, --etex, --parse-first-line, --no-parse-first-line
187 These are always on.
188
189 --default-translate-file=TCXNAME, --translate-file=TCXNAME
190 These are always off.
191
192
194 pdftex(1), etex(1), aleph(1), lua(1).
195
197 The primary authors of LuaTeX are Taco Hoekwater, Hartmut Henkel, Hans
198 Hagen, and Luigi Scarso, with help from Martin Schröder, Karel Skoupy,
199 and Han The Thanh.
200
201 TeX was designed by Donald E. Knuth, who implemented it using his Web
202 system for Pascal programs. It was ported to Unix at Stanford by
203 Howard Trickey, and at Cornell by Pavel Curtis. The version now of‐
204 fered with the Unix TeX distribution is that generated by the Web to C
205 system (web2c), originally written by Tomas Rokicki and Tim Morgan.
206
207 The LuaTeX home page is http://luatex.org.
208
209
210
211Web2C 2023 17 November 2019 LUATEX(1)