Skip to content

global texconfig

This is a table that is created empty. A startup Lua script could fill this table with a number of settings that are read out by the executable after loading and executing the startup file.

😱 Types incomplete or incorrect? 🙏 Please contribute!


fields


texconfig.kpse_init


texconfig.kpse_init : boolean

false totally disables \KPATHSEA\ initialisation, and enables interpretation of the following numeric key--value pairs. (only ever unset this if you implement {\it all\/} file find callbacks!)

shell_escape string 'f' Use 'y' or 't' or '1' to enable \write18 unconditionally, 'p' to enable the commands that are listed in shell_escape_commands

shell_escape_commands string Comma-separated list of command names that may be executed by \write18 even if shell_escape is set to 'p'. Do {\it not\/} use spaces around commas, separate any required command arguments by using a space, and use the \ASCII\ double quote (") for any needed argument or path quoting

texconfig.string_vacancies


texconfig.string_vacancies : integer

Minimum pool space after TeX's own strings; must be at least 25000 less than pool_size, but doesn't need to be nearly that large.

Reference:

texconfig.pool_free


texconfig.pool_free : integer

Min pool space left after loading .fmt.

Reference:

texconfig.max_strings


texconfig.max_strings : integer

Maximum number of strings.

Reference:

texconfig.strings_free


texconfig.strings_free : integer

Ensure at least this many strings are free after loading .fmt.

Reference:

texconfig.nest_size


texconfig.nest_size : integer

simultaneous semantic levels (e.g., groups)

Reference:

texconfig.max_in_open


texconfig.max_in_open : integer

simultaneous input files and error insertions, also applies to MetaPost

Reference:

texconfig.param_size


texconfig.param_size : integer

simultaneous macro parameters, also applies to MP

Reference:

texconfig.save_size


texconfig.save_size : integer

for saving values outside current group

Reference:

texconfig.stack_size


texconfig.stack_size : integer

simultaneous input sources

Reference:

texconfig.dvi_buf_size


texconfig.dvi_buf_size : integer

These work best if they are the same as the I/O buffer size, but it doesn't matter much. Must be a multiple of 8.

Reference:

texconfig.error_line


texconfig.error_line : integer

It's probably inadvisable to change these. At any rate, we must have: 45 < error_line < 255; 30 < half_error_line < error_line - 15; 60 <= max_print_line; These apply to TeX, Metafont, and MetaPost. "max_print_line" applies to BibTeX family

Reference:

texconfig.half_error_line


texconfig.half_error_line : integer

It's probably inadvisable to change these. At any rate, we must have: 45 < error_line < 255; 30 < half_error_line < error_line - 15; 60 <= max_print_line; These apply to TeX, Metafont, and MetaPost. "max_print_line" applies to BibTeX family

Reference:

texconfig.max_print_line


texconfig.max_print_line : integer

It's probably inadvisable to change these. At any rate, we must have: 45 < error_line < 255; 30 < half_error_line < error_line - 15; 60 <= max_print_line; These apply to TeX, Metafont, and MetaPost. "max_print_line" applies to BibTeX family

Reference:

texconfig.hash_extra


texconfig.hash_extra : integer

Extra space for the hash table of control sequences.

texconfig.pk_dpi


texconfig.pk_dpi : integer

For pdftex and luatex: default resolution for bitmaps; commonly set via \pdfpkresolution when needed to be changed.

texconfig.trace_file_names


texconfig.trace_file_names : boolean

false disables TeX's normal file open-close feedback (the assumption is that callbacks will take care of that)

texconfig.file_line_error


texconfig.file_line_error : boolean

do file:line style error messages

texconfig.halt_on_error


texconfig.halt_on_error : boolean

abort run on the first encountered error

texconfig.formatname


texconfig.formatname : string

if no format name was given on the command line, this key will be tested first instead of simply quitting

texconfig.jobname


texconfig.jobname : string

if no input file name was given on the command line, this key will be tested first instead of simply giving up

texconfig.level_chr


texconfig.level_chr : integer

character to put in front of traced macros (see next value)

texconfig.level_max


texconfig.level_max : integer

when larger than zero the input nesting level will be shown when \tracingmacros is set; levels above this value will be clipped with the level shown up front

Note: the numeric values that match web2c parameters are only used if kpse_init is explicitly set to false. In all other cases, the normal values from texmf.cnf are used.

You can kick in your own nesting level visualizer, for instance:

callback.register("input_level_string",function(n)
         if tex.tracingmacros > 0 and tex.count.tracingstacklevels > 0 then
    if tex.tracingmacros > 1 then
        return "! " .. string.rep(">",n) .. " "
    end
end)

Or, in sync with other engines (not checked):

\newcount\tracingstacklevels

\directlua {
  callback.register("input_level_string", function(n)
    if tex.tracingmacros > 0 then
      local l = tex.count.tracingstacklevels
      if l > 0 then
        return string.rep(" ",l) .. string.rep(".",n-l)
      end
    end
  end)
}