Hi all, Almost a month after the previous snapshot, I have a released a new one. The current snapshot is much more of a work-in-progress than the previous one, so you can expect glitches and changes to the offered new functionality. Also , I have not gotten round to looking at Javier's problem with \lua inside OTPs yet, and there is at least one known problem with the current snapshot: the "output written to " message sometimes contains utter nonsense. That said, this snapshot also fixes a big bug in the previous version, as well as a few smaller ones. Noteworthy are: * the calculations that converted lua strings into tex units were horrendously wrong, this was discovered by Pawel. * io.lines() was still using the old, line ending sensitive, code from the lua core distribution --------------- Most of the really new stuff is internal in nature, with only a few bits user-visible. The big change is that all of the font manupulation that is done by 'TeX proper' (the Knuthian bits) is now isolated behind an internal API, with the implementation (partially re) written in C. This opens the road to a more extensible font machinery, but not much of that is implemented at present yet. What has been done: * The main font memory is allocated as needed^(1) instead of statically pre-allocated. * ligatures and kerns are separated completely from each other, so use of \noligatures no longer inhibits kerning as well * Metrics can be loaded using a callback: 'define_font'. The value returned should be a lua table representing a tfm file. * there is a new lua table: font. It has one function: font.read_tfm() that returns a table reprentation of the tfm contents, for use with the above mentioned callback (1) Currently, there is still a upper limit of 5500 fonts, because font identifiers like \tenrm need to point somewhere in the equivalence table. This limitation will be removed soon. Most likely things to be buggy or just wrong in this snapshot: * the interaction between automatically inserted hyphenation and ligatures (the function reconstitute(), for insiders) * ligatures with word boundaries. * I dropped suppport for "Level 1" OFM files. I would like to have a try at those extended font files, but I lack examples (fonts nor documents). I am not even sure such fonts have ever existed in the 'real world'. -------------- My focus for the following week(s) will be on the non-Knuth parts of the font machinery (virtual fonts, mapfiles, pdf output of wide fonts). -------------- An unrelated change is the inclusion of version 0.2 of the Lua "lpeg" library for string matching. See http://www.inf.puc-rio.br/~roberto/lpeg.html for full details on usage. --------------- And I've updated the manual, as always (pdf is inside the bz2 file) Have fun, Taco ----- Downloading and installation details: If you go to https://foundry.supelec.fr/frs/?group_id=10 you will see that there are two new released files: * luatex-snapshot-20070105.tar.bz2 This is the source tree. * luatex-snapshot-20070105-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).