[luatex] Luatex 0.46.0 announcement

Taco Hoekwater taco at elvenkind.com
Thu Nov 26 16:27:16 CET 2009


I have just uploaded the archives for a new luatex release, 0.46.0.

There are two important reason for this release:

* It fixes an xform bug that is quite serious as it produces
  invalid pdf files (see below)

* There is now experimental support for loading external .dll/.so
  files for lua extension modules. Copied from a message I sent to
  the dev-luatex list a few days ago:

> I have committed an experimental patch that
> enables dynamic loading for external compiled libraries unless --safer
> is given on the command-line.
> It is experimental because:
> * it assumes that all architectures except windows will be happy with
>   using dlopen (windows has its own code which does not need compile-
>   time support, but you have to have an installed lua51.dll from e.g.
>   http://luabinaries.luaforge.net ).
> * I made only minimal changes to kpathsea.
> * there may be lua libraries out there that fail horribly.
> As with pure lua require() files, luatex will only use kpathsea if the
> library is initialized already.
> kpathsea changes in detail:
> I added the kpse_clua_format identifier that searches for files with
> extension .dll and .so. The texmf.cnf setting for this variable is
> CLUAINPUTS, and by default it has this value:
> CLUAINPUTS=.:$SELFAUTOLOC/lib/{$progname,$engine,}/lua//
> This is the best I could do on short notice: the architecture has to
> be in the path somewhere, and the fastest way to do that is to search
> below the binary directory only.
> One level up (lib parallel to bin) would have been nicer, as the
> context minimals have arch and bin swapped (texmf-linux/bin as opposed
> to bin/i386-linux) but that would not have worked in texlive.

If you know how to compile dynamic libraries on your platform,
a good library to play with is Lua BitOp, http://bitop.luajit.org/
(single C source file and comes with a nice test lua script).

And here is the normal list of features and bugfixes in 0.46.0

New features:

* The build.sh script now has better support for new MacOSX-es
  (patch from Mojca).

* Luatex now has experimental support for dynamic loading of
  external compiled lua libraries. Building luatex and loading
  external .so/.dll files is reported to work on Windows,
  linux and osx, other platforms are still unknown.

* pdf.obj{type="stream"} no longer converts its argument to and
  from a tokenlist. This allows the use of binary data in the
  "string" argument. Such data does still have to hidden from
  the normal file parser by putting the code in a dofile()
  or by using string.char(), though.

Bug fixes:

* Luatex 0.45.0 was not able to find truetype nor opentype fonts
  if there were no callbacks defined (patch from Pawel).

* 0.45.0 printed the user input instead of the full pathname
  for \input-ed tex files.

* The TFM reader now rejects fonts with tfm names that are
  longer than 255 characters because such font names cannot
  be stored in a DVI file.

* The combination of \immediate\pdfxform followed by a later
  \pdfrefxform could cause broken pdf output files because
  the box used for the form could have been freed and even
  reused already at that moment in time, sometimes resulting
  in an invalid transformation matrix.

* The placement of super- and subscripts for displaystyle
  \int's in CambriaMath is now better than before. It still
  needs a tweak to the metrics though: in the current version,
  the italic correction has to be substracted from the width
  of the integral sign to get correct placement (context mkiv
  does this).  to be continued ...

The archives can be downloaded from supelec as usual:


You could also check out the sources via anonymous svn:

  svn co http://foundry.supelec.fr/svn/luatex/tags/beta-0.46.0

Bugs and feature requests can be added to the issue tracker at


Have fun,

More information about the luatex mailing list