summaryrefslogtreecommitdiff
path: root/doc/context/sources/general/manuals/luatex/luatex-introduction.tex
blob: 5fcc96546f66a9e81674b4d2eca1757d328572ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
\environment luatex-style
\environment luatex-logos

\startcomponent luatex-introduction

\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
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.

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
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.

\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
components together. We continue cleaning up side effects of the accumulated
code in \TEX\ engines (especially code that is not needed any longer).

\startitemize[packed]
    \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.
    \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.
    \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.
    \stopitem
    \startitem
        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.
    \stopitem
    \startitem
        The fontloader uses parts of \FONTFORGE\ 2008.11.17 combined with
        additionaL code specific for usage in a \TEX\ engine.
    \stopitem
    \startitem
        the \METAPOST\ library
    \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 is
considered beta. Keep in mind that new (or changed) features also need to be
reflected in the macro package that you use.

\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
\stoptabulate

\stopchapter

\stopcomponent