[Dev-luatex] Snapshot 20070302
taco at elvenkind.com
Fri Mar 2 17:32:29 CET 2007
After two weeks of code cleanup, here is a new snapshot. Most
changes are invisible, but there are some new things and quite
a few noteworthy bugfixes.
* The 'snapshot version' banner is now calculated dynamically
at build time. This aids in figuring out what binary people
are actually running, but it can possibly break the build on
systems that do not have a `date` command.
* The do_vf() function that checks for virtual font existance
is now run immediately after the font definition instead of
being postponed until characters are output.
* The 'define_font' callback interface has changed a little.
It is now:
retval = function (name,size,fontid)
where fontid is the internal font number of the font that
is currently being defined, and retval can be either a table
(as before) or a different, previously defined fontid. This is
useful if a previous definition can be reused instead of
creating a whole new font structure.
* The internal font data structure has been redone. Glyph index
inside a font is now handled by a sparse array, so that use
of e.g. 0xFB01 (fi-ligature) no longer creates a 64000+ entries
* The internal cache-ing of font metric information is turned
off completely, because it was based on the assumption that
name + size were a unique identifier for a font. This can no
longer be guaranteed.
* word boundary processing now works OK again, thanks to the
introduction of two virtual characters in the font table
definition. Besides the normal numeric entries in the
f.characters table, there can now also be two string keys:
"left_boundary" and "right_boundary". The ligatures and kerns
of the 'left_boundary' character are used for the pre-word
boundary processing, ligatures and kerns between characters
and 'right_boundary' are used for the post-word processing.
* Lua font table references are no longer cached by the
executable ,in order to preserve memory. (the only downside
is that font.fonts access is now slower because of the need
to recreate the lua table).
* There are other some small changes to the font table formats.
Please see the manual for details.
* A 'real' font can now still have virtual characters if they
are loaded via lua. Just set the 'commands' section and/or
the 'fonts' array to your liking, and it should work out.
If you have created no 'fonts' array at all, then the default
font (indentifier '1') is the current font, so that you
can create virtual duplicates of already existing characters.
Note: this does not work the other way. There can not be
'real' characters in a virtual font!
* Truetype-based opentype fonts no longer require Acrobat 7
t(hey are now written out as if they are normal truetype).
* A lua init script can now set 'texconfig.formatname' and/or
'texconfig.jobname'. If ther is no file or format specified
on the commandline, then, if, one of those keys is present,
that key will be used instead of simply quitting with an
* Placement of boxes and rules in right-to-left mode is debugged,
and now seems to work ok.
* Virtual font loading is debugged.
* Some memory leaks are resolved
* HZ font expansion should work ok again, but is not tested.
* a few of the warning during opentype loading have been removed
because the problems are rather harmless and turned out to be
triggered by almost every font.
Downloading and installation details:
If you go to
you will see that there are three new released files:
This is the source tree.
A cross-compiled (mingw) windows binary. This is a web2c
based binary, so it needs a texmf.cnf file (It will NOT
work if you have only miktex installed).
An intel 32 linux binary (2.6.17)
More information about the dev-luatex