summaryrefslogtreecommitdiff
path: root/doc/context/sources/general/manuals/luatex/luatex-introduction.tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-04-13 15:51:39 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2018-04-13 15:51:39 +0200
commit25fcad7435f56cdce2658336909f4da6a65589c0 (patch)
treec23d5d04a7e86c7ddc2ebeca06d3de63ebdc806e /doc/context/sources/general/manuals/luatex/luatex-introduction.tex
parent1e5d7f41ddede5e6400a2a7762032823d3545df4 (diff)
downloadcontext-25fcad7435f56cdce2658336909f4da6a65589c0.tar.gz
2018-04-13 15:02:00
Diffstat (limited to 'doc/context/sources/general/manuals/luatex/luatex-introduction.tex')
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-introduction.tex81
1 files changed, 51 insertions, 30 deletions
diff --git a/doc/context/sources/general/manuals/luatex/luatex-introduction.tex b/doc/context/sources/general/manuals/luatex/luatex-introduction.tex
index d0899147d..4ffc321e0 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-introduction.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-introduction.tex
@@ -15,7 +15,7 @@ Additional reference material is published in journals of user groups and
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.
+internals. 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
@@ -26,9 +26,10 @@ 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
+due to its wide (32 bit) characters, many registers and large memory support. The
+\PDF\ code produced differs from \PDFTEX\ but users will normally not notice
+that. There is native \UTF\ input, support for large (more than 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
@@ -49,25 +50,27 @@ 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.
+ We started out with most of \PDFTEX\ version 1.40.9. The code base was
+ converted to \CCODE\ and split in modules. Experimental features were
+ been removed and utility macros are not inherited because their
+ functionality can be programmed in \LUA. The number of backend interface
+ commands has been reduced to a few. The so called extensions are
+ separated from the core (which we try to 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. We don't stay in sync with \PDFTEX\ development.
\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.
+ The direction model from \ALEPH\ RC4 (which is 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 with relevant properties. The number of directions is
+ limited to the useful set and the backend has been made direction aware.
\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
+ are available. These encoding|-|related functions are superseded by a
\LUA|-|based solution (reader callbacks). In a similar fashion all file
\IO\ can be intercepted.
\stopitem
@@ -80,14 +83,18 @@ code in \TEX\ engines (especially code that is not needed any longer).
\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.
+ one traditional and the other more suitable for wide \OPENTYPE\ fonts. Here
+ we follow the \MICROSOFT\ specifications as much as possible. Some math
+ functionality has been opened up a bit so that users have more control.
\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.
+ open for extensions without touching the core. In order to minimize
+ dependencies at some point we may decide to make this an optional
+ library.
\stopitem
\startitem
The \METAPOST\ library is integral part of \LUATEX. This gives \TEX\ some
@@ -95,6 +102,13 @@ code in \TEX\ engines (especially code that is not needed any longer).
Again \LUA\ is used as glue between the frontend and backend. Further
development of \METAPOST\ is closely related to \LUATEX.
\stopitem
+ \startitem
+ The virtual font technology that comes with \TEX\ has been integrated
+ into the font machinery in a way that permits creating virtual fonts
+ at runtime. Because \LUATEX\ can also act as a \LUA\ interpreter this
+ means that a complete \TEX\ workflow can be built without the need for
+ additional programs.
+ \stopitem
\stopitemize
We try to keep upcoming versions compatible but intermediate releases can contain
@@ -106,22 +120,29 @@ solutions. After all, with \LUA\ you can extend the core functionality. The less
dependencies, the better.
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).
+between the yearly \TEXLIVE\ releases are to be considered beta and in the
+repository end up as trunk releases. We have an experimental branch that we use
+for development but there is no support for any of its experimental features.
+Intermediate releases (from trunk) are normally available via the \CONTEXT\
+distribution channels (the garden and so called minimals).
-\blank[1*big]
+\blank[big]
-Hans Hagen, Harmut Henkel, \crlf
-Taco Hoekwater \& Luigi Scarso
+\startlines
+Hans Hagen
+Harmut Henkel
+Taco Hoekwater
+Luigi Scarso
+\stoplines
\blank[3*big]
-\starttabulate
+\starttabulate[|||]
\NC Version \EQ \currentdate \NC \NR
-\NC \LUATEX \EQ version \cldcontext{status.luatex_version/100},
- revision \cldcontext{status.luatex_revision},
- number \cldcontext{environment.luatexversion} \NC \NR
+\NC \LUATEX \EQ \cldcontext{LUATEXENGINE} %
+ \cldcontext{LUATEXVERSION} / %
+ \cldcontext{LUATEXFUNCTIONALITY}
+ \NC \NR
\NC \CONTEXT \EQ MkIV \contextversion \NC \NR
\stoptabulate