[Dev-luatex] Snapshot 20070302

Taco Hoekwater taco at elvenkind.com
Fri Mar 2 17:32:29 CET 2007

Hi all,

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
   character array.

* 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.

Happy TeXing,



Downloading and installation details:

If you go to


you will see that there are three new released files:

* luatex-snapshot-20070302.tar.bz2
       This is the source tree.

* luatex-snapshot-20070302-win32.zip
       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).

* luatex-snapshot-20070302-linux-i386.tar.bz2
       An intel 32 linux binary (2.6.17)

More information about the dev-luatex mailing list