Skip to content
Snippets Groups Projects
Commit 2e7a6181 authored by Luigi Scarso's avatar Luigi Scarso
Browse files

sync with experimental

parent 4d4b2cda
Branches
Tags
No related merge requests found
% language=uk
\environment luatex-style
\environment luatex-logos
......@@ -32,17 +34,15 @@ it may be needed to put these assignments before the above line:
\catcode `\}=2
\stoptyping
More fine-grained primitives control is possible, you can look up the details in
More fine|-|grained primitives control is possible, you can look up the details in
\in {section} [luaprimitives]. For simplicity's sake, this manual assumes that you
have executed the \type {\directlua} command as given above.
The startup behavior documented above is considered stable in the sense that
there will not be backward|-|incompatible changes any more. However, we can
decide to promite some primitives to the \LUATEX\ namespace. For instance, after
version 0.80.1 we promoted some rather generic \PDFTEX\ primitives to core
\LUATEX\ ones, and the ones inherited frome \ALEPH\ (\OMEGA) are also promoted.
Effectively this means that we now have the \type {tex}, \type {etex}, \type
{luatex} and \type {pdftex} (sub)sets left.
The startup behaviour documented above is considered stable in the sense that
there will not be backward|-|incompatible changes any more. We have promoted some
rather generic \PDFTEX\ primitives to core \LUATEX\ ones, and the ones inherited
frome \ALEPH\ (\OMEGA) are also promoted. Effectively this means that we now have
the \type {tex}, \type {etex}, \type {luatex} and \type {pdftex} (sub)sets left.
\section{Version information}
......@@ -327,7 +327,7 @@ can break up \LUATEX\ pretty bad. If you are not careful while working with the
node list interface, you may even end up with assertion errors from within the
\TEX\ portion of the executable.
The behavior documented in the above subsection is considered stable in the sense
The behaviour documented in the above subsection is considered stable in the sense
that there will not be backward-incompatible changes any more.
\subsection{\type {\latelua}}
......@@ -478,7 +478,7 @@ preambles.
Catcode tables are a new feature that allows you to switch to a predefined
catcode regime in a single statement. You can have a practically unlimited number
of different tables. This subsystem is backward compatible: if you never use the
following commands, your document will not notice any difference in behavior
following commands, your document will not notice any difference in behaviour
compared to traditional \TEX. The contents of each catcode table is independent
from any other catcode tables, and their contents is stored and retrieved from
the format file.
......@@ -565,8 +565,9 @@ If this new integer parameter is non|-|zero, then \LUATEX\ will not complain
about non-expandable commands appearing in the middle of a \type {\ifcsname}
expansion. Instead, it will keep getting expanded tokens from the input until it
encounters an \type {\endcsname} command. Use with care! This command is
experimental: if the input expansion is unbalanced wrt. \type {\csname} \ldots
\type {\endcsname} pairs, the \LUATEX\ process may hang indefinitely.
experimental: if the input expansion is unbalanced with respect to \type
{\csname} \ldots \type {\endcsname} pairs, the \LUATEX\ process may hang
indefinitely.
\subsection{\type {\suppressoutererror}}
......@@ -597,7 +598,7 @@ a $
\section{\type {\matheqnogapstep}}
By default \TEX\ will add one quad between the equation and the number. This is
hardcoded. A new primitive can control this:
hard coded. A new primitive can control this:
\startsyntax
\matheqnogapstep = 1000
......
% language=uk
\environment luatex-style
\environment luatex-logos
......@@ -54,7 +56,7 @@ The top|-|level keys in the table are as follows:
\NC \NR
\NC psname \NC no \NC no \NC yes \NC string \NC
actual (\POSTSCRIPT) name (this is the PS fontname in the incoming font
source, also used as fontname identifier in the \PDF\ output, new in 0.43)
source, also used as fontname identifier in the \PDF\ output)
\NC \NR
\NC fullname \NC no \NC no \NC yes \NC string \NC
output font name, used as a fallback in the \PDF\ output
......@@ -110,16 +112,15 @@ The top|-|level keys in the table are as follows:
the \type {\pdffontattr}
\NC \NR
\NC cache \NC no \NC no \NC yes \NC string \NC
this key controls caching of the lua table on the \type {tex} end. \type {yes}:
use a reference to the table that is passed to \LUATEX\ (this is the
default). \type {no}: don't store the table reference, don't cache any lua
data for this font. \type {renew}: don't store the table reference, but save a
reference to the table that is created at the first access to one of its
fields in font.fonts. (new in 0.40.0, before that caching was always
\type {yes}). Note: the saved reference is thread-local, so be careful when
you are using coroutines: an error will be thrown if the table has been
cached in one thread, but you reference it from another thread ($\approx$
coroutine)
this key controls caching of the \LUA\ table on the \type {tex} end. \type
{yes}: use a reference to the table that is passed to \LUATEX\ (this is the
default). \type {no}: don't store the table reference, don't cache any \LUA\
data for this font. \type {renew}: don't store the table reference, but save
a reference to the table that is created at the first access to one of its
fields in font.fonts. Note: the saved reference is thread-local, so be
careful when you are using coroutines: an error will be thrown if the table
has been cached in one thread, but you reference it from another thread
($\approx$ coroutine)
\NC \NR
\NC nomath \NC no \NC no \NC yes \NC boolean\NC
this key allows a minor speedup for text fonts. if it is present and true,
......@@ -241,11 +242,11 @@ The following top|-|level keys can be present inside a character hash:
\NC left_protruding \NC no \NC no \NC maybe \NC number \NC character's \type {\lpcode} \NC\NR
\NC right_protruding \NC no \NC no \NC maybe \NC number \NC character's \type {\rpcode} \NC\NR
\NC expansion_factor \NC no \NC no \NC maybe \NC number \NC character's \type {\efcode} \NC\NR
\NC tounicode \NC no \NC no \NC maybe \NC string \NC character's Unicode equivalent(s), in UTF-16BE hexadecimal format\NC\NR
\NC next \NC no \NC yes \NC yes \NC number \NC the \quote{next larger} character index \NC\NR
\NC tounicode \NC no \NC no \NC maybe \NC string \NC character's \UNICODE\ equivalent(s), in \UTF|-|16BE hexadecimal format \NC\NR
\NC next \NC no \NC yes \NC yes \NC number \NC the \quote {next larger} character index \NC\NR
\NC extensible \NC no \NC yes \NC yes \NC table \NC the constituent parts of an extensible recipe \NC\NR
\NC vert_variants \NC no \NC no \NC yes \NC table \NC constituent parts of a vertical variant set\NC \NR
\NC horiz_variants \NC no \NC no \NC yes \NC table \NC constituent parts of a horizontal variant set\NC \NR
\NC vert_variants \NC no \NC no \NC yes \NC table \NC constituent parts of a vertical variant set \NC \NR
\NC horiz_variants \NC no \NC no \NC yes \NC table \NC constituent parts of a horizontal variant set \NC \NR
\NC kerns \NC no \NC yes \NC yes \NC table \NC kerning information \NC\NR
\NC ligatures \NC no \NC yes \NC yes \NC table \NC ligaturing information \NC\NR
\NC commands \NC yes \NC no \NC yes \NC array \NC virtual font commands \NC\NR
......@@ -271,13 +272,13 @@ entry for the \PDF\ font (or font subset) based on the character|-|level \type
{tounicode} strings, where they are available. If a character does not have a
sensible \UNICODE\ equivalent, do not provide a string either (no empty strings).
If the font-level \type {tounicode} is not set, then \LUATEX\ will build up \type
If the font level \type {tounicode} is not set, then \LUATEX\ will build up \type
{/ToUnicode} based on the \TEX\ code points you used, and any character-level
\type {tounicodes} will be ignored. {\it At the moment, the string format is
exactly the format that is expected by Adobe \CMAP\ files (\UTF-16BE in
hexadecimal encoding), minus the enclosing angle brackets. This may change in the
future.} Small example: the \type {tounicode} for a \type {fi} ligature would be
\type {00660069}.
\type {tounicodes} will be ignored. The string format is exactly the format that
is expected by Adobe \CMAP\ files (\UTF-16BE in hexadecimal encoding), minus the
enclosing angle brackets. Small example: the \type {tounicode} for a \type {fi}
ligature would be \type {00660069}. When you pass a number the conversion will be
done for you.
The presence of \type {extensible} will overrule \type {next}, if that is also
present. It in in turn can be overruled by \type {vert_variants}.
......@@ -301,7 +302,7 @@ Each of those components is itself a hash of up to five keys:
\NC extender \NC number \NC One (1) if this part is repeatable, zero (0) otherwise. \NC \NR
\NC start \NC number \NC Maximum overlap at the starting side (in scaled points). \NC \NR
\NC end \NC number \NC Maximum overlap at the ending side (in scaled points). \NC \NR
\NC advance \NC number \NC Total advance width of this item (can be zero or missing,
\NC advance \NC number \NC The total advance width of this item (can be zero or missing,
then the natural size of the glyph for character \type {component}
is used). \NC \NR
\stoptabulate
......@@ -390,7 +391,7 @@ and \TRUETYPE\ fonts loaded via \LUA. For \TYPEONE\ fonts, you have to set \type
supported at all.
If no special care is needed, \LUATEX\ currently falls back to the
mapfile|-|based solution used by \PDFTEX\ and \DVIPS. This behavior will be
mapfile|-|based solution used by \PDFTEX\ and \DVIPS. This behaviour will be
removed in the future, when the existing code becomes integrated in the new
subsystem.
......@@ -495,7 +496,7 @@ fonts = {
says that the first referenced font (index 1) in this virtual font is \type
{ptrmr8a} loaded at 10pt, and the second is \type {psyr} loaded at a little over
9pt. The third one is previously defined font that is known to \LUATEX\ as fontid
9pt. The third one is previously defined font that is known to \LUATEX\ as font id
\quote {38}.
The array index numbers are used by the character command definitions that are
......
% language=uk
\environment luatex-style
\environment luatex-logos
......@@ -6,40 +8,36 @@
\startchapter[title=Introduction]
This book will eventually become the reference manual of \LUATEX. At the moment,
it simply reports the behavior of the executable matching the snapshot or beta
it simply reports the behaviour of the executable matching the snapshot or beta
release date in the title page. We don't claim it is complete and we assume that
the reader knows about \TEX\ as described in \quotation {The \TEX\ Book}, the
\quotation {\ETEX\ manual}, the \quotation {\PDFTEX\ manual}, etc. Additional
reference material is published in journals of user groups and \CONTEXT\ related
documentation.
Features may come and go. The current version of \LUATEX\ can be used for
production (in fact it is used in production by the authors) but users cannot
depend on complete stability, nor on functionality staying the same. This means
that when you update your binary, you also need to check if something fundamental
has changed. Normally this is communicated in articles or messages to a mailing
list. We're still not at version 1 but when we reach that state the interface
will be stable. Of course we then can decide to move towards version 2 with
different properties.
This means that occasionally you can encounter functionality not described here.
Just consider that experimental then. They are either a playground or are being
tested in real situations first before being finalized. And we can equally well
kick them out again. When they stay we will descibe them in the manual or more
extensively in articles.
Successive versions brought new functionality, more control, some cleanup of
internals and experimental features evolved into stable ones or were dropped.
Already quite early \LUATEX\ could be used for production and it was used in
production by the authors. Successive versions sometimes demanded a adaption to
the \LUA\ interfacing, but the concepts were unchanged. The current version can
be considered stable in functionality and there will be no fundamental changes
between 0.90 and 1.00. Of course we then can decide to move towards version 2.00
with different properties.
Don't expect \LUATEX\ to behave the same as \PDFTEX ! Although the core
functionality of that 8 bit engine is present, \LUATEX\ can behave different due
to its wide (32 bit) characters, many registers and large memory support. There
is native \UTF\ input, support for large (more that 8 bit) fonts, and the math
machinery is tuned for \OPENTYPE\ math. Ther ei ssupport for directional
functionality of that 8 bit engine was starting point, it has been combined with
the directional support of \OMEGA\ (\ALEPH). But, \LUATEX\ can behave different
due to its wide (32 bit) characters, many registers and large memory support.
There is native \UTF\ input, support for large (more that 8 bit) fonts, and the
math machinery is tuned for \OPENTYPE\ math. There is support for directional
typesetting too. The log output can differ from other engines and will likely
differ more as we move forward. When you run plain \TEX\ for sure \LUATEX\ runs
slower than \PDFTEX\ but when you run for instance \CONTEXT\ it might be faster. But
in any case: 32 bit all||over combined with more features has a price.
slower than \PDFTEX\ but when you run for instance \CONTEXT\ \MKIV\ it might be
faster on more complex documents. But in any case: 32 bit all||over combined with
more features has a price.
\LUATEX\ consists of a number of interrelated but (still) distinguishable parts.
The organization of the source code is adapted so that it cna glue all these
The organization of the source code is adapted so that it can glue all these
components together. We continue cleaning up side effects of the accumulated
code in \TEX\ engines (especially code that is not needed any longer).
......@@ -47,53 +45,69 @@ code in \TEX\ engines (especially code that is not needed any longer).
\startitem
Most of \PDFTEX\ version 1.40.9, converted to C (with patches from later
releases). Some experimental features have been removed and some utility
macros are not inherited as their functionality can be done in \LUA. We
still use the \type {\pdf*} primitive namespace.
macros are not inherited as their functionality can be done in \LUA. The
number of backend interface commands has been reduced to a few. The
extensions are separated from the core (which we keep close to the
original \TEX\ core). Some mechanisms like expansion and protrusion can
behave different from the original due to some cleanup and optimization.
Some whatsit based functionality (image support and reusable content)
is now core functionality.
\stopitem
\startitem
The direction model and some other bits from \ALEPH\ RC4 (derived from
\OMEGA) is included. The related primitives are part of core \LUATEX.
\OMEGA) is included. The related primitives are part of core \LUATEX\ but
at the node level directional support is no longer based on so called
whatsits but on real nodes. In fact, whatsits are now only used for
backend specific extensions.
\stopitem
\startitem
We currently use \LUA\ 5.2.*. At some point we might decide to move to
5.3.* but that is yet to be decided.
\stopitem
\startitem
There are few \LUA\ libraries that we consider part of the core \LUA\
machinery.
Neither \ALEPH's I/O translation processes, nor tcx files, nor \ENCTEX\
can be used, these encoding|-|related functions are superseded by a
\LUA|-|based solution (reader callbacks). In a similar fashion all file
\IO\ can be intercepted.
\stopitem
\startitem
We currently use \LUA\ 5.2.*. At some point we might decide to move to
5.3.* but that is yet to be decided. There are few \LUA\ libraries that
we consider part of the core \LUA\ machinery, for instance \type {lpeg}.
There are additional \LUA\ libraries that interface to the internals of
\TEX.
\stopitem
\startitem
There are various \TEX\ extensions but only those that cannot be done
using the \LUA\ interfaces.
using the \LUA\ interfaces. The math machinery often has two code paths:
one traditional and the other more suitable for wide \OPENTYPE\ fonts.
\stopitem
\startitem
The fontloader uses parts of \FONTFORGE\ 2008.11.17 combined with
additionaL code specific for usage in a \TEX\ engine.
additionaL code specific for usage in a \TEX\ engine. We try to minimize
specific font support to what \TEX needs: character references and
dimensions and delegate everything else to \LUA. That way we keep \TEX\
open for extensions without touching the core.
\stopitem
\startitem
the \METAPOST\ library
The \METAPOST\ library is integral part of \LUATEX. This gives \TEX\ some
graphical capabilities using a relative high speed graphical subsystem.
Again \LUA\ is used as glue between the frontend and backend. Further
development of \METAPOST\ is closely related to \LUATEX.
\stopitem
\stopitemize
Neither \ALEPH's I/O translation processes, nor tcx files, nor \ENCTEX\ can be
used, these encoding|-|related functions are superseded by a \LUA|-|based
solution (reader callbacks). Most of the \PDFTEX\ backend is available but via a
bit different interface.
The yearly \TEXLIVE\ version is the stable version, any version between them are
to be considered beta. The beta releases are normally available via the \CONTEXT\
distribution channels (the garden and so called minimals).
\blank[1*big]
The yearly \TEXLIVE\ version is the stable version, any version between them is
considered beta. Keep in mind that new (or changed) features also need to be
reflected in the macro package that you use.
Hans Hagen, Harmut Henkel, \crlf
Taco Hoekwater \& Luigi Scarso
\blank[3*big]
\starttabulate
\NC \LUATEX \EQ Version \number\luatexversion.\luatexrevision \NC \NR
\NC \CONTEXT \EQ \contextversion \NC \NR
\NC timestamp \EQ \currentdate \NC \NR
\NC Version \EQ \currentdate \NC \NR
\NC \LUATEX \EQ Snapshot \number\luatexversion.\luatexrevision \NC \NR
\NC \CONTEXT \EQ \contextversion \NC \NR
\stoptabulate
\stopchapter
......
% language=uk
\environment luatex-style
\environment luatex-logos
......@@ -59,8 +61,8 @@ stored in the same place as other nodes like boxes and kerns and glues.
In \LUATEX, these two types are merged into one, somewhat larger structure called
a \type {glyph_node}. Besides having the old character, font, and component
fields, and the new special fields like \quote {attr}
(see~\in{section}[glyphnodes]), these nodes also contain:
fields, and the new special fields like \quote {attr} (see~\in {section}
[glyphnodes]), these nodes also contain:
\startitemize
......@@ -153,7 +155,7 @@ but rejected because in practice the current approach is sufficient and it would
not be compatible anyway.
Beware: the values are always saved in the format, independent of the setting
of \type {\savinghyphcodes} at the mnoment the format is dumped.
of \type {\savinghyphcodes} at the moment the format is dumped.
\section{The main control loop}
......@@ -173,10 +175,10 @@ achieve the same effect.
This change of meaning did happen with \type {\char}, that now generates \quote
{glyph} nodes with a character subtype. In traditional \TEX\ there was a strong
relationship betwene the 8|-|bit input encoding, hyphenation and glyph staken
relationship between the 8|-|bit input encoding, hyphenation and glyphs taken
from a font. In \LUATEX\ we have \UTF\ input, and in most cases this maps
directly to a character in a font, apart from glyph replacement in the font
engine. If you want to access arbitrary glyphs in a font directly you can alwasy
engine. If you want to access arbitrary glyphs in a font directly you can always
use \LUA\ to do so, because fonts are available as \LUA\ table.
Second, all the results of processing in math mode eventually become nodes with
......@@ -207,7 +209,7 @@ control loop.
The only use \LUATEX\ has for \type {\hyphenchar} is at the check whether a word
should be considered for hyphenation at all. If the \type {\hyphenchar} of the font
attached to the first character node in a word is negative, then hyphenation of
that word is abandoned immediately. {\bf This behavior is added for backward
that word is abandoned immediately. {\bf This behaviour is added for backward
compatibility only, and the use of \type {\hyphenchar=-1} as a means of
preventing hyphenation should not be used in new \LUATEX\ documents.}
......@@ -294,7 +296,7 @@ speed gain would be lost if it had to interpret command sequences while doing so
It is possible to specify extra hyphenation points in compound words by using
\type {{-}{}{-}} for the explicit hyphen character (replace \type {-} by the
actual explicit hyphen character if needed). For example, this matches the word
\quote {multi|-|word|-|boundaries} and allows an extra break inbetweem \quote
\quote {multi|-|word|-|boundaries} and allows an extra break inbetween \quote
{boun} and \quote {daries}:
\starttyping
......@@ -353,8 +355,8 @@ Differences between \LUATEX\ and \TEX82 that are a direct result of that:
discretionaries (instead of \TEX82's empty discretionary).
\stopitem
\startitem
The value of the two counters related to hyphenation, \type {hyphenpenalty}
and \type {exhyphenpenalty}, are now stored in the discretionary nodes. This
The value of the two counters related to hyphenation, \type {\hyphenpenalty}
and \type {\exhyphenpenalty}, are now stored in the discretionary nodes. This
permits a local overload for explicit \type {\discretionary} commands. The
value current when the hyphenation pass is applied is used. When no callbacks
are used this is compatible with traditional \TEX. When you apply the \LUA\
......@@ -391,14 +393,14 @@ word boundary).
All languages start out with \type {\prehyphenchar=`\-}, \type {\posthyphenchar=0},
\type {\preexhyphenchar=0} and \type {\postexhyphenchar=0}. When you assign the
values of one of these four parameters, you are actually changing the settings
for the current \type {\language}, this behavior is compatible with \type {\patterns}
for the current \type {\language}, this behaviour is compatible with \type {\patterns}
and \type {\hyphenation}.
\LUATEX\ also hyphenates the first word in a paragraph. Words can be up to 256
characters long (up from 64 in \TEX82). Longer words generate an error right now,
but eventually either the limitation will be removed or perhaps it will become
possible to silently ignore the excess characters (this is what happens in
\TEX82, but there the behavior cannot be controlled).
\TEX82, but there the behaviour cannot be controlled).
If you are using the \LUA\ function \type {lang.hyphenate}, you should be aware
that this function expects to receive a list of \quote {character} nodes. It will
......
This diff is collapsed.
% language=uk
\environment luatex-style
\environment luatex-logos
......@@ -26,11 +28,11 @@ interpreter:
\stopitemize
In this mode, it will set \LUA's \type {arg[0]} to the found script name, pushing
preceding options in negative values and the rest of the commandline in the
preceding options in negative values and the rest of the command line in the
positive values, just like the \LUA\ interpreter.
\LUATEX\ will exit immediately after executing the specified \LUA\ script and is,
in effect, a somewhat bulky standalone \LUA\ interpreter with a bunch of extra
in effect, a somewhat bulky stand alone \LUA\ interpreter with a bunch of extra
preloaded libraries.
\subsection{\LUATEX\ as a \LUA\ byte compiler}
......@@ -38,18 +40,18 @@ preloaded libraries.
There are two situations that make \LUATEX\ behave like the \LUA\ byte compiler:
\startitemize[packed]
\startitem if a \type {--luaconly} option is given on the commandline, or \stopitem
\startitem if a \type {--luaconly} option is given on the command line, or \stopitem
\startitem if the executable is named \type {texluac} \stopitem
\stopitemize
In this mode, \LUATEX\ is exactly like \type {luac} from the standalone \LUA\
In this mode, \LUATEX\ is exactly like \type {luac} from the stand alone \LUA\
distribution, except that it does not have the \type {-l} switch, and that it
accepts (but ignores) the \type {--luaconly} switch.
\subsection{Other commandline processing}
When the \LUATEX\ executable starts, it looks for the \type {--lua} commandline
option. If there is no \type {--lua} option, the commandline is interpreted in a
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 in traditional \PDFTEX\ and \ALEPH. Some options are accepted
but have no consequence. The following command|-|line options are understood:
......@@ -59,7 +61,7 @@ but have no consequence. The following command|-|line options are understood:
\NC --safer \NC disable easily exploitable \LUA\ commands \NC\NR
\NC --nosocket \NC disable the \LUA\ socket library \NC\NR
\NC --help \NC display help and exit \NC\NR
\NC --ini \NC be iniluatex, for dumping formats \NC\NR
\NC --ini \NC be \type {iniluatex}, for dumping formats \NC\NR
\NC --interaction=STRING \NC set interaction mode: \type {batchmode}, \type {nonstopmode}
\type {scrollmode} or \type {errorstopmode} \NC \NR
\NC --halt-on-error \NC stop processing at the first error\NC \NR
......@@ -129,16 +131,16 @@ any other web2c-based typesetting engine, except that \LUATEX\ has a few extra
switches.
If the \type {--lua} option is present, \LUATEX\ will enter an alternative mode
of commandline processing in comparison to the standard web2c programs.
of command line processing in comparison to the standard web2c programs.
In this mode, a small series of actions is taken in order. First, it will parse
the commandline as usual, but it will only interpret a small subset of the
the command line as usual, but it will only interpret a small subset of the
options immediately: \type {--safer}, \type {--nosocket}, \type
{--[no-]shell-escape}, \type {--enable-write18}, \type {--disable-write18}, \type
{--shell-restricted}, \type {--help}, \type {--version}, and \type {--credits}.
Now it searches for the requested \LUA\ initialization script. If it cannot be
found using the actual name given on the commandline, a second attempt is made by
found using the actual name given on the command line, a second attempt is made by
prepending the value of the environment variable \type {LUATEXDIR}, if that
variable is defined in the environment.
......@@ -156,10 +158,10 @@ Then it checks the various safety switches. You can use those to disable some
Furthermore, it disables loading of compiled \LUA\ libraries and it makes \type
{io.open()} fail on files that are opened for anything besides reading.
When \LUATEX\ starts it set the locale to a neutral value. If for some reason you use
\type {os.locale}, you need to make sire you nil it afterwards because otherise it
can interfere with code that for instance generates dates. You can nil the
locale with
When \LUATEX\ starts it set the locale to a neutral value. If for some reason you
use \type {os.locale}, you need to make sure you \type {nil} it afterwards
because otherwise it can interfere with code that for instance generates dates.
You can nil the locale with
\starttyping
os.setlocale(nil.nil)
......@@ -174,15 +176,15 @@ make \type {io.popen()}, \type {os.execute}, \type {os.exec} and \type {os.spawn
adhere to the requested option.
Next the initialization script is loaded and executed. From within the script,
the entire commandline is available in the \LUA\ table \type {arg}, beginning with
the entire command line is available in the \LUA\ table \type {arg}, beginning with
\type {arg[0]}, containing the name of the executable. As consequence, the warning
about unrecognized option is suppressed.
Commandline processing happens very early on. So early, in fact, that none of
Command line processing happens very early on. So early, in fact, that none of
\TEX's initializations have taken place yet. For that reason, the tables that
deal with typesetting, like \type {tex}, \type {token}, \type {node} and
\type {pdf}, are off|-|limits during the execution of the startup file (they
are nilled). Special care is taken that \type {texio.write} and \type
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). See \in {chapter} [libraries]
......@@ -196,17 +198,17 @@ should not store anything in variables or within tables with these four global
names, as they will be overwritten completely.
We recommend you use the startup file only for your own \TEX|-|independent
initializations (if you need any), to parse the commandline, set values in the
initializations (if you need any), to parse the command line, set values in the
\type {texconfig} table, and register the callbacks you need.
\LUATEX\ allows some of the commandline options to be overridden by reading
\LUATEX\ allows some of the command line options to be overridden by reading
values from the \type {texconfig} table at the end of script execution (see the
description of the \type {texconfig} table later on in this document for more
details on which ones exactly).
Unless the \type {texconfig} table tells \LUATEX\ not to initialize \KPATHSEA\
at all (set \type {texconfig.kpse_init} to \type {false} for that), \LUATEX\
acts on some more commandline options after the initialization script is
acts on some more command line options after the initialization script is
finished: in order to initialize the built|-|in \KPATHSEA\ library properly,
\LUATEX\ needs to know the correct program name to use, and for that it needs to
check \type {--progname}, or \type {--ini} and \type {--fmt}, if \type
......@@ -270,7 +272,7 @@ In keeping with the other \TEX|-|like programs in \TEXLIVE, the two \LUA\ functi
{shell_escape} and|/|or \type {shell_escape_commands} in account. Whenever
\LUATEX\ is run with the assumed intention to typeset a document (and by that we
mean that it is called as \type {luatex}, as opposed to \type {texlua}, and that
the commandline option \type {--luaonly} was not given), it will only run the
the command line option \type {--luaonly} was not given), it will only run the
four functions above if the matching \type {texmf.cnf} variable(s) or their \type
{texconfig} (see \in {section} [texconfig]) counterparts allow execution of the
requested system command. In \quote {script interpreter} runs of \LUATEX, these
......@@ -370,7 +372,7 @@ The \type {os} library has a few extra functions and variables:
The set of consecutive values starting at integer~1 in the table are the
arguments that are passed on to the command (the value at index~1 becomes
\type {arg[0]}). The command is searched for in the execution path, so there
is normally no need to pass on a fully qualified pathname.
is normally no need to pass on a fully qualified path name.
If the argument is a string, then it is automatically converted into a table
by splitting on whitespace. In this case, it is impossible for the command
......@@ -483,7 +485,7 @@ LC_NUMERIC=C
\section {\LUA\ modules}
The implied use of the built|-|in Lua modules in this section is deprecated. If
The implied use of the built|-|in \LUA\ modules in this section is deprecated. If
you want to use one of these libraries, please start your source file with a
proper \type {require} line. At some point \LUATEX\ will switch to loading these
modules on demand.
......@@ -494,42 +496,40 @@ Some modules that are normally external to \LUA\ are statically linked in with
\startitemize
\startitem
\type {slnunicode}, from the \type {Selene} libraries, \hyphenatedurl
{http://luaforge.net/projects/sln}. (version 1.1) This library has been
slightly extended so that the \type {unicode.utf8.*} functions also accept the
first 256 values of plane~18. This is the range \LUATEX\ uses for raw binary
output, as explained above.
\type {slnunicode}, from the \type {selene} libraries, \hyphenatedurl
{http://luaforge.net/projects/sln}. This library has been slightly extended
so that the \type {unicode.utf8.*} functions also accept the first 256 values
of plane~18. This is the range \LUATEX\ uses for raw binary output, as
explained above.
\stopitem
\startitem
\type {luazip}, from the kepler project,
\hyphenatedurl{http://www.keplerproject.org/luazip/}. (version 1.2.1, but
patched for compilation with \LUA\ 5.2)
\type {luazip}, from the kepler project, \hyphenatedurl
{http://www.keplerproject.org/luazip/}.
\stopitem
\startitem
\type {luafilesystem}, also from the kepler project, \hyphenatedurl
{http://www.keplerproject.org/luafilesystem/}. (version 1.5.0)
{http://www.keplerproject.org/luafilesystem/}.
\stopitem
\startitem
\type {lpeg}, by Roberto Ierusalimschy, \hyphenatedurl
{http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html}. (version 0.10.2) This
library is not \UNICODE|-|aware, but interprets strings on a
byte|-|per|-|byte basis. This mainly means that \type {lpeg.S} cannot be
used with \UTF\ characters encoded in more than two bytes, and thus \type
{lpeg.S} will look for one of those two bytes when matching, not the
combination of the two. The same is true for \type {lpeg.R}, although the
latter will display an error message if used with multibyte characters.
Therefore \type {lpeg.R('aä')} results in the message \type {bad argument
#1 to 'R' (range must have two characters)}, since to \type {lpeg}, \type {ä}
is two 'characters' (bytes), so \type {} totals three. In practice this is
no real issue.
{http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html}. This library is not
\UNICODE|-|aware, but interprets strings on a byte|-|per|-|byte basis. This
mainly means that \type {lpeg.S} cannot be used with \UTF\ characters encoded
in more than two bytes, and thus \type {lpeg.S} will look for one of those
two bytes when matching, not the combination of the two. The same is true for
\type {lpeg.R}, although the latter will display an error message if used
with multibyte characters. Therefore \type {lpeg.R('aä')} results in the
message \type {bad argument #1 to 'R' (range must have two characters)},
since to \type {lpeg}, \type {ä} is two 'characters' (bytes), so \type {}
totals three. In practice this is no real issue.
\stopitem
\startitem
\type {lzlib}, by Tiago Dionizio, \hyphenatedurl
{http://luaforge.net/projects/lzlib/}. (version 0.2)
{http://luaforge.net/projects/lzlib/}.
\stopitem
\startitem
......@@ -539,9 +539,9 @@ Some modules that are normally external to \LUA\ are statically linked in with
\startitem
\type {luasocket}, by Diego Nehab \hyphenatedurl
{http://w3.impa.br/~diego/software/luasocket/} (version 2.0.2). The \type
{.lua} support modules from \type {luasocket} are also preloaded inside the
executable, there are no external file dependencies.
{http://w3.impa.br/~diego/software/luasocket/}. The \type {.lua} support
modules from \type {luasocket} are also preloaded inside the executable,
there are no external file dependencies.
\stopitem
\stopitemize
......
% language=uk
\environment luatex-style
\environment luatex-logos
......@@ -189,7 +191,7 @@ are described as follows:
In \LUATEX\ one can set the styles in more detail which means that you sometimes
have to set both normal and cramped styles to get the effect you want. If we
force styles in the scriptr using \type {\scriptstyle} and \type {\crampedscriptstyle}
force styles in the script using \type {\scriptstyle} and \type {\crampedscriptstyle}
we get this:
\startbuffer[demo]
......@@ -238,7 +240,7 @@ has resulted in many more parameters than were accessible before.
\starttabulate
\NC \bf primitive name \NC \bf description \NC \NR
\NC \type {\Umathquad} \NC the width of 18mu's \NC \NR
\NC \type {\Umathquad} \NC the width of 18 mu's \NC \NR
\NC \type {\Umathaxis} \NC height of the vertical center axis of
the math formula above the baseline \NC \NR
\NC \type {\Umathoperatorsize} \NC minimum size of large operators in display mode \NC \NR
......@@ -306,13 +308,14 @@ needed.
\section{Skips around display math}
The injection of \type {\abovedisplayskip} and \type {\belowdisplayskip} is not symmetrical. An
above one is always inserted, also when zero, but the below is only inserted when larger than
zero. Especially the later mkes it sometimes hard to fully control spacing. Therefore \LUATEX\
comes with a new directive: \type {\mathdisplayskipmode}. The following values apply:
The injection of \type {\abovedisplayskip} and \type {\belowdisplayskip} is not
symmetrical. An above one is always inserted, also when zero, but the below is
only inserted when larger than zero. Especially the later mkes it sometimes hard
to fully control spacing. Therefore \LUATEX\ comes with a new directive: \type
{\mathdisplayskipmode}. The following values apply:
\starttabulate
\NC 0 \NC normal tex behaviour: always above, only below when larger than zero \NC \NR
\NC 0 \NC normal \TEX\ behaviour: always above, only below when larger than zero \NC \NR
\NC 1 \NC always \NC \NR
\NC 2 \NC only when not zero \NC \NR
\NC 3 \NC never, not even when not zero \NC \NR
......@@ -425,24 +428,24 @@ that assumes that an oldstyle \TEX\ font is used. Also, they do not set \type
{\Umathradicaldegreeraise}. These are then automatically initialized to
$5/18$quad, $-10/18$quad, and 60.
Note 3: If tfm fonts are used, then the \type {\Umathradicalvgap} is not set until
the first time \LUATEX\ has to typeset a formula because this needs parameters
from both family2 and family3. This provides a partial backward compatibility
with \TEX82, but that compatibility is only partial: once the \type
Note 3: If \TFM\ fonts are used, then the \type {\Umathradicalvgap} is not set
until the first time \LUATEX\ has to typeset a formula because this needs
parameters from both family~2 and family~3. This provides a partial backward
compatibility with \TEX82, but that compatibility is only partial: once the \type
{\Umathradicalvgap} is set, it will not be recalculated any more.
Note 4: (also if tfm fonts are used) A similar situation arises wrt. \type
{\Umathspaceafterscript}: it is not set until the first time \LUATEX\ has to
typeset a formula. This provides some backward compatibility with \TEX82. But
once the \type {\Umathspaceafterscript} is set, \type {\scriptspace} will never be
looked at again.
Note 4: When \TFM\ fonts are used a similar situation arises with respect to
\type {\Umathspaceafterscript}: it is not set until the first time \LUATEX\ has
to typeset a formula. This provides some backward compatibility with \TEX82. But
once the \type {\Umathspaceafterscript} is set, \type {\scriptspace} will never
be looked at again.
Note 5: Tfm fonts set \type {\Umathconnectoroverlapmin} to zero because \TEX82\
always stacks extensibles without any overlap.
Note 5: Traditional \TFM\ fonts set \type {\Umathconnectoroverlapmin} to zero
because \TEX82\ always stacks extensibles without any overlap.
Note 6: The \type {\Umathoperatorsize} is only used in \type {\displaystyle}, and is
only set in \OPENTYPE\ fonts. In \TFM\ font mode, it is artificially set to one
scaled point more than the initial attempt's size, so that always the \quote
Note 6: The \type {\Umathoperatorsize} is only used in \type {\displaystyle}, and
is only set in \OPENTYPE\ fonts. In \TFM\ font mode, it is artificially set to
one scaled point more than the initial attempt's size, so that always the \quote
{first next} will be tried, just like in \TEX82.
Note 7: The \type {\Umathradicaldegreeraise} is a special case because it is the
......@@ -450,12 +453,12 @@ only parameter that is expressed in a percentage instead of as a number of scale
points.
Note 8: \type {SubscriptShiftDownWithSuperscript} does not actually exist in the
\quote {standard} Opentype Math font Cambria, but it is useful enough to be
\quote {standard} \OPENTYPE\ math font Cambria, but it is useful enough to be
added.
Note 9: \type {FractionDelimiterDisplayStyleSize} and \type
{FractionDelimiterSize} do not actually exist in the \quote {standard} Opentype
Math font Cambria, but were useful enough to be added.
{FractionDelimiterSize} do not actually exist in the \quote {standard} \OPENTYPE\
math font Cambria, but were useful enough to be added.
\section{Math spacing setting}
......@@ -540,8 +543,8 @@ like this:
\Umathopordspacing\displaystyle=4mu plus 2mu
\stoptyping
They are all initialized by initex to the values mentioned in the table in
Chapter~18 of the \TEX book.
They are all initialized by \type {initex} to the values mentioned in the table
in Chapter~18 of the \TEX book.
Note 1: for ease of use as well as for backward compatibility, \type
{\thinmuskip}, \type {\medmuskip} and \type {\thickmuskip} are treated
......@@ -587,14 +590,8 @@ followed by its italic correction is used instead.
The vertical placement of a top accent depends on the \type {x_height} of the
font of the accentee (as explained in the \TEX book), but if value that turns out
to be zero and the font had a MathConstants table, then \type {AccentBaseHeight}
is used instead.
% there is no bot_accent in opentype math
%
% If a math bottom accent has to be placed, the \type {bot_accent} value is checked
% instead of \type {top_accent}. Because bottom accents do not exist in \TEX82, the
% \type {\skewchar} kern is ignored.
to be zero and the font had a \type {MathConstants} table, then \type
{AccentBaseHeight} is used instead.
The vertical placement of a bottom accent is straight below the accentee, no
correction takes place.
......@@ -603,7 +600,7 @@ Possible locations are \type {top}, \type {bottom}, \type {both} and \type
{center}. When no location is given \type {top} is assumed. An additional
parameter \type {fraction} can be specified followed by a number; a value of for
instance 1200 means that the criterium is 1.2 times the width of the nuclues. The
fraction only aplies to the stepwise selected shapes and is mostly meant for the
fraction only applies to the stepwise selected shapes and is mostly meant for the
\type {overlay} location. It also works for the other locations but then it
concerns the width.
......@@ -624,15 +621,15 @@ The placement of the degree is controlled by the math parameters \type
\section{Math kerning in super- and subscripts}
The character fields in a lua-loaded OpenType math font can have a \quote
The character fields in a \LUA|-|loaded \OPENTYPE\ math font can have a \quote
{mathkern} table. The format of this table is the same as the \quote {mathkern}
table that is returned by the \type {fontloader} library, except that all height
and kern values have to be specified in actual scaled points.
When a super- or subscript has to be placed next to a math item, \LUATEX\ checks
whether the super- or subscript and the nucleus are both simple character items.
If they are, and if the fonts of both character imtes are OpenType fonts (as
opposed to legacy \TEX\ fonts), then \LUATEX\ will use the OpenType MATH
If they are, and if the fonts of both character items are \OPENTYPE\ fonts (as
opposed to legacy \TEX\ fonts), then \LUATEX\ will use the \OPENTYPE\ math
algorithm for deciding on the horizontal placement of the super- or subscript.
This works as follows:
......@@ -656,12 +653,12 @@ This works as follows:
For each of these two locations:
\startitemize
\startitem
find the mathkern value at this height for the base (for a subscript
find the math kern value at this height for the base (for a subscript
placement, this is the bottom_right corner, for a superscript
placement the top_right corner)
\stopitem
\startitem
find the mathkern value at this height for the script (for a
find the math kern value at this height for the script (for a
subscript placement, this is the top_left corner, for a superscript
placement the bottom_left corner)
\stopitem
......@@ -676,9 +673,9 @@ This works as follows:
\stopitem
\stopitemize
The mathkern value at a specific height is the kern value that is specified by the
The math kern value at a specific height is the kern value that is specified by the
next higher height and kern pair, or the highest one in the character (if there is no
value high enough in the character), or simply zero (if the character has no mathkern
value high enough in the character), or simply zero (if the character has no math kern
pairs at all).
\section{Scripts on horizontally extensible items like arrows}
......@@ -895,7 +892,7 @@ of \type {\mathsurround}, we can remain compatible.
Normally you will force delimiters to certain sizes by putting an empty box or
rule next to it. The resulting delimiter will either be a character from the
stepwise size range or an extensible. The latter can be quite differently
positioned that the characters as it depends on the fit aas well as the fact if
positioned that the characters as it depends on the fit as well as the fact if
the used characters in the font have depth or height. Commands like (plain \TEX
s) \type {\big} need use this feature. In \LUATEX\ we provide a bit more control
by three variants that supporting optional parameters \type {height}, \type
......@@ -923,7 +920,7 @@ by three variants that supporting optional parameters \type {height}, \type
The keyword \type {exact} can be used as directive that the real dimensions
should be applied when the criteria can't be met which can happen when we're
still stepping through the succesively larger variants. When no dimensions are
still stepping through the successively larger variants. When no dimensions are
given the \type {noaxis} command can be used to prevent shifting over the axis.
You can influence the final class with the keyword \type {class} which will
......
% language=uk
\environment luatex-style
\environment luatex-logos
......@@ -11,8 +13,8 @@
The first version of \LUATEX\ only had a few extra primitives and it was largely
the same as \PDFTEX. Then we merged substantial parts of \ALEPH\ into the code
and got more primitives. When we got more stable teh decision was made to clean
up the rather hybrid nature of the program. This means that some primnitives have
and got more primitives. When we got more stable the decision was made to clean
up the rather hybrid nature of the program. This means that some primitives have
been promoted to core primitives, often with a different name, and that others
were removed. This made it possible to start cleaning up the code base. We will
describe most in following paragraphs.
......@@ -69,7 +71,7 @@ most still comes from the original. But we divert a bit.
\startsubsection[title=Changes from \ETEX\ 2.2]
Being the de factor standard extension of course we provide the \ETEX\
functionality, but with a few small adaptions.
functionality, but with a few small adaptations.
\startitemize
......@@ -132,7 +134,7 @@ which in turn triggered renaming primitives.
\stopitem
\startitem
A number of \quote {pdftex primitives} have been removed as they can be
A number of \quote {\PDFTEX\ primitives} have been removed as they can be
implemented using \LUA:
\start \raggedright
......@@ -181,7 +183,7 @@ which in turn triggered renaming primitives.
\startitem
The current version of \LUATEX\ no longer replaces and|/|or merges fonts in
embedded pdf files with fonts of the enveloping \PDF\ document. This
embedded \PDF\ files with fonts of the enveloping \PDF\ document. This
regression may be temporary, depending on how the rewritten font backend will
look like.
\stopitem
......@@ -213,7 +215,7 @@ which in turn triggered renaming primitives.
\startitem
When \type {\adjustspacing} has value~2, hz optimization will be applied to
glyphs and kerns. When the valus is~3, only glyphs will be treated. A value
glyphs and kerns. When the value is~3, only glyphs will be treated. A value
smaller than~2 disables this feature.
\stopitem
......@@ -270,7 +272,7 @@ which in turn triggered renaming primitives.
One change involves the so called xforms and ximages. In \PDFTEX\ these are
implemented as so called whatsits. But contrary to other whatsits they have
dimensions that need to be taken into account when for instance calculating
optimal linebreaks. In \LUATEX\ these are now promoted to normal nodes, which
optimal line breaks. In \LUATEX\ these are now promoted to normal nodes, which
simplifies code that needs those dimensions.
Another reason for promotion is that these are useful concepts. Backends can
......@@ -493,7 +495,7 @@ others promoted to core \LUATEX\ primitives. That is only part of the story. In
order to separate the backend specific primitives in de code these commands are
now replaced by only a few. In traditional \TEX\ we only had the \DVI\ backend
but now we have two: \DVI\ and \PDF. Additional functionality is implemented as
\quote {extensions} in \TEX speak. By seperating more strickly we are able to
\quote {extensions} in \TEX speak. By separating more strickly we are able to
keep the core (fontend) clean and stable. If for some reason an extra backend
option is needed, it can be implemented without touching the core. The three
\PDF\ backend related primitives are
......@@ -826,7 +828,7 @@ All of the internal code is changed in such a way that if one of the \type
basically the same convention as the callback: a single read into a buffer big
enough to hold the entire file contents. While this uses more memory than the
previous code (that mostly used \type {getc} calls), it can be quite a bit faster
(depending on your I/O subsystem).
(depending on your \IO\ subsystem).
\stopsubsection
......
% language=uk
\environment luatex-style
\environment luatex-logos
......@@ -138,9 +140,9 @@ Id: \showid{hlist}
A warning: never assign a node list to the \type {head} field unless you are sure
its internal link structure is correct, otherwise an error may result.
Note: the new field name \type {head} was introduced in 0.65 to replace the old
name \type {list}. Use of the name \type {list} is now deprecated, but it will
stay available until at least version 0.80.
Note: the field name \type {head} and \type {list} are both valid. Sometimes it
makes more sense to refer to a list by \type {head}, sometimes \type {list} makes
more sense.
\subsubsection{vlist nodes}
......@@ -177,7 +179,7 @@ image.
backend specific). \NC \NR
\stoptabulate
The subtypes 1 and~2 replace the xform and ximage whatsits and in nodelists they
The subtypes 1 and~2 replace the xform and ximage whatsits and in node lists they
behave like rules of subtype_0 when it comes to dimensions. Subtype~3 only has
dimensions.
......@@ -458,7 +460,7 @@ replaced them by expansion factors that travel with glyph nodes. Apart from a
cleaner approach this is also a step towards a better separation between front-
and backend.
The \type {is_char} function checks if a node is a glyphnode with a subtype still
The \type {is_char} function checks if a node is a glyph node with a subtype still
less than 256. This function can be used to determine if applying font logic to a
glyph node makes sense. The value \type {nil} gets returned when the node is not
a glyph, a character number is returned if the node is still tagged as character
......@@ -558,8 +560,8 @@ version as an extension to the \type {small_char}.
\subsubsection{Math core nodes}
First, there are the objects (the \TEX book calls then \quote {atoms}) that are
associated with the simple math objects: Ord, Op, Bin, Rel, Open, Close, Punct,
Inner, Over, Under, Vcent. These all have the same fields, and they are combined
associated with the simple math objects: ord, op, bin, rel, open, close, punct,
inner, over, under, vcent. These all have the same fields, and they are combined
into a single node type with separate subtypes for differentiation.
\subsubsubsection{simple nodes}
......@@ -829,8 +831,8 @@ Id: \showid{dir}
\NC attr \NC \syntax{<node>} \NC \NC \NR
\NC dir \NC string \NC the direction (but see below) \NC \NR
\NC level \NC number \NC nesting level of this direction whatsit \NC \NR
\NC dvi_ptr \NC number \NC a saved dvi buffer byte offset \NC \NR
\NC dir_h \NC number \NC a saved dvi position \NC \NR
\NC dvi_ptr \NC number \NC a saved \DVI\ buffer byte offset \NC \NR
\NC dir_h \NC number \NC a saved \DVI\ position \NC \NR
\stoptabulate
A note on \type {dir} strings. Direction specifiers are three|-|letter
......@@ -943,7 +945,7 @@ Id: \showid{whatsit,pdf_dest}
\NC width \NC number \NC \NC \NR
\NC height \NC number \NC \NC \NR
\NC depth \NC number \NC \NC \NR
\NC named_id \NC number \NC is the dest_id a string value? \NC \NR
\NC named_id \NC number \NC is the \type {dest_id} a string value? \NC \NR
\NC dest_id \NC number \NC the destination id \NC \NR
\NC \NC string \NC the destination name \NC \NR
\NC dest_type \NC number \NC type of destination \NC \NR
......@@ -981,7 +983,7 @@ Id: \showid{whatsit,pdf_thread}
\NC width \NC number \NC \NC \NR
\NC height \NC number \NC \NC \NR
\NC depth \NC number \NC \NC \NR
\NC named_id \NC number \NC is the tread_id a string value? \NC \NR
\NC named_id \NC number \NC is \type {tread_id} a string value? \NC \NR
\NC tread_id \NC number \NC the thread id \NC \NR
\NC \NC string \NC the thread name \NC \NR
\NC thread_attr \NC number \NC extra thread information \NC \NR
......@@ -998,7 +1000,7 @@ Id: \showid{whatsit,pdf_start_thread}
\NC width \NC number \NC \NC \NR
\NC height \NC number \NC \NC \NR
\NC depth \NC number \NC \NC \NR
\NC named_id \NC number \NC is the tread_id a string value? \NC \NR
\NC named_id \NC number \NC is \type {tread_id} a string value? \NC \NR
\NC tread_id \NC number \NC the thread id \NC \NR
\NC \NC string \NC the thread name \NC \NR
\NC thread_attr \NC number \NC extra thread information \NC \NR
......@@ -1034,7 +1036,7 @@ Id: \showid{whatsit,late_lua}
\NC attr \NC \syntax{<node>} \NC \NC \NR
\NC data \NC string \NC data to execute \NC \NR
\NC string \NC string \NC data to execute \NC \NR
\NC name \NC string \NC the name to use for lua error reporting \NC \NR
\NC name \NC string \NC the name to use for \LUA\ error reporting \NC \NR
\stoptabulate
The difference between \type {data} and \type {string} is that on assignment, the
......@@ -1173,11 +1175,11 @@ If performance matters you can use an function instead:
\starttabulate[|T|p|]
\NC getnext \NC parsing nodelist always involves this one \NC \NR
\NC getprev \NC used less but is logical companion to getnext \NC \NR
\NC getprev \NC used less but is logical companion to \type {getnext} \NC \NR
\NC getboth \NC returns the next and prev pointer of a node \NC \NR
\NC getid \NC consulted a lot \NC \NR
\NC getsubtype \NC consulted less but also a topper \NC \NR
\NC getfont \NC used a lot in otf handling (glyph nodes are consulted a lot) \NC \NR
\NC getfont \NC used a lot in \OPENTYPE\ handling (glyph nodes are consulted a lot) \NC \NR
\NC getchar \NC idem and also in other places \NC \NR
\NC getdisc \NC returns the \type {pre}, \type {post} and \type {replace} fields and
optionally when true is passed also the tail fields. \NC \NR
......
......@@ -197,7 +197,7 @@
luaorbitfactor := 1 ;
picture p ; p := lualogo xsized (3PaperWidth/5) ;
draw p shifted center Page shifted (0,-ypart center ulcorner p) ;
draw p shifted center Page shifted (0,-.5ypart center ulcorner p) ;
StopPage ;
\stopuseMPgraphic
......
......@@ -23,17 +23,17 @@
frame=off]
{Lua\TeX\\Reference}
\definedfont[Bold*default at 24pt] \setupinterlinespace
\definedfont[Bold*default at 18pt] \setupinterlinespace
\setlayerframed
[page]
[preset=middletop,
voffset=.35\paperheight]
[align=middle,
[preset=rightbottom,
offset=.01\paperheight]
[align=flushright,
foregroundcolor=blue,
frame=off]
{\doifsomething{\documentvariable{snapshot}}{snapshot \documentvariable{snapshot}}%
\doifsomething{\documentvariable{beta}} {beta \documentvariable{beta}}}
{\currentdate[month,space,year]\par
Version \documentvariable{version}}
\stopstandardmakeup
......
No preview for this file type
......@@ -3,15 +3,13 @@
% \tex vs \type vs \syntax vs. \luatex
% \em \it \/
% \enabledirectives[nodes.basepass*]
\environment luatex-style
\environment luatex-logos
\dontcomplain
\startdocument
[beta=0.90.0]
[version=0.90.0]
\component luatex-titlepage
......
This file is in the public domain.
==============================================================
LuaTeX Release 0.90.0 was released 2016032512
==============================================================
This is the version that will go on TeX Live 2016
- mostly small bug fixes
- a few setters/getters added to the pdf namespace (were in the tex one before)
- a few patches to the lua interface macros
- a bit more control over protrusion edges
- no fundamental changes
==============================================================
Luatex Release 0.89.4 was released 2016031100
==============================================================
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment