diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-04-19 17:37:21 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-04-19 17:37:21 +0200 |
commit | d817aef76ab8b606c02bd0636661b634b43a68a6 (patch) | |
tree | b222d7a356ebe7f1f2267f6aa4f4e424a4d6d88c /doc/context/sources/general/manuals/luatex/luatex-lua.tex | |
parent | d57683f5f67d6651f7b3353ff347ae57a409e0d4 (diff) | |
download | context-d817aef76ab8b606c02bd0636661b634b43a68a6.tar.gz |
2018-04-19 16:02:00
Diffstat (limited to 'doc/context/sources/general/manuals/luatex/luatex-lua.tex')
-rw-r--r-- | doc/context/sources/general/manuals/luatex/luatex-lua.tex | 70 |
1 files changed, 49 insertions, 21 deletions
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. |