From d817aef76ab8b606c02bd0636661b634b43a68a6 Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Thu, 19 Apr 2018 17:37:21 +0200
Subject: 2018-04-19 16:02:00

---
 .../sources/general/manuals/luatex/luatex-lua.tex  | 70 +++++++++++++++-------
 1 file changed, 49 insertions(+), 21 deletions(-)

(limited to 'doc/context/sources/general/manuals/luatex/luatex-lua.tex')

diff --git a/doc/context/sources/general/manuals/luatex/luatex-lua.tex b/doc/context/sources/general/manuals/luatex/luatex-lua.tex
index 64dcb42a4..226ece56d 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-lua.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-lua.tex
@@ -10,6 +10,9 @@
 
 \subsection{\LUATEX\ as a \LUA\ interpreter}
 
+\topicindex {initialization}
+\topicindex {\LUA+interpreter}
+
 There are some situations that make \LUATEX\ behave like a standalone \LUA\
 interpreter:
 
@@ -36,6 +39,8 @@ preloaded libraries.
 
 \subsection{\LUATEX\ as a \LUA\ byte compiler}
 
+\topicindex {\LUA+byte code}
+
 There are two situations that make \LUATEX\ behave like the \LUA\ byte compiler:
 
 \startitemize[packed]
@@ -51,12 +56,16 @@ version if \LUATEX.
 
 \subsection{Other commandline processing}
 
+\topicindex {command line}
+
 When the \LUATEX\ executable starts, it looks for the \type {--lua} command line
 option. If there is no \type {--lua} option, the command line is interpreted in a
 similar fashion as the other \TEX\ engines. Some options are accepted but have no
 consequence. The following command|-|line options are understood:
 
 \starttabulate[|l|p|]
+\DB commandline argument                \BC explanation \NC \NR
+\TB
 \NC \type{--credits}                    \NC display credits and exit \NC \NR
 \NC \type{--debug-format}               \NC enable format debugging \NC \NR
 \NC \type{--draftmode}                  \NC switch on draft mode i.e.\ generate no output in \PDF\ mode \NC \NR
@@ -66,53 +75,60 @@ consequence. The following command|-|line options are understood:
 \NC \type{--halt-on-error}              \NC stop processing at the first error\NC \NR
 \NC \type{--help}                       \NC display help and exit \NC\NR
 \NC \type{--ini}                        \NC be \type {iniluatex}, for dumping formats \NC\NR
-\NC \type{--interaction=STRING}         \NC set interaction mode: \type {batchmode}, \type {nonstopmode}, \type {scrollmode} or \type {errorstopmode} \NC \NR
+\NC \type{--interaction=STRING}         \NC set interaction mode: \type {batchmode}, \type {nonstopmode},
+                                            \type {scrollmode} or \type {errorstopmode} \NC \NR
 \NC \type{--jobname=STRING}             \NC set the job name to \type {STRING} \NC \NR
-\NC \type{--kpathsea-debug=NUMBER}      \NC set path searching debugging flags according to the bits of \type {NUMBER} \NC \NR
+\NC \type{--kpathsea-debug=NUMBER}      \NC set path searching debugging flags according to the bits of
+                                           \type {NUMBER} \NC \NR
 \NC \type{--lua=FILE}                   \NC load and execute a \LUA\ initialization script \NC\NR
-\NC \type{--[no-]mktex=FMT}             \NC disable/enable \type {mktexFMT} generation with \type {FMT} is \type {tex} or \type {tfm} \NC \NR
+\NC \type{--[no-]mktex=FMT}             \NC disable/enable \type {mktexFMT} generation with \type {FMT} is
+                                            \type {tex} or \type {tfm} \NC \NR
 \NC \type{--nosocket}                   \NC disable the \LUA\ socket library \NC\NR
-\NC \type{--output-comment=STRING}      \NC use \type {STRING} for \DVI\ file comment instead of date (no effect for \PDF) \NC \NR
+\NC \type{--output-comment=STRING}      \NC use \type {STRING} for \DVI\ file comment instead of date (no
+                                            effect for \PDF) \NC \NR
 \NC \type{--output-directory=DIR}       \NC use \type {DIR} as the directory to write files to \NC \NR
-\NC \type{--output-format=FORMAT}       \NC use \type {FORMAT} for job output; \type {FORMAT} is \type {dvi} or \type {pdf} \NC \NR
+\NC \type{--output-format=FORMAT}       \NC use \type {FORMAT} for job output; \type {FORMAT} is \type {dvi}
+                                            or \type {pdf} \NC \NR
 \NC \type{--progname=STRING}            \NC set the program name to \type {STRING} \NC \NR
 \NC \type{--recorder}                   \NC enable filename recorder \NC \NR
 \NC \type{--safer}                      \NC disable easily exploitable \LUA\ commands \NC\NR
 \NC \type{--[no-]shell-escape}          \NC disable/enable system calls \NC \NR
-\NC \type{--shell-restricted}           \NC restrict system calls to a list of commands given in \type {texmf.cnf} \NC \NR
+\NC \type{--shell-restricted}           \NC restrict system calls to a list of commands given in \type
+                                            {texmf.cnf} \NC \NR
 \NC \type{--synctex=NUMBER}             \NC enable \type {synctex} \NC \NR
 \NC \type{--utc}                        \NC use utc times when applicable \NC \NR
 \NC \type{--version}                    \NC display version and exit \NC \NR
+\LL
 \stoptabulate
 
-We don't support \type {\write18} because \type {os.execute} can do the same. It
+We don't support \prm {write} 18 because \type {os.execute} can do the same. It
 simplifies the code and makes more write targets possible.
 
-The value to use for \type {\jobname} is decided as follows:
+The value to use for \prm {jobname} is decided as follows:
 
 \startitemize
 \startitem
     If \type {--jobname} is given on the command line, its argument will be the
-    value for \type {\jobname}, without any changes. The argument will not be
+    value for \prm {jobname}, without any changes. The argument will not be
     used for actual input so it need not exist. The \type {--jobname} switch only
-    controls the \type {\jobname} setting.
+    controls the \prm {jobname} setting.
 \stopitem
 \startitem
-    Otherwise, \type {\jobname} will be the name of the first file that is read
+    Otherwise, \prm {jobname} will be the name of the first file that is read
     from the file system, with any path components and the last extension (the
     part following the last \type {.}) stripped off.
 \stopitem
 \startitem
     There is an exception to the previous point: if the command line goes into
     interactive mode (by starting with a command) and there are no files input
-    via \type {\everyjob} either, then the \type {\jobname} is set to \type
+    via \prm {everyjob} either, then the \prm {jobname} is set to \type
     {texput} as a last resort.
 \stopitem
 \stopitemize
 
 The file names for output files that are generated automatically are created by
 attaching the proper extension (\type {log}, \type {pdf}, etc.) to the found
-\type {\jobname}. These files are created in the directory pointed to by \type
+\prm {jobname}. These files are created in the directory pointed to by \type
 {--output-directory}, or in the current directory, if that switch is not present.
 
 Without the \type {--lua} option, command line processing works like it does in
@@ -144,12 +160,15 @@ in order.
     \LUA\ commands that can easily be abused by a malicious document. At the
     moment, \type {--safer} \type {nil}s the following functions:
 
-    \starttabulate[|l|l|]
-        \DB library      \BC functions \NC \NR
-        \TB[small,samepage]
-        \NC \type {os}   \NC \type {execute} \type {exec} \type {spawn} \type {setenv} \type {rename} \type {remove} \type {tmpdir} \NC \NR
-        \NC \type {io}   \NC \type {popen} \type {output} \type {tmpfile} \NC \NR
-        \NC \type {lfs}  \NC \type {rmdir} \type {mkdir} \type {chdir} \type {lock} \type {touch} \NC \NR
+    \starttabulate[|c|l|]
+        \DB library     \BC functions \NC \NR
+        \TB
+        \NC \type {os}  \NC \type {execute} \type {exec} \type {spawn} \type {setenv}
+                            \type {rename} \type {remove} \type {tmpdir} \NC \NR
+        \NC \type {io}  \NC \type {popen} \type {output} \type {tmpfile} \NC \NR
+        \NC \type {lfs} \NC \type {rmdir} \type {mkdir} \type {chdir} \type {lock}
+                            \type {touch} \NC \NR
+        \LL
     \stoptabulate
 
     Furthermore, it disables loading of compiled \LUA\ libraries and it makes
@@ -191,7 +210,7 @@ deal with typesetting, like \type {tex}, \type {token}, \type {node} and
 are \type {nil}'d). Special care is taken that \type {texio.write} and \type
 {texio.write_nl} function properly, so that you can at least report your actions
 to the log file when (and if) it eventually becomes opened (note that \TEX\ does
-not even know its \type {\jobname} yet at this point).
+not even know its \prm {jobname} yet at this point).
 
 Everything you do in the \LUA\ initialization script will remain visible during
 the rest of the run, with the exception of the \TEX\ specific libraries like
@@ -219,9 +238,12 @@ check \type {--progname}, or \type {--ini} and \type {--fmt}, if \type
 
 \section{\LUA\ behaviour}
 
+\topicindex {\LUA+libraries}
+\topicindex {\LUA+extensions}
+
 \LUA s \type {tostring} function (and \type {string.format} may return values in
 scientific notation, thereby confusing the \TEX\ end of things when it is used as
-the right|-|hand side of an assignment to a \type {\dimen} or \type {\count}. The
+the right|-|hand side of an assignment to a \prm {dimen} or \prm {count}. The
 output of these serializers also depend on the \LUA\ version, so in \LUA\ 5.3 you
 can get different output than from 5.2.
 
@@ -510,6 +532,9 @@ LC_NUMERIC=C
 
 \section {\LUA\ modules}
 
+\topicindex {\LUA+libraries}
+\topicindex {\LUA+modules}
+
 Some modules that are normally external to \LUA\ are statically linked in with
 \LUATEX, because they offer useful functionality:
 
@@ -570,6 +595,9 @@ Some modules that are normally external to \LUA\ are statically linked in with
 
 \section{Testing}
 
+\topicindex {testing}
+\topicindex {\PDF+date}
+
 For development reasons you can influence the used startup date and time. This can
 be done in two ways.
 
-- 
cgit v1.2.3

