diff options
Diffstat (limited to 'Master/texmf-dist/doc/luatex/base/luatex-introduction.tex')
-rw-r--r-- | Master/texmf-dist/doc/luatex/base/luatex-introduction.tex | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/luatex/base/luatex-introduction.tex b/Master/texmf-dist/doc/luatex/base/luatex-introduction.tex new file mode 100644 index 00000000000..8ab8b4463df --- /dev/null +++ b/Master/texmf-dist/doc/luatex/base/luatex-introduction.tex @@ -0,0 +1,121 @@ +% language=uk + +\environment luatex-style +\environment luatex-logos + +\startcomponent luatex-introduction + +\startchapter[title=Introduction] + +This is the reference manual of \LUATEX. 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. + +It took about a decade to reach stable version 1.0, but for good reason. +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 on a +daily basis 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. +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 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\ \MKIV\ in many cases +it runs faster, especially when you have a bit more complex documents or input. +Anyway, 32 bit all||over combined with more features has a price, but on a modern +machine this is no real problem. + +Testing is done with \CONTEXT, but \LUATEX\ should work fine with other macro +packages too. For that purpose we provide generic font handlers that are mostly +the same as used in \CONTEXT. Discussing specific implementations is beyond this +manual. Even when we keep \LUATEX\ lean and mean, we already have enough to +discuss here. + +\LUATEX\ consists of a number of interrelated but (still) distinguishable parts. +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). + +\startitemize[packed] + \startitem + Most of \PDFTEX\ version 1.40.9, converted to \CCODE. Some experimental + features have been removed and some utility 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\ 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 + 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. 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. 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 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 + +The \TEXLIVE\ version is to be considered the current stable version. Any version +between the yearly \TEXLIVE\ releases 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] + +Hans Hagen, Harmut Henkel, \crlf +Taco Hoekwater \& Luigi Scarso + +\blank[3*big] + +\starttabulate +\NC Version \EQ \currentdate \NC \NR +\NC \LUATEX \EQ Snapshot \number\luatexversion.\luatexrevision \NC \NR +\NC \CONTEXT \EQ \contextversion \NC \NR +\stoptabulate + +\stopchapter + +\stopcomponent |