sync with experimental
[luatex.git] / manual / luatex-introduction.tex
blobad03970a57933348dd858426f82e7d7ea2ee92ea
1 % language=uk
3 \environment luatex-style
4 \environment luatex-logos
6 \startcomponent luatex-introduction
8 \startchapter[title=Introduction]
10 This book will eventually become the reference manual of \LUATEX. At the moment,
11 it simply reports the behaviour of the executable matching the snapshot or beta
12 release date in the title page. We don't claim it is complete and we assume that
13 the reader knows about \TEX\ as described in \quotation {The \TEX\ Book}, the
14 \quotation {\ETEX\ manual}, the \quotation {\PDFTEX\ manual}, etc. Additional
15 reference material is published in journals of user groups and \CONTEXT\ related
16 documentation.
18 Successive versions brought new functionality, more control, some cleanup of
19 internals and experimental features evolved into stable ones or were dropped.
20 Already quite early \LUATEX\ could be used for production and it was used in
21 production by the authors. Successive versions sometimes demanded a adaption to
22 the \LUA\ interfacing, but the concepts were unchanged. The current version can
23 be considered stable in functionality and there will be no fundamental changes
24 between 0.90 and 1.00. Of course we then can decide to move towards version 2.00
25 with different properties.
27 Don't expect \LUATEX\ to behave the same as \PDFTEX ! Although the core
28 functionality of that 8 bit engine was starting point, it has been combined with
29 the directional support of \OMEGA\ (\ALEPH). But, \LUATEX\ can behave different
30 due to its wide (32 bit) characters, many registers and large memory support.
31 There is native \UTF\ input, support for large (more that 8 bit) fonts, and the
32 math machinery is tuned for \OPENTYPE\ math. There is support for directional
33 typesetting too. The log output can differ from other engines and will likely
34 differ more as we move forward. When you run plain \TEX\ for sure \LUATEX\ runs
35 slower than \PDFTEX\ but when you run for instance \CONTEXT\ \MKIV\ it might be
36 faster on more complex documents. But in any case: 32 bit all||over combined with
37 more features has a price.
39 \LUATEX\ consists of a number of interrelated but (still) distinguishable parts.
40 The organization of the source code is adapted so that it can glue all these
41 components together. We continue cleaning up side effects of the accumulated
42 code in \TEX\ engines (especially code that is not needed any longer).
44 \startitemize[packed]
45 \startitem
46 Most of \PDFTEX\ version 1.40.9, converted to C (with patches from later
47 releases). Some experimental features have been removed and some utility
48 macros are not inherited as their functionality can be done in \LUA. The
49 number of backend interface commands has been reduced to a few. The
50 extensions are separated from the core (which we keep close to the
51 original \TEX\ core). Some mechanisms like expansion and protrusion can
52 behave different from the original due to some cleanup and optimization.
53 Some whatsit based functionality (image support and reusable content)
54 is now core functionality.
55 \stopitem
56 \startitem
57 The direction model and some other bits from \ALEPH\ RC4 (derived from
58 \OMEGA) is included. The related primitives are part of core \LUATEX\ but
59 at the node level directional support is no longer based on so called
60 whatsits but on real nodes. In fact, whatsits are now only used for
61 backend specific extensions.
62 \stopitem
63 \startitem
64 Neither \ALEPH's I/O translation processes, nor tcx files, nor \ENCTEX\
65 can be used, these encoding|-|related functions are superseded by a
66 \LUA|-|based solution (reader callbacks). In a similar fashion all file
67 \IO\ can be intercepted.
68 \stopitem
69 \startitem
70 We currently use \LUA\ 5.2.*. At some point we might decide to move to
71 5.3.* but that is yet to be decided. There are few \LUA\ libraries that
72 we consider part of the core \LUA\ machinery, for instance \type {lpeg}.
73 There are additional \LUA\ libraries that interface to the internals of
74 \TEX.
75 \stopitem
76 \startitem
77 There are various \TEX\ extensions but only those that cannot be done
78 using the \LUA\ interfaces. The math machinery often has two code paths:
79 one traditional and the other more suitable for wide \OPENTYPE\ fonts.
80 \stopitem
81 \startitem
82 The fontloader uses parts of \FONTFORGE\ 2008.11.17 combined with
83 additionaL code specific for usage in a \TEX\ engine. We try to minimize
84 specific font support to what \TEX needs: character references and
85 dimensions and delegate everything else to \LUA. That way we keep \TEX\
86 open for extensions without touching the core.
87 \stopitem
88 \startitem
89 The \METAPOST\ library is integral part of \LUATEX. This gives \TEX\ some
90 graphical capabilities using a relative high speed graphical subsystem.
91 Again \LUA\ is used as glue between the frontend and backend. Further
92 development of \METAPOST\ is closely related to \LUATEX.
93 \stopitem
94 \stopitemize
96 The yearly \TEXLIVE\ version is the stable version, any version between them are
97 to be considered beta. The beta releases are normally available via the \CONTEXT\
98 distribution channels (the garden and so called minimals).
100 \blank[1*big]
102 Hans Hagen, Harmut Henkel, \crlf
103 Taco Hoekwater \& Luigi Scarso
105 \blank[3*big]
107 \starttabulate
108 \NC Version \EQ \currentdate \NC \NR
109 \NC \LUATEX \EQ Snapshot \number\luatexversion.\luatexrevision \NC \NR
110 \NC \CONTEXT \EQ \contextversion \NC \NR
111 \stoptabulate
113 \stopchapter
115 \stopcomponent