beta-0.89.2
[luatex.git] / manual / luatex-introduction.tex
blob5fcc96546f66a9e81674b4d2eca1757d328572ed
1 \environment luatex-style
2 \environment luatex-logos
4 \startcomponent luatex-introduction
6 \startchapter[title=Introduction]
8 This book will eventually become the reference manual of \LUATEX. At the moment,
9 it simply reports the behavior of the executable matching the snapshot or beta
10 release date in the title page. We don't claim it is complete and we assume that
11 the reader knows about \TEX\ as described in \quotation {The \TEX\ Book}, the
12 \quotation {\ETEX\ manual}, the \quotation {\PDFTEX\ manual}, etc. Additional
13 reference material is published in journals of user groups and \CONTEXT\ related
14 documentation.
16 Features may come and go. The current version of \LUATEX\ can be used for
17 production (in fact it is used in production by the authors) but users cannot
18 depend on complete stability, nor on functionality staying the same. This means
19 that when you update your binary, you also need to check if something fundamental
20 has changed. Normally this is communicated in articles or messages to a mailing
21 list. We're still not at version 1 but when we reach that state the interface
22 will be stable. Of course we then can decide to move towards version 2 with
23 different properties.
25 This means that occasionally you can encounter functionality not described here.
26 Just consider that experimental then. They are either a playground or are being
27 tested in real situations first before being finalized. And we can equally well
28 kick them out again. When they stay we will descibe them in the manual or more
29 extensively in articles.
31 Don't expect \LUATEX\ to behave the same as \PDFTEX ! Although the core
32 functionality of that 8 bit engine is present, \LUATEX\ can behave different due
33 to its wide (32 bit) characters, many registers and large memory support. There
34 is native \UTF\ input, support for large (more that 8 bit) fonts, and the math
35 machinery is tuned for \OPENTYPE\ math. Ther ei ssupport for directional
36 typesetting too. The log output can differ from other engines and will likely
37 differ more as we move forward. When you run plain \TEX\ for sure \LUATEX\ runs
38 slower than \PDFTEX\ but when you run for instance \CONTEXT\ it might be faster. But
39 in any case: 32 bit all||over combined with more features has a price.
41 \LUATEX\ consists of a number of interrelated but (still) distinguishable parts.
42 The organization of the source code is adapted so that it cna glue all these
43 components together. We continue cleaning up side effects of the accumulated
44 code in \TEX\ engines (especially code that is not needed any longer).
46 \startitemize[packed]
47 \startitem
48 Most of \PDFTEX\ version 1.40.9, converted to C (with patches from later
49 releases). Some experimental features have been removed and some utility
50 macros are not inherited as their functionality can be done in \LUA. We
51 still use the \type {\pdf*} primitive namespace.
52 \stopitem
53 \startitem
54 The direction model and some other bits from \ALEPH\ RC4 (derived from
55 \OMEGA) is included. The related primitives are part of core \LUATEX.
56 \stopitem
57 \startitem
58 We currently use \LUA\ 5.2.*. At some point we might decide to move to
59 5.3.* but that is yet to be decided.
60 \stopitem
61 \startitem
62 There are few \LUA\ libraries that we consider part of the core \LUA\
63 machinery.
64 \stopitem
65 \startitem
66 There are additional \LUA\ libraries that interface to the internals of
67 \TEX.
68 \stopitem
69 \startitem
70 There are various \TEX\ extensions but only those that cannot be done
71 using the \LUA\ interfaces.
72 \stopitem
73 \startitem
74 The fontloader uses parts of \FONTFORGE\ 2008.11.17 combined with
75 additionaL code specific for usage in a \TEX\ engine.
76 \stopitem
77 \startitem
78 the \METAPOST\ library
79 \stopitem
80 \stopitemize
82 Neither \ALEPH's I/O translation processes, nor tcx files, nor \ENCTEX\ can be
83 used, these encoding|-|related functions are superseded by a \LUA|-|based
84 solution (reader callbacks). Most of the \PDFTEX\ backend is available but via a
85 bit different interface.
87 The yearly \TEXLIVE\ version is the stable version, any version between them is
88 considered beta. Keep in mind that new (or changed) features also need to be
89 reflected in the macro package that you use.
91 \blank[3*big]
93 \starttabulate
94 \NC \LUATEX \EQ Version \number\luatexversion.\luatexrevision \NC \NR
95 \NC \CONTEXT \EQ \contextversion \NC \NR
96 \NC timestamp \EQ \currentdate \NC \NR
97 \stoptabulate
99 \stopchapter
101 \stopcomponent