summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/luatex/base/functionref.tex
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2011-04-12 14:17:47 +0000
committerTaco Hoekwater <taco@elvenkind.com>2011-04-12 14:17:47 +0000
commit307453997ef030ec4dfa1e876feaf0b8b8125bab (patch)
treeab2054693ba95e9ac8f6e3478b4d0175d893329f /Master/texmf-dist/doc/luatex/base/functionref.tex
parentd95b11a25d3d9e17cc4afb9c8713ef4037567527 (diff)
check in luatex 0.66.0
git-svn-id: svn://tug.org/texlive/trunk@22059 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/luatex/base/functionref.tex')
-rw-r--r--Master/texmf-dist/doc/luatex/base/functionref.tex1088
1 files changed, 1088 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/luatex/base/functionref.tex b/Master/texmf-dist/doc/luatex/base/functionref.tex
new file mode 100644
index 00000000000..a2f3dd08444
--- /dev/null
+++ b/Master/texmf-dist/doc/luatex/base/functionref.tex
@@ -0,0 +1,1088 @@
+% $Id$
+
+\nonknuthmode
+\catcode`\|=12
+
+\setuplayout[backspace=1cm,edge=0pt,topspace=1cm,
+ margin=0pt,location=middle,height=fit,footer=0pt,width=middle,
+ header=24pt]
+
+\setuptabulate[before=]
+\setuppagenumbering[location=,alternative=doublesided]
+\setupheadertexts[Luatex 0.66 short reference][pagenumber]
+\setupheader[style=\ssbf]
+
+\setupalign[flushleft]
+
+\setuphead[section][number=no,style=\ssbfb,after=,before=\blank]
+\setuphead[subsection][number=no,after=,style=\ssbf]
+
+\switchtobodyfont[times,9pt]
+\usemodule[abr-01]
+\def\DPI{DPI}
+
+\setuptype[style=\ss]
+\setuptyping[style=\ss]
+
+\def\afunction#1{{\ss\bf #1}}
+\def\aliteral#1{{\ss "#1"}}
+
+\def\showitemnoret#1#2#3#4#5#6%
+ {\hangafter=1\hangindent=12pt
+ \noindent {\ss \afunction{#1#6#2}#3}%
+ \hskip 12pt plus .5\hsize\penalty0 \hskip 0pt plus -.5\hsize
+ #5\par}
+
+\def\showitemret#1#2#3#4#5#6%
+ {\hangafter=1\hangindent=12pt
+ \noindent {\ss #4 = \afunction{#1#6#2}#3}%
+ \hskip 12pt plus .5\hsize\penalty0\hskip 0pt plus -.5\hsize
+ #5\par}
+
+\def\luafunction#1#2#3#4#5%
+ {\doifemptyelse{#4}
+ {\showitemnoret{#1}{#2}{#3}{#4}{#5}{.}}
+ {\showitemret{#1}{#2}{#3}{#4}{#5}{.}}\par}
+
+\def\luamethod#1#2#3#4#5%
+ {\doifemptyelse{#4}
+ {\showitemnoret{#1}{#2}{#3}{#4}{#5}{:}}
+ {\showitemret{#1}{#2}{#3}{#4}{#5}{:}}\par}
+
+\def\luacallback#1#2#3#4#5%
+ {\doifemptyelse{#4}
+ {\showitemnoret{}{#2}{#3}{#4}{#5}{}}
+ {\showitemret{}{#2}{#3}{#4}{#5}{}}\par}
+
+\startluacode
+local fdata = dofile('fdata.lua')
+function showfunction (t,o,f)
+ local val
+ local method
+ if o == nil then
+ val = fdata[t]["functions"][f]
+ method = false
+ else
+ val = fdata[t]["methods"][o][f]
+ method = true
+ end
+ local r = {}
+ local a = {}
+ if #val.returnvalues > 0 then
+ for i,v in ipairs (val.returnvalues) do
+ if v.optional then
+ r[#r+1] = '[' .. v.type .. ']'
+ else
+ r[#r+1] = v.type
+ end
+ end
+ end
+ if #val.arguments > 0 then
+ for i,v in ipairs (val.arguments) do
+ if (method == false) or (i > 1) then
+ if v.optional then
+ a[#a+1] = '[' .. v.type .. ']'
+ else
+ a[#a+1] = v.type
+ end
+ end
+ end
+ end
+ if method == false then
+ tex.sprint(string.format('\\lua%s{%s}{%s}{(%s)}{%s}{%s}', val.type, t, f,
+ table.concat(a,', '),table.concat(r,', '), val.shortdesc))
+ else
+ tex.sprint(string.format('\\lua%s{%s}{%s}{(%s)}{%s}{%s}', "method", o, f,
+ table.concat(a,', '),table.concat(r,', '), val.shortdesc))
+ end
+end
+
+\stopluacode
+
+\def\presentfunction#1#2{\directlua{showfunction("#1",nil,"#2")}}
+\def\presentmethod#1#2#3{\directlua{showfunction("#1","#2","#3")}}
+
+\starttext
+
+
+\startcolumns
+
+\section{Getting started}
+
+\type{luatex} is a typesetter; \type{texlua} and \type{luatex --luaonly} are lua interpreters.
+In lua interpreter mode, the lua tables \type{tex}, \type{token}, \type{node}, and \type{pdf}
+are unavailable.
+
+\blank
+
+\tex{directlua}\type{} expands immediately, \tex{latelua}\type{}
+is processed during \tex{shipout}.
+
+\blank
+
+\starttabulate[|l|p|]
+\NC \tex{luatexversion}: \NC {\bf\the\luatexversion} \NC\NR
+\NC \tex{luatexrevision}: \NC {\bf\luatexrevision} \NC\NR
+\NC \tex{luatexdatestamp}: \NC {\bf\luatexdatestamp} \NC\NR
+\stoptabulate
+
+\subsection{Attributes}
+
+There are 65536 attribute registers, each of which obeys grouping
+and can have any integer value other than the most negative number
+(which indicates the value is unset).
+
+\subsection{Catcode tables}
+
+There are 65536 category code tables, each of which can hold the full range
+of Unicode. Category table manipulation:
+
+\starttabulate[|l|p|]
+\NC \tex{initcatcodetable} $N$ \NC initialize an \quote{initex} table in $N$ \NC\NR
+\NC \tex{savecatcodetable} $N$\NC save the current category codes to table $N$ globally\NC\NR
+\NC \tex{catcodetable} $N$ \NC switch to predefined table $N$\NC\NR
+\stoptabulate
+
+\subsection{Filenames}
+
+\tex{input}, \tex{openin}, and \tex{font} accept braced file names to allow embedded spaces.
+
+\subsection{Images and forms}
+
+\type{\pdfrefximage} and \type{\pdfrefxform} accept optional dimension parameters
+in the same format as \type{\pdfximage}.
+
+\section{Preloaded lua modules}
+
+\starttabulate[|l|l|]
+\NC\type{slnunicode}\NC\hyphenatedurl{http://luaforge.net/projects/sln}\NC\NR
+\NC\type{luazip} \NC\hyphenatedurl{http://www.keplerproject.org/luazip/}\NC\NR
+\NC\type{luafilesystem} \NC\hyphenatedurl{http://www.keplerproject.org/luafilesystem/}\NC\NR
+\NC\type{lpeg} \NC\hyphenatedurl{http://www.inf.puc-rio.br/~roberto/lpeg.html}\NC\NR
+\NC\type{lzlib} \NC\hyphenatedurl{http://luaforge.net/projects/lzlib/}\NC\NR
+\NC\type{md5} \NC\hyphenatedurl{http://www.inf.puc-rio.br/~roberto/md5/md5-5/md5.html}\NC\NR
+\NC\type{luasocket} \NC \kern -12pt\hyphenatedurl{http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/}\NC\NR
+\stoptabulate
+
+\section{String extensions}
+
+\presentfunction{string}{explode}
+\presentfunction{string}{utfvalues}
+\presentfunction{string}{utfcharacters}
+\presentfunction{string}{characters}
+\presentfunction{string}{characterpairs}
+\presentfunction{string}{bytes}
+\presentfunction{string}{bytepairs}
+
+\section{Operating system extensions}
+
+\presentfunction{os}{exec}
+\presentfunction{os}{spawn}
+\presentfunction{os}{setenv}
+\presentfunction{os}{gettimeofday}
+\presentfunction{os}{times}
+\presentfunction{os}{tmpdir}
+\presentfunction{os}{uname}
+\presentfunction{os}{selfdir}
+
+\section{Lua file system extensions}
+
+\presentfunction{lfs}{isdir}
+\presentfunction{lfs}{isfile}
+\presentfunction{lfs}{shortname}
+\presentfunction{lfs}{readlink}
+
+\section{Callback table}
+\presentfunction{callback}{register}
+\presentfunction{callback}{list}
+\presentfunction{callback}{find}
+
+\subsection{File discovery callbacks}
+
+\presentfunction{callback}{find_read_file}
+\presentfunction{callback}{find_write_file}
+\presentfunction{callback}{find_font_file}
+\presentfunction{callback}{find_output_file}
+\presentfunction{callback}{find_format_file}
+\presentfunction{callback}{find_vf_file}
+\presentfunction{callback}{find_map_file}
+\presentfunction{callback}{find_enc_file}
+\presentfunction{callback}{find_subfont_file}
+\presentfunction{callback}{find_pk_file}
+\presentfunction{callback}{find_data_file}
+\presentfunction{callback}{find_opentype_file}
+\presentfunction{callback}{find_truetype_file}
+\presentfunction{callback}{find_type1_file}
+\presentfunction{callback}{find_image_file}
+
+\subsection{File reading callbacks}
+
+\presentfunction{callback}{open_read_file}
+\presentfunction{callback}{reader}
+\presentfunction{callback}{close}
+
+\blank
+
+\presentfunction{callback}{read_font_file}
+\presentfunction{callback}{read_vf_file}
+\presentfunction{callback}{read_map_file}
+\presentfunction{callback}{read_enc_file}
+\presentfunction{callback}{read_sfd_file}
+\presentfunction{callback}{read_pk_file}
+\presentfunction{callback}{read_data_file}
+\presentfunction{callback}{read_truetype_file}
+\presentfunction{callback}{read_type1_file}
+\presentfunction{callback}{read_opentype_file}
+
+\subsection{Tokenisation changes callbacks}
+
+\presentfunction{callback}{process_input_buffer}
+\presentfunction{callback}{process_output_buffer}
+\presentfunction{callback}{token_filter}
+
+\subsection{Node list callbacks}
+
+\presentfunction{callback}{buildpage_filter}
+
+\afunction{buildpage_filter} context information:
+\starttabulate[|lf\ss|p|]
+\NC \ssbf value \NC \bf explanation \NC\NR
+\NC alignment \NC a (partial) alignment is being added \NC\NR
+\NC after_output \NC an output routine has just finished \NC\NR
+\NC box \NC a typeset box is being added \NC\NR
+\NC new_graf \NC the beginning of a new paragraph \NC\NR
+\NC vmode_par \NC \tex{par} was found in vertical mode \NC\NR
+\NC hmode_par \NC \tex{par} was found in horizontal mode \NC\NR
+\NC insert \NC an insert is added \NC\NR
+\NC penalty \NC a penalty (in vertical mode) \NC\NR
+\NC before_display \NC immediately before a display starts \NC\NR
+\NC after_display \NC a display is finished \NC\NR
+\NC end \NC \LUATEX\ is terminating (it's all over)\NC\NR
+\stoptabulate
+
+\presentfunction{callback}{pre_linebreak_filter}
+
+\afunction{pre_linebreak_filter} context information:
+\starttabulate[|lf\ss|p|]
+\NC \ssbf value \NC \bf explanation \NC\NR
+\NC <empty> \NC main vertical list \NC\NR
+\NC hbox \NC \tex{hbox} in horizontal mode \NC\NR
+\NC adjusted_hbox\NC \tex{hbox} in vertical mode \NC\NR
+\NC vbox \NC \tex{vbox} \NC\NR
+\NC vtop \NC \tex{vtop} \NC\NR
+\NC align \NC \tex{halign} or \tex{valign} \NC\NR
+\NC disc \NC discretionaries \NC\NR
+\NC insert \NC packaging an insert \NC\NR
+\NC vcenter \NC \tex{vcenter} \NC\NR
+\NC local_box \NC \tex{localleftbox} or \tex{localrightbox} \NC\NR
+\NC split_off \NC top of a \tex{vsplit} \NC\NR
+\NC split_keep \NC remainder of a \tex{vsplit} \NC\NR
+\NC align_set \NC alignment cell \NC\NR
+\NC fin_row \NC alignment row \NC\NR
+\stoptabulate
+
+\presentfunction{callback}{linebreak_filter}
+\presentfunction{callback}{post_linebreak_filter}
+\presentfunction{callback}{hpack_filter}
+\presentfunction{callback}{vpack_filter}
+\presentfunction{callback}{pre_output_filter}
+\presentfunction{callback}{hyphenate}
+\presentfunction{callback}{ligaturing}
+\presentfunction{callback}{kerning}
+\presentfunction{callback}{mlist_to_hlist}
+
+\subsection{Font definition callback}
+\presentfunction{callback}{define_font}
+
+\subsection{Event callbacks}
+
+\presentfunction{callback}{pre_dump}
+\presentfunction{callback}{stop_run}
+\presentfunction{callback}{start_run}
+\presentfunction{callback}{start_page_number}
+\presentfunction{callback}{stop_page_number}
+\presentfunction{callback}{show_error_hook}
+\presentfunction{callback}{finish_pdffile}
+
+%***********************************************************************
+
+\section{Epdf table}
+
+--- All constructors:
+
+\presentfunction{epdf}{open}
+\presentfunction{epdf}{Annot}
+\presentfunction{epdf}{Annots}
+\presentfunction{epdf}{Array}
+\presentfunction{epdf}{Dict}
+\presentfunction{epdf}{Object}
+\presentfunction{epdf}{PDFRectangle}
+
+--- Annot methods:
+
+\presentmethod{epdf}{Annot}{isOK}
+\presentmethod{epdf}{Annot}{getAppearance}
+\presentmethod{epdf}{Annot}{getBorder}
+\presentmethod{epdf}{Annot}{match}
+
+--- AnnotBorderStyle methods:
+
+\presentmethod{epdf}{AnnotBorderStyle}{getWidth}
+
+--- Annots methods:
+
+\presentmethod{epdf}{Annots}{getNumAnnots}
+\presentmethod{epdf}{Annots}{getAnnot}
+
+--- Array methods:
+
+\presentmethod{epdf}{Array}{incRef}
+\presentmethod{epdf}{Array}{decRef}
+\presentmethod{epdf}{Array}{getLength}
+\presentmethod{epdf}{Array}{add}
+\presentmethod{epdf}{Array}{get}
+\presentmethod{epdf}{Array}{getNF}
+\presentmethod{epdf}{Array}{getString}
+
+--- Catalog methods:
+
+\presentmethod{epdf}{Catalog}{isOK}
+\presentmethod{epdf}{Catalog}{getNumPages}
+\presentmethod{epdf}{Catalog}{getPage}
+\presentmethod{epdf}{Catalog}{getPageRef}
+\presentmethod{epdf}{Catalog}{getBaseURI}
+\presentmethod{epdf}{Catalog}{readMetadata}
+\presentmethod{epdf}{Catalog}{getStructTreeRoot}
+\presentmethod{epdf}{Catalog}{findPage}
+\presentmethod{epdf}{Catalog}{findDest}
+\presentmethod{epdf}{Catalog}{getDests}
+\presentmethod{epdf}{Catalog}{numEmbeddedFiles}
+\presentmethod{epdf}{Catalog}{embeddedFile}
+\presentmethod{epdf}{Catalog}{numJS}
+\presentmethod{epdf}{Catalog}{getJS}
+\presentmethod{epdf}{Catalog}{getOutline}
+\presentmethod{epdf}{Catalog}{getAcroForm}
+
+--- EmbFile methods:
+
+\presentmethod{epdf}{EmbFile}{name}
+\presentmethod{epdf}{EmbFile}{description}
+\presentmethod{epdf}{EmbFile}{size}
+\presentmethod{epdf}{EmbFile}{modDate}
+\presentmethod{epdf}{EmbFile}{createDate}
+\presentmethod{epdf}{EmbFile}{checksum}
+\presentmethod{epdf}{EmbFile}{mimeType}
+\presentmethod{epdf}{EmbFile}{streamObject}
+\presentmethod{epdf}{EmbFile}{isOk}
+
+--- Dict methods:
+
+\presentmethod{epdf}{Dict}{incRef}
+\presentmethod{epdf}{Dict}{decRef}
+\presentmethod{epdf}{Dict}{getLength}
+\presentmethod{epdf}{Dict}{add}
+\presentmethod{epdf}{Dict}{set}
+\presentmethod{epdf}{Dict}{remove}
+\presentmethod{epdf}{Dict}{is}
+\presentmethod{epdf}{Dict}{lookup}
+\presentmethod{epdf}{Dict}{lookupNF}
+\presentmethod{epdf}{Dict}{lookupInt}
+\presentmethod{epdf}{Dict}{getKey}
+\presentmethod{epdf}{Dict}{getVal}
+\presentmethod{epdf}{Dict}{getValNF}
+
+--- LinkDest methods:
+
+\presentmethod{epdf}{LinkDest}{isOK}
+\presentmethod{epdf}{LinkDest}{getKind}
+\presentmethod{epdf}{LinkDest}{getKindName}
+\presentmethod{epdf}{LinkDest}{isPageRef}
+\presentmethod{epdf}{LinkDest}{getPageNum}
+\presentmethod{epdf}{LinkDest}{getPageRef}
+\presentmethod{epdf}{LinkDest}{getLeft}
+\presentmethod{epdf}{LinkDest}{getBottom}
+\presentmethod{epdf}{LinkDest}{getRight}
+\presentmethod{epdf}{LinkDest}{getTop}
+\presentmethod{epdf}{LinkDest}{getZoom}
+\presentmethod{epdf}{LinkDest}{getChangeLeft}
+\presentmethod{epdf}{LinkDest}{getChangeTop}
+\presentmethod{epdf}{LinkDest}{getChangeZoom}
+
+--- Object methods:
+
+\presentmethod{epdf}{Object}{initBool}
+\presentmethod{epdf}{Object}{initInt}
+\presentmethod{epdf}{Object}{initReal}
+\presentmethod{epdf}{Object}{initString}
+\presentmethod{epdf}{Object}{initName}
+\presentmethod{epdf}{Object}{initNull}
+\presentmethod{epdf}{Object}{initArray}
+\presentmethod{epdf}{Object}{initDict}
+\presentmethod{epdf}{Object}{initStream}
+\presentmethod{epdf}{Object}{initRef}
+\presentmethod{epdf}{Object}{initCmd}
+\presentmethod{epdf}{Object}{initError}
+\presentmethod{epdf}{Object}{initEOF}
+\presentmethod{epdf}{Object}{fetch}
+\presentmethod{epdf}{Object}{getType}
+\presentmethod{epdf}{Object}{getTypeName}
+\presentmethod{epdf}{Object}{isBool}
+\presentmethod{epdf}{Object}{isInt}
+\presentmethod{epdf}{Object}{isReal}
+\presentmethod{epdf}{Object}{isNum}
+\presentmethod{epdf}{Object}{isString}
+\presentmethod{epdf}{Object}{isName}
+\presentmethod{epdf}{Object}{isNull}
+\presentmethod{epdf}{Object}{isArray}
+\presentmethod{epdf}{Object}{isDict}
+\presentmethod{epdf}{Object}{isStream}
+\presentmethod{epdf}{Object}{isRef}
+\presentmethod{epdf}{Object}{isCmd}
+\presentmethod{epdf}{Object}{isError}
+\presentmethod{epdf}{Object}{isEOF}
+\presentmethod{epdf}{Object}{isNone}
+\presentmethod{epdf}{Object}{getBool}
+\presentmethod{epdf}{Object}{getInt}
+\presentmethod{epdf}{Object}{getReal}
+\presentmethod{epdf}{Object}{getNum}
+\presentmethod{epdf}{Object}{getString}
+\presentmethod{epdf}{Object}{getName}
+\presentmethod{epdf}{Object}{getArray}
+\presentmethod{epdf}{Object}{getDict}
+\presentmethod{epdf}{Object}{getStream}
+\presentmethod{epdf}{Object}{getRef}
+\presentmethod{epdf}{Object}{getRefNum}
+\presentmethod{epdf}{Object}{getRefGen}
+\presentmethod{epdf}{Object}{getCmd}
+\presentmethod{epdf}{Object}{arrayGetLength}
+\presentmethod{epdf}{Object}{arrayAdd}
+\presentmethod{epdf}{Object}{arrayGet}
+\presentmethod{epdf}{Object}{arrayGetNF}
+\presentmethod{epdf}{Object}{dictGetLength}
+\presentmethod{epdf}{Object}{dictAdd}
+\presentmethod{epdf}{Object}{dictSet}
+\presentmethod{epdf}{Object}{dictLookup}
+\presentmethod{epdf}{Object}{dictLookupNF}
+\presentmethod{epdf}{Object}{dictGetKey}
+\presentmethod{epdf}{Object}{dictGetVal}
+\presentmethod{epdf}{Object}{dictGetValNF}
+\presentmethod{epdf}{Object}{streamIs}
+\presentmethod{epdf}{Object}{streamReset}
+\presentmethod{epdf}{Object}{streamGetChar}
+\presentmethod{epdf}{Object}{streamLookChar}
+\presentmethod{epdf}{Object}{streamGetPos}
+\presentmethod{epdf}{Object}{streamSetPos}
+\presentmethod{epdf}{Object}{streamGetDict}
+
+--- Page methods:
+
+\presentmethod{epdf}{Page}{isOK}
+\presentmethod{epdf}{Page}{getNum}
+\presentmethod{epdf}{Page}{getMediaBox}
+\presentmethod{epdf}{Page}{getCropBox}
+\presentmethod{epdf}{Page}{isCropped}
+\presentmethod{epdf}{Page}{getMediaWidth}
+\presentmethod{epdf}{Page}{getMediaHeight}
+\presentmethod{epdf}{Page}{getCropWidth}
+\presentmethod{epdf}{Page}{getCropHeight}
+\presentmethod{epdf}{Page}{getBleedBox}
+\presentmethod{epdf}{Page}{getTrimBox}
+\presentmethod{epdf}{Page}{getArtBox}
+\presentmethod{epdf}{Page}{getRotate}
+\presentmethod{epdf}{Page}{getLastModified}
+\presentmethod{epdf}{Page}{getBoxColorInfo}
+\presentmethod{epdf}{Page}{getGroup}
+\presentmethod{epdf}{Page}{getMetadata}
+\presentmethod{epdf}{Page}{getPieceInfo}
+\presentmethod{epdf}{Page}{getSeparationInfo}
+\presentmethod{epdf}{Page}{getResourceDict}
+\presentmethod{epdf}{Page}{getAnnots}
+\presentmethod{epdf}{Page}{getLinks}
+\presentmethod{epdf}{Page}{getContents}
+
+--- PDFDoc methods:
+
+\presentmethod{epdf}{PDFDoc}{isOK}
+\presentmethod{epdf}{PDFDoc}{getErrorCode}
+\presentmethod{epdf}{PDFDoc}{getErrorCodeName}
+\presentmethod{epdf}{PDFDoc}{getFileName}
+\presentmethod{epdf}{PDFDoc}{getXRef}
+\presentmethod{epdf}{PDFDoc}{getCatalog}
+\presentmethod{epdf}{PDFDoc}{getPageMediaWidth}
+\presentmethod{epdf}{PDFDoc}{getPageMediaHeight}
+\presentmethod{epdf}{PDFDoc}{getPageCropWidth}
+\presentmethod{epdf}{PDFDoc}{getPageCropHeight}
+\presentmethod{epdf}{PDFDoc}{getNumPages}
+\presentmethod{epdf}{PDFDoc}{readMetadata}
+\presentmethod{epdf}{PDFDoc}{getStructTreeRoot}
+\presentmethod{epdf}{PDFDoc}{findPage}
+\presentmethod{epdf}{PDFDoc}{getLinks}
+\presentmethod{epdf}{PDFDoc}{findDest}
+\presentmethod{epdf}{PDFDoc}{isEncrypted}
+\presentmethod{epdf}{PDFDoc}{okToPrint}
+\presentmethod{epdf}{PDFDoc}{okToChange}
+\presentmethod{epdf}{PDFDoc}{okToCopy}
+\presentmethod{epdf}{PDFDoc}{okToAddNotes}
+\presentmethod{epdf}{PDFDoc}{isLinearized}
+\presentmethod{epdf}{PDFDoc}{getDocInfo}
+\presentmethod{epdf}{PDFDoc}{getDocInfoNF}
+\presentmethod{epdf}{PDFDoc}{getPDFMajorVersion}
+\presentmethod{epdf}{PDFDoc}{getPDFMinorVersion}
+
+--- PDFRectangle methods:
+
+\presentmethod{epdf}{PDFRectangle}{isValid}
+
+--- Stream methods:
+
+\presentmethod{epdf}{Stream}{getKind}
+\presentmethod{epdf}{Stream}{getKindName}
+\presentmethod{epdf}{Stream}{reset}
+\presentmethod{epdf}{Stream}{close}
+\presentmethod{epdf}{Stream}{getChar}
+\presentmethod{epdf}{Stream}{lookChar}
+\presentmethod{epdf}{Stream}{getRawChar}
+\presentmethod{epdf}{Stream}{getUnfilteredChar}
+\presentmethod{epdf}{Stream}{unfilteredReset}
+\presentmethod{epdf}{Stream}{getPos}
+\presentmethod{epdf}{Stream}{isBinary}
+\presentmethod{epdf}{Stream}{getUndecodedStream}
+\presentmethod{epdf}{Stream}{getDict}
+
+--- XRef methods:
+
+\presentmethod{epdf}{XRef}{isOK}
+\presentmethod{epdf}{XRef}{getErrorCode}
+\presentmethod{epdf}{XRef}{isEncrypted}
+\presentmethod{epdf}{XRef}{okToPrint}
+\presentmethod{epdf}{XRef}{okToPrintHighRes}
+\presentmethod{epdf}{XRef}{okToChange}
+\presentmethod{epdf}{XRef}{okToCopy}
+\presentmethod{epdf}{XRef}{okToAddNotes}
+\presentmethod{epdf}{XRef}{okToFillForm}
+\presentmethod{epdf}{XRef}{okToAccessibility}
+\presentmethod{epdf}{XRef}{okToAssemble}
+\presentmethod{epdf}{XRef}{getCatalog}
+\presentmethod{epdf}{XRef}{fetch}
+\presentmethod{epdf}{XRef}{getDocInfo}
+\presentmethod{epdf}{XRef}{getDocInfoNF}
+\presentmethod{epdf}{XRef}{getNumObjects}
+\presentmethod{epdf}{XRef}{getRootNum}
+\presentmethod{epdf}{XRef}{getRootGen}
+\presentmethod{epdf}{XRef}{getSize}
+\presentmethod{epdf}{XRef}{getTrailerDict}
+
+%***********************************************************************
+
+\section{Font table}
+
+\presentfunction{font}{read_tfm}
+\presentfunction{font}{read_vf}
+\presentfunction{font}{getfont}
+\presentfunction{font}{setfont}
+\presentfunction{font}{frozen}
+\presentfunction{font}{define}
+\presentfunction{font}{nextid}
+\presentfunction{font}{id}
+\presentfunction{font}{current}
+\presentfunction{font}{max}
+\presentfunction{font}{each}
+
+\section{Font loader table}
+
+\presentfunction{fontloader}{info}
+
+\afunction{fontloader.info} returned information:
+\starttabulate[|lf\ss|lf\ss|p|]
+\NC \ssbf key \NC \bf type \NC \bf explanation \NC\NR
+\NC fontname \NC string \NC the \POSTSCRIPT\ name of the font\NC\NR
+\NC fullname \NC string \NC the formal name of the font\NC\NR
+\NC familyname \NC string \NC the family name this font belongs to\NC\NR
+\NC weight \NC string \NC a string indicating the color value of the font\NC\NR
+\NC version \NC string \NC the internal font version\NC\NR
+\NC italicangle \NC float \NC the slant angle\NC\NR
+\stoptabulate
+
+\presentfunction{fontloader}{open}
+
+Listing all of the substructure returned from
+\afunction{fontloader.open} would take too much room, see the big
+reference manual.
+
+\presentfunction{fontloader}{apply_featurefile}
+\presentfunction{fontloader}{apply_afmfile}
+
+
+\section{Image table}
+
+Full list of \type{<image>} object fields:
+\starttabulate[|lf\ss|lf\ss|p|]
+\NC \bf field name\NC \bf type \NC description \NC \NR
+\NC depth \NC number \NC the image depth for \LUATEX\ (in scaled points)\NC \NR
+\NC height \NC number \NC the image height for \LUATEX\ (in scaled points)\NC \NR
+\NC width \NC number \NC the image width for \LUATEX\ (in scaled points)\NC \NR
+\NC transform \NC number \NC the image transform, integer number 0..7\NC \NR
+\NC attr \NC string \NC the image attributes for \LUATEX \NC \NR
+\NC filename \NC string \NC the image file name \NC \NR
+\NC stream \NC string \NC the raw stream data for an \type{/Xobject} \type{/Form} object\NC \NR
+\NC page \NC ?? \NC the identifier for the requested image
+ page (type is number or string,
+ default is the number 1)\NC \NR
+\NC pagebox \NC string \NC the requested bounding box,
+ one of \type {none}, \type {media}, \type {crop}, \type {bleed}, \type {trim}, \type {art} \NC \NR
+\NC bbox \NC table \NC table with 4 boundingbox dimensions \type{llx}, \type{lly},
+ \type{urx}, and \type{ury} overruling the \type{pagebox} entry\NC \NR
+\NC filepath \NC string \NC the full (expanded) file name of the image \NC \NR
+\NC colordepth \NC number \NC the number of bits used by the color space \NC \NR
+\NC colorspace \NC number \NC the color space object number \NC \NR
+\NC imagetype \NC string \NC one of \type {pdf}, \type {png}, \type {jpg}, \type {jbig2}, or \type{nil} \NC \NR
+\NC objnum \NC number \NC the \PDF\ image object number \NC \NR
+\NC index \NC number \NC the \PDF\ image name suffix \NC \NR
+\NC pages \NC number \NC the total number of available pages \NC \NR
+\NC xsize \NC number \NC the natural image width \NC \NR
+\NC ysize \NC number \NC the natural image height \NC \NR
+\NC xres \NC number \NC the horizontal natural image resolution (in \DPI) \NC \NR
+\NC yres \NC number \NC the vertical natural image resolution (in \DPI) \NC \NR
+\stoptabulate
+
+\presentfunction{img}{new}
+\presentfunction{img}{keys}
+\presentfunction{img}{scan}
+\presentfunction{img}{copy}
+\presentfunction{img}{write}
+\presentfunction{img}{immediatewrite}
+\presentfunction{img}{node}
+\presentfunction{img}{types}
+\presentfunction{img}{boxes}
+
+\section{Kpathsea table}
+
+\presentfunction{kpse}{set_program_name}
+\presentfunction{kpse}{new}
+\presentfunction{kpse}{find_file}
+\presentfunction{kpse}{lookup}
+
+The \afunction{kpse.lookup} options match commandline arguments from
+\type{kpsewhich}:
+
+\starttabulate[|lf\ss|lf\ss|p|]
+\NC \ssbf key \NC \ssbf type \NC \ssbf description \NC \NR
+\NC debug \NC number \NC set debugging flags for this lookup\NC \NR
+\NC format \NC string \NC use specific file type (see list above)\NC \NR
+\NC dpi \NC number \NC use this resolution for this lookup; default 600\NC \NR
+\NC path \NC string \NC search in the given path\NC \NR
+\NC all \NC boolean \NC output all matches, not just the first\NC \NR
+\NC must-exist\NC boolean \NC search the disk as well as ls-R if necessary\NC \NR
+\NC mktexpk \NC boolean \NC disable/enable mktexpk generation for this lookup\NC \NR
+\NC mktextex \NC boolean \NC disable/enable mktextex generation for this lookup\NC \NR
+\NC mktexmf \NC boolean \NC disable/enable mktexmf generation for this lookup\NC \NR
+\NC mktextfm \NC boolean \NC disable/enable mktextfm generation for this lookup\NC \NR
+\NC subdir \NC string
+ or table \NC only output matches whose directory part
+ ends with the given string(s) \NC \NR
+\stoptabulate
+
+\presentfunction{kpse}{init_prog}
+\presentfunction{kpse}{readable_file}
+\presentfunction{kpse}{expand_path}
+\presentfunction{kpse}{expand_var}
+\presentfunction{kpse}{expand_braces}
+\presentfunction{kpse}{show_path}
+\presentfunction{kpse}{var_value}
+\presentfunction{kpse}{version}
+
+\section{Language table}
+\presentfunction{lang}{new}
+\presentfunction{lang}{id}
+\presentfunction{lang}{hyphenation}
+\presentfunction{lang}{clear_hyphenation}
+\presentfunction{lang}{clean}
+\presentfunction{lang}{patterns}
+\presentfunction{lang}{clear_patterns}
+\presentfunction{lang}{prehyphenchar}
+\presentfunction{lang}{posthyphenchar}
+\presentfunction{lang}{preexhyphenchar}
+\presentfunction{lang}{postexhyphenchar}
+\presentfunction{lang}{hyphenate}
+
+\section{Lua table}
+
+There are 65536 bytecode registers, that are saved in the format file.
+Assignments are always global.
+
+\presentfunction{lua}{getbytecode}
+\presentfunction{lua}{setbytecode}
+
+They also be accessed via the virtual array \type{lua.bytecode[]}.
+
+The virtual array \type{lua.name[]} can be used to give names to lua
+chunks. To use \type{lua.name[1]}, set \type{lua.name[1] = 'testname'} and \type{\directlua1{rubbish}}.
+
+\section{Metapost table}
+
+\presentfunction{mplib}{version}
+
+\presentfunction{mplib}{new}
+\presentfunction{mp}{execute}
+\presentfunction{mp}{finish}
+
+The return value of \type{mp:execute} and \type{mp:finish} is a table
+with a few possible keys (only \type {status} is always guaranteed to be present).
+
+\starttabulate[|lf\ss|lf\ss|p|]
+\NC log \NC string \NC output to the \quote {log} stream \NC \NR
+\NC term \NC string \NC output to the \quote {term} stream \NC \NR
+\NC error \NC string \NC output to the \quote {error} stream (only used for \quote {out of memory})\NC \NR
+\NC status \NC number \NC the return value: 0=good, 1=warning, 2=errors, 3=fatal error \NC \NR
+\NC fig \NC table \NC an array of generated figures (if any)\NC \NR
+\stoptabulate
+
+Handling of \type{fig} objects would take too much room here, please
+see the big reference manual.
+
+\presentfunction{mp}{statistics}
+\presentfunction{mp}{char_width}
+\presentfunction{mp}{char_height}
+\presentfunction{mp}{char_depth}
+
+\section{Node table}
+
+\presentfunction{node}{types}
+\presentfunction{node}{whatsits}
+\presentfunction{node}{is_node}
+\presentfunction{node}{id}
+\presentfunction{node}{subtype}
+\presentfunction{node}{type}
+\presentfunction{node}{fields}
+\presentfunction{node}{has_field}
+\presentfunction{node}{new}
+\presentfunction{node}{free}
+\presentfunction{node}{flush_list}
+\presentfunction{node}{copy}
+\presentfunction{node}{copy_list}
+\presentfunction{node}{hpack}
+\presentfunction{node}{vpack}
+\presentfunction{node}{dimensions}
+\presentfunction{node}{mlist_to_hlist}
+\presentfunction{node}{slide}
+\presentfunction{node}{tail}
+\presentfunction{node}{length}
+\presentfunction{node}{count}
+\presentfunction{node}{traverse}
+\presentfunction{node}{traverse_id}
+\presentfunction{node}{remove}
+\presentfunction{node}{insert_before}
+\presentfunction{node}{insert_after}
+\presentfunction{node}{first_glyph}
+\presentfunction{node}{ligaturing}
+\presentfunction{node}{kerning}
+\presentfunction{node}{unprotect_glyphs}
+\presentfunction{node}{protect_glyphs}
+\presentfunction{node}{last_node}
+\presentfunction{node}{write}
+\presentfunction{node}{protrusion_skippable}
+\presentfunction{node}{next}
+\presentfunction{node}{prev}
+
+\presentfunction{node}{has_attribute}
+\presentfunction{node}{set_attribute}
+\presentfunction{node}{unset_attribute}
+
+\section{Pdf table}
+\presentfunction{pdf}{immediateobj}
+\presentfunction{pdf}{mapfile}
+\presentfunction{pdf}{mapline}
+\presentfunction{pdf}{obj}
+\presentfunction{pdf}{refobj}
+\presentfunction{pdf}{pageref}
+\presentfunction{pdf}{print}
+\presentfunction{pdf}{reserveobj}
+\presentfunction{pdf}{registerannot}
+
+\section{Status table}
+\presentfunction{status}{list}
+
+The current list is:
+\starttabulate[|lf\ss|p|]
+\NC \ssbf key \NC \bf explanation \NC\NR
+\NC pdf_gone\NC written \PDF\ bytes \NC \NR
+\NC pdf_ptr\NC not yet written \PDF\ bytes \NC \NR
+\NC dvi_gone\NC written \DVI\ bytes \NC \NR
+\NC dvi_ptr\NC not yet written \DVI\ bytes \NC \NR
+\NC total_pages\NC number of written pages \NC \NR
+\NC output_file_name\NC name of the \PDF\ or \DVI\ file \NC \NR
+\NC log_name\NC name of the log file \NC \NR
+\NC banner\NC terminal display banner \NC \NR
+\NC var_used\NC variable (one|-|word) memory in use \NC \NR
+\NC dyn_used\NC token (multi|-|word) memory in use \NC \NR
+\NC str_ptr\NC number of strings \NC \NR
+\NC init_str_ptr\NC number of \INITEX\ strings \NC \NR
+\NC max_strings\NC maximum allowed strings \NC \NR
+\NC pool_ptr\NC string pool index \NC \NR
+\NC init_pool_ptr\NC \INITEX\ string pool index \NC \NR
+\NC pool_size\NC current size allocated for string characters \NC \NR
+\NC node_mem_usage\NC a string giving insight into currently used nodes\NC\NR
+\NC var_mem_max\NC number of allocated words for nodes\NC \NR
+\NC fix_mem_max\NC number of allocated words for tokens\NC \NR
+\NC fix_mem_end\NC maximum number of used tokens\NC \NR
+\NC cs_count\NC number of control sequences \NC \NR
+\NC hash_size\NC size of hash \NC \NR
+\NC hash_extra\NC extra allowed hash \NC \NR
+\NC font_ptr\NC number of active fonts \NC \NR
+\NC max_in_stack\NC max used input stack entries \NC \NR
+\NC max_nest_stack\NC max used nesting stack entries \NC \NR
+\NC max_param_stack\NC max used parameter stack entries \NC \NR
+\NC max_buf_stack\NC max used buffer position \NC \NR
+\NC max_save_stack\NC max used save stack entries \NC \NR
+\NC stack_size\NC input stack size \NC \NR
+\NC nest_size\NC nesting stack size \NC \NR
+\NC param_size\NC parameter stack size \NC \NR
+\NC buf_size\NC current allocated size of the line buffer \NC \NR
+\NC save_size\NC save stack size \NC \NR
+\NC obj_ptr\NC max \PDF\ object pointer \NC \NR
+\NC obj_tab_size\NC \PDF\ object table size \NC \NR
+\NC pdf_os_cntr\NC max \PDF\ object stream pointer \NC \NR
+\NC pdf_os_objidx\NC \PDF\ object stream index \NC \NR
+\NC pdf_dest_names_ptr\NC max \PDF\ destination pointer \NC \NR
+\NC dest_names_size\NC \PDF\ destination table size \NC \NR
+\NC pdf_mem_ptr\NC max \PDF\ memory used \NC \NR
+\NC pdf_mem_size\NC \PDF\ memory size \NC \NR
+\NC largest_used_mark\NC max referenced marks class \NC \NR
+\NC filename\NC name of the current input file \NC \NR
+\NC inputid\NC numeric id of the current input \NC \NR
+\NC linenumber\NC location in the current input file\NC \NR
+\NC lasterrorstring\NC last error string\NC \NR
+\NC luabytecodes\NC number of active \LUA\ bytecode registers\NC \NR
+\NC luabytecode_bytes\NC number of bytes in \LUA\ bytecode registers\NC \NR
+\NC luastate_bytes\NC number of bytes in use by \LUA\ interpreters\NC \NR
+\NC output_active\NC \type{true} if the \tex{output} routine is active\NC \NR
+\NC callbacks\NC total number of executed callbacks so far\NC \NR
+\NC indirect_callbacks\NC number of those that were themselves
+ a result of other callbacks (e.g. file readers)\NC \NR
+\NC luatex_svn\NC the luatex repository id (added in 0.51)\NC\NR
+\NC luatex_version\NC the luatex version number (added in 0.38)\NC\NR
+\NC luatex_revision\NC the luatex revision string (added in 0.38)\NC\NR
+\NC ini_version\NC \type{true} if this is an \INITEX\ run (added in 0.38)\NC\NR
+\stoptabulate
+
+\section{Typesetting table}
+
+\presentfunction{tex}{set}
+\presentfunction{tex}{get}
+
+Many of \LUATEX's internal parameters can be queried and set this way,
+but not nearly all. The big reference manual has an extensive list.
+
+\blank
+\presentfunction{tex}{setattribute}
+\presentfunction{tex}{getattribute}
+\presentfunction{tex}{setbox}
+\presentfunction{tex}{getbox}
+\presentfunction{tex}{setcount}
+\presentfunction{tex}{getcount}
+\presentfunction{tex}{setdimen}
+\presentfunction{tex}{getdimen}
+\presentfunction{tex}{setskip}
+\presentfunction{tex}{getskip}
+\presentfunction{tex}{settoks}
+\presentfunction{tex}{gettoks}
+\presentfunction{tex}{setcatcode}
+\presentfunction{tex}{getcatcode}
+\presentfunction{tex}{setlccode}
+\presentfunction{tex}{getlccode}
+\presentfunction{tex}{setsfcode}
+\presentfunction{tex}{getsfcode}
+\presentfunction{tex}{setuccode}
+\presentfunction{tex}{getuccode}
+\presentfunction{tex}{setmathcode}
+\presentfunction{tex}{getmathcode}
+\presentfunction{tex}{setdelcode}
+\presentfunction{tex}{getdelcode}
+
+In all the \afunction{tex.set...} functions above, the optional string is
+the literal \aliteral{global}. The items can also be accessed directly via virtual arrays:
+\type{tex.attributes[]}, \type{tex.box[]}, \type{tex.count[]}, \type{tex.dimen[]},
+\type{tex.skip[]}, \type{tex.toks[]}; \type{tex.catcode[]}, \type{tex.lccode[]},
+\type{tex.sfcode[]}, \type{tex.uccode[]}, \type{tex.mathcode[]}, \type{tex.delcode[]}.
+
+\blank
+
+\presentfunction{tex}{setmath}
+\presentfunction{tex}{getmath}
+
+\presentfunction{tex}{print}
+\presentfunction{tex}{sprint}
+\presentfunction{tex}{tprint}
+\presentfunction{tex}{write}
+\presentfunction{tex}{round}
+\presentfunction{tex}{scale}
+\presentfunction{tex}{sp}
+\presentfunction{tex}{definefont}
+\presentfunction{tex}{error}
+\presentfunction{tex}{enableprimitives}
+\presentfunction{tex}{extraprimitives}
+\presentfunction{tex}{primitives}
+\presentfunction{tex}{badness}
+\presentfunction{tex}{linebreak}
+
+The \afunction{tex.linebreak} parameters:
+
+\starttabulate[|lf\ss|lf\ss|p|]
+\NC \bf name \NC \bf type \NC \bf description \NC \NR
+\NC pardir \NC string \NC \NC \NR
+\NC pretolerance \NC number \NC \NC \NR
+\NC tracingparagraphs \NC number \NC \NC \NR
+\NC tolerance \NC number \NC \NC \NR
+\NC looseness \NC number \NC \NC \NR
+\NC hyphenpenalty \NC number \NC \NC \NR
+\NC exhyphenpenalty \NC number \NC \NC \NR
+\NC pdfadjustspacing \NC number \NC \NC \NR
+\NC adjdemerits \NC number \NC \NC \NR
+\NC pdfprotrudechars \NC number \NC \NC \NR
+\NC linepenalty \NC number \NC \NC \NR
+\NC lastlinefit \NC number \NC \NC \NR
+\NC doublehyphendemerits \NC number \NC \NC \NR
+\NC finalhyphendemerits \NC number \NC \NC \NR
+\NC hangafter \NC number \NC \NC \NR
+\NC interlinepenalty \NC number or table \NC if a table, then it is an array like \type{\interlinepenalties}\NC \NR
+\NC clubpenalty \NC number or table \NC if a table, then it is an array like \type{\clubpenalties}\NC \NR
+\NC widowpenalty \NC number or table \NC if a table, then it is an array like \type{\widowpenalties}\NC \NR
+\NC brokenpenalty \NC number \NC \NC \NR
+\NC emergencystretch \NC number \NC in scaled points \NC \NR
+\NC hangindent \NC number \NC in scaled points \NC \NR
+\NC hsize \NC number \NC in scaled points \NC \NR
+\NC leftskip \NC glue_spec node \NC \NC \NR
+\NC rightskip \NC glue_spec node \NC \NC \NR
+\NC pdfeachlineheight \NC number \NC in scaled points \NC \NR
+\NC pdfeachlinedepth \NC number \NC in scaled points \NC \NR
+\NC pdffirstlineheight \NC number \NC in scaled points \NC \NR
+\NC pdflastlinedepth \NC number \NC in scaled points \NC \NR
+\NC pdfignoreddimen \NC number \NC in scaled points \NC \NR
+\NC parshape \NC table \NC \NC \NR
+\stoptabulate
+
+
+The \afunction{tex.linebreak} returned table data:
+
+\starttabulate[|lf\ss|p|]
+\NC prevdepth \NC depth of the last line in the broken paragraph \NC \NR
+\NC prevgraf \NC number of lines in the broken paragraph \NC \NR
+\NC looseness \NC the actual looseness value in the broken paragraph \NC \NR
+\NC demerits \NC the total demerits of the chosen solution \NC \NR
+\stoptabulate
+
+\presentfunction{tex}{shipout}
+
+\blank
+The virtual table \type{tex.lists} contains the set of internal
+registers that keep track of building page lists.
+
+\starttabulate[|lf\ss|p|]
+\NC \bf field \NC \bf description \NC \NR
+\NC page_ins_head \NC circular list of pending insertions \NC \NR
+\NC contrib_head \NC the recent contributions \NC \NR
+\NC page_head \NC the page-so-far \NC \NR
+\NC hold_head \NC used for held-over items for next page\NC \NR
+\NC adjust_head \NC head of the current \tex{adjust} list \NC \NR
+\NC pre_adjust_head \NC head of the current \tex{adjust pre} list\NC \NR
+\stoptabulate
+
+\blank
+The virtual table \type{tex.nest} contains the currently active
+semantic nesting state. It has two main parts: an zero-based array of
+userdata for the semantic nest itself, and the numerical value
+\type{tex.nest.ptr}. Known fields:
+
+\starttabulate[|lf\ss|lf\ss|l|p|]
+\NC \ssbf key \NC \bf type \NC \bf modes \NC \bf explanation \NC\NR
+\NC mode \NC number \NC all \NC The current mode.
+ 0 = no mode,
+ 1 = vertical,
+ 127 = horizontal,
+ 253 = display math.
+ $-1$ = internal vertical,
+ $-127$ = restricted horizontal,
+ $-253$ = inline math.\NC\NR
+\NC modeline \NC number \NC all \NC source input line where this mode was entered in,
+ negative inside the output routine.\NC\NR
+\NC head \NC node \NC all \NC the head of the current list\NC\NR
+\NC tail \NC node \NC all \NC the tail of the current list\NC\NR
+\NC prevgraf \NC number \NC vmode \NC number of lines in the previous paragraph\NC\NR
+\NC prevdepth \NC number \NC vmode \NC depth of the previous paragraph\NC\NR
+\NC spacefactor \NC number \NC hmode \NC the current space factor\NC\NR
+\NC dirs \NC node \NC hmode \NC internal use only\NC\NR
+\NC noad \NC node \NC mmode \NC internal use only\NC\NR
+\NC delimptr \NC node \NC mmode \NC internal use only\NC\NR
+\NC mathdir \NC boolean \NC mmode \NC true when during math processing the \type{\mathdir} is not
+ the same as the surrounding \type{\textdir}\NC\NR
+\NC mathstyle \NC number \NC mmode \NC the current \type{\mathstyle} \NC\NR
+\stoptabulate
+
+
+\section{Texconfig table}
+
+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.
+
+\starttabulate[|lf\ss|lf\ss|l|p|]
+\NC \ssbf key \NC \bf type \NC \bf default \NC \bf explanation \NC\NR
+\NC kpse_init \NC boolean \NC true \NC \type{false} totally disables \KPATHSEA\ initialisation\NC \NR
+\NC shell_escape \NC string\NC \NC cf.\ web2c docs \NC\NR
+\NC shell_escape_commands \NC string\NC \NC cf.\ web2c docs \NC\NR
+\NC string_vacancies \NC number\NC 75000\NC cf.\ web2c docs \NC \NR
+\NC pool_free \NC number\NC 5000\NC cf.\ web2c docs \NC \NR
+\NC max_strings \NC number\NC 15000\NC cf.\ web2c docs \NC \NR
+\NC strings_free \NC number\NC 100\NC cf.\ web2c docs \NC \NR
+\NC nest_size \NC number\NC 50\NC cf.\ web2c docs \NC \NR
+\NC max_in_open \NC number\NC 15\NC cf.\ web2c docs \NC \NR
+\NC param_size \NC number\NC 60\NC cf.\ web2c docs \NC \NR
+\NC save_size \NC number\NC 4000\NC cf.\ web2c docs \NC \NR
+\NC stack_size \NC number\NC 300\NC cf.\ web2c docs \NC \NR
+\NC dvi_buf_size \NC number\NC 16384\NC cf.\ web2c docs \NC \NR
+\NC error_line \NC number\NC 79\NC cf.\ web2c docs \NC \NR
+\NC half_error_line \NC number\NC 50\NC cf.\ web2c docs \NC \NR
+\NC max_print_line \NC number\NC 79\NC cf.\ web2c docs \NC \NR
+\NC hash_extra \NC number\NC 0\NC cf.\ web2c docs \NC \NR
+\NC pk_dpi \NC number\NC 72\NC cf.\ web2c docs \NC \NR
+\NC trace_file_names \NC boolean \NC true \NC \type{false} disables \TEX's normal file feedback\NC \NR
+\NC file_line_error \NC boolean \NC false \NC \type{file:line} style error messages\NC \NR
+\NC halt_on_error \NC boolean \NC false \NC abort run on the first encountered error\NC \NR
+\NC formatname \NC string \NC \NC if no format name was given
+ on the commandline, this will be used\NC \NR
+\NC jobname \NC string \NC \NC as \type{formatname}.\NC \NR
+\stoptabulate
+
+
+\section{IO table}
+\presentfunction{texio}{write}
+\presentfunction{texio}{write_nl}
+
+\section{Token table}
+
+A token is represented in \LUA\ as a small table. For the moment, this
+table consists of three numeric entries:
+
+\starttabulate[|l|l|p|]
+\NC \bf index\NC \bf meaning \NC \bf description \NC \NR
+\NC 1 \NC command code \NC this is a value between~$0$ and~$130$\NC \NR
+\NC 2 \NC command modifier \NC this is a value between~$0$ and~$2^{21}$ \NC \NR
+\NC 3 \NC control sequence id \NC for commands that are not the result of control
+ sequences, like letters and characters, it is zero,
+ otherwise, it is a number pointing into the \quote
+ {equivalence table} \NC \NR
+\stoptabulate
+
+\presentfunction{token}{get_next}
+\presentfunction{token}{is_expandable}
+\presentfunction{token}{expand}
+\presentfunction{token}{is_activechar}
+\presentfunction{token}{create}
+\presentfunction{token}{command_name}
+\presentfunction{token}{command_id}
+\presentfunction{token}{csname_name}
+\presentfunction{token}{csname_id}
+
+
+\stopcolumns
+\stoptext