==============================================================
LuaTeX 1.16.0 2023-02-18
==============================================================
- Support structured destinations from PDF 2.0.
- PNG /Smask for PDF 2.0.
- Variable font interface for luahbtex.
- Different radical style defaults in mathdefaultsmode.
- Optionally block selected discretionary creation.
- Improvements for TrueType fonts implementation.
- More efficient \fontdimen allocation.
- Ignore paragraphs with only a local par node followed by direction
synchronization nodes.
==============================================================
LuaTeX 1.15.0 2021-12-31
==============================================================
New primitive \matheqdirmode.
By default the short skip detection is not adapted to r2l typesetting and that
hasn't been the case since the start of the project. Changing it could break
hacks that users came up with but when you set \matheqdirmode to a positive
value direction will be taken into account.
Several bug fixes (see ChangeLog).
==============================================================
LuaTeX 1.14.1 2021-12-30
==============================================================
struct dest (M.F. Krüger);
Ignore paragraphs with only a local par node followed by
direction synchronization nodes (paragraphs like that are seen
as empty paragraphs) (Hans Hagen);
more efficient fontdimen allocation (Hans Hagen);
improvements for glyph_stream_provider with TTF fonts (M.F. Krüger);
provide interface for variable fonts in luaharfbuzz (M.F. Krüger);
partoken primitives (Hans Hagen & Petr Olsak);
PNG /Smask for pdf 2.0;
\discretionaryligaturemode: optionally block select disc creation
(see [Dev-luatex] [PATCH] Nested discretionaries M.F. Krüger) (Hans Hagen);
different radical style defaults in mathdefaultsmode
(see [Dev-luatex] Uunderdelimiter & friends and mathstyles by M.F. Krüger) (Hans Hagen).
Several bug fixes (see ChangeLog).
==============================================================
LuaTeX 1.13.2 2021-04-10
==============================================================
MetaPost 2.01 (to mark the patch on the unwanted space in
btex etex).
==============================================================
LuaTeX 1.13.1 2021-04-02
==============================================================
Fixed an unwanted space in btex etex in metapost, introduced
after a patch for troff.
==============================================================
LuaTeX 1.13.0 2021-03-12
==============================================================
This is the release for TeX live 2021.
Callback for nesting level used in tracingmacros.
It is is a variant of \tracingstacklevels
by Petr Olsak implemented in pdftex and xetex.
Two TeX January 2021 DEK buglet fixes (H.Hagen)
Mark math glyphs as protected (in order to prevent processing
as text in base mode).
Removed width/ic compensation for traditional math code path.
When restricted system commands is enabled os.setenv has no effect.
Minor clean-up and bugs fixed (see ChangeLog)
==============================================================
LuaTeX 1.12.0 2020-03-15
==============================================================
This is the release for TeX live 2020.
--shell-restricted now forbids loading of dso (dll/so object)
Scaled virtual font
Aadditional primitives \eTeXglue[stretch|shrink]order for querying order the etex way.
Extra features runtoks
tex.getmodenames() (as these can differ per engine/version)
Permit nested runtoks in more complex situations of nesting (HH)
More accurate and correct test for tex.[set|get]math
Minor clean-up and bugs fixed
==============================================================
LuaTeX 1.11.1 2019-10-28
==============================================================
First release of luahbtex / luajithbtex,
luatex / luajittex with harfbuzz.
Small bug fixes, code clean up and a couple of new primitives
to match eTeX.
A new callback lua.getcodepage() for diagnostic purposes.
*** DROPPED the "page_objnum_provider" callback, replaced with "page_order_index". ***
See ChangeLog and the manual.
==============================================================
LuaTeX 1.10.0 2019-03-15
==============================================================
This the release for TeX Live 2019.
Small bug fixes, code clean up.
This is a stable release: only bug-fixes until the next TeX Live.
==============================================================
LuaTeX 1.09.2 2019-01-19
==============================================================
This is a transitional release to LuaTeX 1.10 for TeX Live 2019
==============================================================
LuaTeX 1.09 2018-10-23
==============================================================
(1) This is a release that fixed some bugs, and the latest
with lua 5.2.
(2) luaffi is still incomplete, so very likely there will be
a new release 1.09.1 before the next year.
==============================================================
LuaTeX 1.08 2018-08-28
==============================================================
(1) This release is a prelude to 1.10, the next stable iteration of LuaTeX
after version 1.00.
(2) Lua 5.3 is now considered to be default and we might use 5.4 in version
1.10. There are no real functional changed expected. You still need to rename
the binary for 5.3!
(3) Binary mode is no longer available in MPlib but it is still available in
stand alone MetaPost. This simplifies compilation and reduces dependencies.
(4) The dependency on Poppler for pdf image inclusion has been removed. We
now use a small dedicated library written by Pawel Jakowski. We no longer
need c++ compilers. We're in the process of making it behave well on all
platforms. It has been tested on intel platforms.
(5) We know that there can be some (alignment) issues with the arm platform
but these are looked into. Therefore, later this year we will release 1.09.
Version 1.10 is planned for TeXlive. We hope that ffi works ok on intel and
arm platforms at that point.
(6) There have been some extensions to the Lua libraries and some callbacks
have been added. Also, a few new primitives have been introduced. The
documentation mentions the stable extensions.
(7) There are the usual bug fixes and cleanups but there have been no real
fundamental changes in the API.
==============================================================
LuaTeX 1.07 2018-01-17
==============================================================
(1) This release brings Lua 5.3 to LuaTeX. We have tested an experimental version
for a few months and not encountered issues.
(2) If you use Lua 5.3 you should be aware of a few changes in the language and
its implementation. Numbers are now either integers or floats but are cast
automatically.
(3) In some cases (e.g. string.format) there is a more strict check. A float always
has a decimal appended when serialized, so 1 becomes 1.0 as string.
(4) We keep supporting the bit32 library on top of the new bit operators. Be aware
of the fact that currently LuajitTeX does not have these operators.
(5) Performance of LuaTeX with Lua 5.3 can be slightly better than with 5.2 but this
really depends on your usage of Lua. In practice there should be no slowdown.
(6) We are aware of possible substantial slowdown of string.format depending on the
platform and compiler. This depends on Lua too and will be resolved in due time.
(7) If you want to test with Lua 5.3 then have to build LuaTeX with --lua53. Because
ConTeXt will switch to 5.3 after this release there will be binaries available at the
ConTeXt garden.
(8) The 2018 TeXlive distribution will ship with LuaTeX using Lua 5.2 but there will
likely be an additional binary LuaTeX53 available.
(9) From 2019 TeXlive will ship with LuaTeX and Lua 5.3 as default. We provide --lua52
as build flag for a while. By then we might be looking at Lua 5.4 already.
(10) There are the usual patches and cleanups and a few small additions (mentioned
in the manual) but there have been no fundamental changes in the API (apart from
removing depricated and undocumented functionality).
==============================================================
LuaTeX Release 1.0.4 was released 2017033109
==============================================================
Several small fixes. This version will go on texlive.
==============================================================
LuaTeX Release 1.0.3 was released 2017021514
==============================================================
This is a minor upgrade and probably this version will go on texlive. There are a couple
of fixes and additions.
- We added a few a few more helpers in the pdf namespace (like set|get]gentounicode,
[set|get]omitcidset and set|get]decimaldigits. Some helpers were moved from the tex
to the pdf namespace.
- We added a build_page_insert callback for inserts so that one can for instance adapt
spacing on demand.
- On the agenda has been some more control over word start and end in hyphenation and
this is now possible via hyphenationbounds. We also updated the manual with some more
details.
- An old tracker item with respect to control over spacing around math was revived and
has resulted in mathsurroundmode (one can wonder how useful this is).
- We improved the resolution detection in included jpeg images.
- An ffi library has been added to luatex so that it is more in sync with luajittex. This
permits easy and flexible loading of libraries. Our policy is to make luatex as lean
as possible with no dependencies and this is a step towards that. Eventually we hope
to support all relevant platforms.
- The glue and skip register accessors have been improved as a step in freeing the user
from glue spec management.
- We added a few more getters and setters for nodes in order to get a more consistent
set.
- Irrelevant fields have been removed from the status table and an engine identifier
has been added.
- Of course there are numerous fixes and improvements but none of these have consequences
for the interfaces.
- The manual has been updated but will be improved over time.
==============================================================
LuaTeX Release 0.95 for TeX Live 2016 was released 2016042515
==============================================================
This is the official frozen TeXlive 2016 version.
- deleted 'beta' from the luatex_version_string
==============================================================
LuaTeX Release 0.95 was released 2016040415
==============================================================
This is a prerelease of the stable 1.0 version.
- glues now have gluespec merged in (idem math and insert)
- registers are still glue specs
- the spec field in glues are gone
- extra tex.setglue and tex.setmuglue
- obsolete dvi related dir fields removed
(if we are in time, it will be included in TeX Live 2016)
==============================================================
LuaTeX Release 0.90.0 was released 2016032512
==============================================================
This is the version that will go on TeX Live 2016
- mostly small bug fixes
- a few setters/getters added to the pdf namespace (were in the tex one before)
- a few patches to the lua interface macros
- a bit more control over protrusion edges
- no fundamental changes
==============================================================
Luatex Release 0.89.4 was released 2016031100
==============================================================
Intermediary release. Several bugs fixed.
==============================================================
Luatex Release 0.89.2 was released 2016022700
==============================================================
Intermediary release. Several bugs fixed.
==============================================================
Luatex Release 0.89.0 was released 2016020500
==============================================================
No fundamental changes, just some fixes / improvements (and of course new bugglets).
- New backend things:
\pdfvariable pkfixeddpi = integer % > 0 : use only default dpi (so one can do with one high res instance)
\pdfvariable ignoreunknownimages = integer % > 0 : ignore missing and inject something empty (to be used with care)
and one can do this:
\edef\foo{\pdfvariable foo}
\def \oof{foo}
\ifx\foo\oof don't fool me\fi
(side effect of no longer aborting on missing, so one implement a catch)
==============================================================
Luatex Release 0.88.0 was released 2016011500
==============================================================
This is a next step upto 0.90 and it has the following changes:
- mostly small bug fixes
- a few setters/getters added to the pdf namespace (were in the tex one before)
- The current libraries under libs are now:
* poppler-0.40.0
* mpfr-3.1.3
* luajit-2.1.0-beta1
* gmp-6.1.0
* zziplib-0.13.62
* zlib-1.2.8
* lua52-5.2.4
* pixman-0.32.8
* libpng-1.6.21
* cairo-1.14.6
==============================================================
Luatex beta-0.87.0 was released 2015121700
==============================================================
This is a next step upto 0.90 and it has the following changes:
- image data is no longer stored in the format (it was fragile anyway)
- pdf backend data generated when in ini mode is no longer stored in the format
- (incomplete) \mag support removed from pdf backend (this functionality is
kept in dvi mode)
- there are a couple of improvements that should make luatex run a little bit faster
(but of course that depends on the job at hand)
- some further pending issues / cleanup has been done (but this is not reflected in the
interface)
- there is a new primitive \nospace:
\nospace=1 do now not inject glue for spaces (not even zero glue)
\nospace=2 inject zero glue for spaces
- there are new primitives \hpack, \vpack and \tpack that are like \hbox, \vbox and
\vtop but they don't trigger callbacks
- we no longer keep track of older math character and delimiter definition states,
but this should normally go unnoticed
- from now on only ^^XX, ^^C, ^^^^XXXX and ^^^^^^XXXXXX are supported so no funny odd
values (three and five)
- texio.setescape(0) disables escaping to terminal (a matter of taste)
- the (current) lc codes are now saved with the (current) language when patterns are
loaded unless one hs used \hjcode instead of \lccode; overloading of \hjcodes is
possible (but of course goes ahead of hyphenation which is delayed till parbuilding or
packaging
- active characters can now be set with: \letcharcode123=\foo (experimental)
- there are some experimental new primitives but these will be described when they are
stable (currently being tested)
- there is more backend error reporting and all error messages adn warnings (the non-tex
ones) have been normalized
- of course there are the usual small fixes and additional setters and getters in libraries
(see manual)
==============================================================
Luatex beta-0.85.0 was released 2015111400 (5550)
==============================================================
-- roadmap
The 0.85 release is has a lot of changes. It is the prelude to 0.90 which itself is
a prelude to the 0.95 that will go on texlive 2016. The 1.00 release will happen
around the 2016 context meeting. After that 2.* will become the next experimental
branch (leading to 3.*). The most important changes between 0.80 and 0.85 are mentioned
below. For more information consult the manual.
-- the backend commands
There is a better separation between front- and backend code. Some of the generic
\pdf* commands have been promoted to core primitives (with different names), some
have been removes like ximagecolordepth and ximagebbox have been removed and
all that are left have been organized differently. The backend is now more abstract
and provides three primitives only
\pdfextension
\pdfvariable
\pdffeedback
The first replaces \pdfannot and alike, the second replaces the variables that can
be sused to control behaviour, and the third accesses the read only variables. See
luatex-pdf.tex in the context distribution for a plain definition file.
The big advantage of the separation (basically core (lua)tex + extensions) is that
changes in the backend don't have consequences for the frontend and it's easier to
locate possible issues in the code. We might split a bit more at the lua end too.
-- nodes
The boundary, dir and localpar whatsits are now normal nodes. The xforms and ximage
whatsits are now a special kind of rule nodes (subtypes 1 and 2) and known as box-
and image resources (see manual). Also, empty rules are now a valid subtype (subtype
3) with related commands \nohrule and \novrule.
At the lua end one can now access the fields of a spec subnode directly in the parent,
which has the benefit of more control and robust assignments (no need to check for
writeability) while we keep the concept of shared glue specs (tex internals). By
staying close to traditional TeX the Knuthian documentation still applies in most
cases.
The pdf action nodes are now pdf_action whatsit nodes (so no longer a pseudo core
node).
You can get the node subtypes with the node.subtypes function which adds a layer
of abstraction (foo.subtype = "string" might be added in the future).
-- expansion
The hz optimization already only supported level 2 optimization, but now has a variant
3 that does only stretch glyphs and not kerns. Pending is a change where we go back to
percentages instead of fractions of em.
-- math
The old/new codepath has been checked and italic correction which is fundamental
different between the engines has been (partially) redone.
We now have \mathsurroundskip that replaces mathsurround when it's non zero.
The \mathtoptions (old 1) directive can be used for testing. This primitive is mostly for
ourselves and used for development.
The \Umathcharclass, \Umathcharfam and \Umathcharslot primitives can be used to fetch
properties of a math character.
The new \Uleft, \Uright and \Umiddle fence operators accept "height ", "depth
" and the "noaxis" keyword as well the "exact" keyword for non-fitting ones. There
is also \Uvextension. Optionally one can specify a 'class'.
The \Udelimiter[under|over] and \U[under|over]delimiter primitives accept a width as well
as left, middle and right keywords (for non fitting ones). There is also \Uhextension.
The \abovewithdelimiter command accepts 'exact' as keyword (before the dimension) which nils
the excessive spacing. The normal vgaps still apply.
We have a new fraction primitive \Uskewed with a companion \Uskewedwithdelims. Optional
keywords are 'noaxis' and 'exact'.
There is a new directive \mathdisplayskipmode (esp for controlling the > 0 below skip check).
With \mathscriptsmode you can fix anchoring of scripts (as needed for chemistry).
The \Umathaccent commands accept a width and fraction argument.
-- hyhenation
The discretionary command now accept an optional "penalty " specification
where the penalty will be stored with the node. Default is hyphenpenalty.
-- file io
texio.write/write_nl now writes to file if the first argument is a (valid) number
reference to a file opened at the tex end; you can now open 128 files from the tex end
(0..127) and the system command is no longer executed with 18
-- lua interface
The tex. is hopefully better now. The tex.get* also can handle
the built in registers. Especially prevdepth access should work out ok now.
-- and ...
As usual there are lots of small fixes, improvements, overhauls, small additions,
hopefully all mentioned in the manual.
-- warning
This version is probably not compatible with the macro package that you use as some
engine specific initializations need to take place (\pdf commands) and some node types
have been changed. We now have separated pdf backend commands and the only left
primitive categories are: core, (tex), etex and luatex, so no more pdftex, omega and
umath (where the distinction became to fuzzy). Of course you can still prefix.
==============================================================
Luatex beta-0.81.0 was released 2015100722 (5350)
==============================================================
* A couple of primitives are removed, renamed and/or promoted to core (luatex) primitives.
Here's a summary. It might demand some adaption in the way macro packages initialize so we will mention them here explicitly in advance. As shown below, a simple way to get backward compatibility is to \let old ones to new ones. So,
Updating to this version also might demand an update in the
macro package that you use!
Here we go:
% removed, can be done with callbacks if needed, one can define dimen dummies, like
\newdimen\pdfeachlineheight
\newdimen\pdfeachlinedepth
\newdimen\pdflastlinedepth
\newdimen\pdffirstlineheight
\newdimen\pdfignoreddimen
% removed, were already obsolete, one can \let them
\let\pdftexversion \luatexversion
\let\pdftexrevision\luatexrevision
\let\pdftexbanner \luatexbanner
% promoted (from pdftex), so pdf prefix gone, one can \let them
\let\pdfnormaldeviate \normaldeviate
\let\pdfuniformdeviate\uniformdeviate
\let\pdfsetrandomseed \setrandomseed
\let\pdfrandomseed \randomseed
% promoted (from omega), so pdf prefix gone, one can \let them
\let\pdfpagewidth \pagewidth
\let\pdfpageheight\pageheight
% redundant (etex wins over omega), so \font-less ones gone, one can \let them
\let\chardp\fontchardp
\let\charht\fontcharht
\let\charit\fontcharit
\let\charwd\fontcharwd
% promoted (from aleph)
\pagerightoffset
\pagebottomoffset
% promoted (from pdftex)
\ifincsname
\expanded
\quitvmode
% removed (from pdftex), so *pdf* ones gone, one can \let them
\let\ifpdfabsnum \ifabsnum
\let\ifpdfabsdim \ifabsdim
\let\ifpdfprimitive\ifprimitive
\let\pdfprimitive \primitive
% promoted (from omega)
\pagedir
\bodydir
\pardir
\textdir
\mathdir
% promoted (from aleph)
\boxdir
% promoted (from pdftex)
\lpcode
\rpcode
\efcode
\leftmarginkern
\rightmarginkern
\tagcode
\letterspacefont
% promoted (from pdftex), so *pdf* ones gone, one can \let them
\let\pdfprotrudechars\protrudechars
\let\pdfadjustspacing\adjustspacing
\let\pdfnoligatures \ignoreligaturesinfont
\let\pdffontexpand \expandglyphsinfont
% promoted (from pdftex), so *pdf* ones gone, one can \let them
\let\pdfsavepos \savepos
\let\pdflastxpos\lastxpos
\let\pdflastypos\lastypos
% on the todo list are:
\pdfoutput : \outputmode
\pdfmatrix : will get a normal syntax, no weird { } parsing
\pdfcolorstackinit : might become obsolete
\pdfcolorstack : might become obsolete
So, apart from a few, the \pdf* primitives now relate to the backend only.
% There is also a new primitive:
\hyphenationmin
This one determines the minimum word length (per language).
At the same time we moved the (ex)hyphenpenalties
in the disc nodes so you can inject discretionaries with specific penalties.
There will also be an updated manual.
Hans
* new epdf.openMemStream(s,l,docid)
to create a pdf from a lightuserdata or string.
(experimental, do not use in production.)
* uniform random generator in mplib is now specific for each numbersystem;
* too_precise implemented for binary number system;
* several bug fixes.
==============================================================
Luatex beta-0.80.0 was released 20150319 (5195)
==============================================================
* New library newtokenlib. It will replace the current token lib.
* Fixed a bug on the normal random generator for double/decimal/binary
number systems.
* Several others bugs fixed.
==============================================================
Luatex beta-0.79.3.1 was released 20150122 (5140)
==============================================================
* Fixed a bug in mp.w with a wrong input that gives a seg. fault.
==============================================================
Luatex beta-0.79.3 was released 20150121 (5130)
==============================================================
* It's now possible with the MinGW compilers to build luatex and luajittex as DLL
for Windows 32bit/64bit. The files are:
libkpathsea-6.dll luajittex.exe luatex.exe texlua52.dll texluajit.dll
In the next release the build.sh script be updated; for the moment just add
"--enable-shared -disable-native-texlive-build " after --disable-all-pkgs
in TL_MAKE.
Building as DLL was tested only for Windows.
* When possibile symbols in the exe are now hidden:
this should avoid conflicts with the loading of dynamic shared object.
* several bugfixes and improvements. The patches for MetaPost
fix seg. faults occourred with wrong inputs.
The functions:
mp_get_numeric_value, mp_get_string_value, mp_get_boolean_value
works if the value is a variable (i.e. not an internal variable,
a loop variable and a macro argument);
only mp_get_numeric_value now has support for loop variable
and internal variable (but still not for macro arguments).
==============================================================
Luatex beta-0.79.2 was released 20141111 (5082)
==============================================================
* WARNING: the structure of the format file is changed.
After the Web2C \TeX's magic constant: "W2TX" there is now
a FORMAT_ID, a 32bit field that cannot be between 0 and 256 (included)
so that there are no conflicts with the preexisting structure
of the format.
The value can be seen with --debug-format and currently is
907 (the sum of the values of the bytes of the ASCII string "don knuth").
* There is a new set of lua functions for StructElement and Attribute,
convenient (even if not indispensable) for tagged pdf.
* several bugfixes and improvements.
==============================================================
Luatex beta-0.79.0 was released 20140328 (4960)
==============================================================
* The luafontloader now returns 'tsidebearing' glyph values
for OT/TT fonts, if applicable.
* new lua variables: stats.luatex_hashtype, stats.luatex_hashchars,
stats.lastluaerrorstring; the luajittex string hash method is now
lua 5.1 compliant which gives better results for similar strings
* new lua functions: tex.init_rand(), tex.uniform_rand(),
tex.normal_rand(), tex.lua_math_randomseed(), tex.lua_math_random(),
tex.show_context(); these helpers make luatex and luajittex compatible
* In the lua node interface, there were often issues with rubbish
in (especially) 'prev' fields because luatex itself never looks
at those values. This is now cleaned up to prevent weird stuff
happening inside lua node processing code.
* pdf.pageattributes, pdf.pagesattributes, pdf.info, pdf.catalog,
pdf.names and pdf.trailer now behave consistent and can be used
to add these properties at the lua end in addition to their \pdf*
counterparts atthe tex end; there are now pdf.get* and pdf.set*
commands for them too (in future versions the old ways can become
obsolete)
* new accessors pdf.geth, pdfgetv, pdfgetpos, getgetmatrix as well
as pdfhasmatrix helpers (in future versions the direct pdf.h and
pdf.v accessor can become obsolete)
* the pdf.pdf* variables have been removed (they were already
obsolete for some years)
* a new properties mechanism for associating lua tables with nodes
that get cleaned up when nodes a freed (see manual for details)
* several improvements to the way temporary (backend) data is stored
at the lua end (better protection, more consistent)
* a 'l' type for user nodes that holds a lua variable (can be set
at the lua end)
* if a late lua node is set at the lua end the string value can be
a function as well which is then executed during serialization to
the backend stream
* Various small speedups
* Various smallish fixes to the node direct interface
* LPeg is now at version 0.12
* Some small fixes to the CFF (font) parsing
* Font file inclusion reporting messages on the terminal now
comply to the texconfig.trace_file_names setting
* Removed some of the additional luafontloader.info() return
information that was added in 0.78.2, but could not work
properly.
* new primitive \luafunction (see manual), with associated
lua.get_functions_table() function
* lua error message reporting has been altered a bit to make
the distinction between \directlua and other lua source code
sources clearer
* Additional pdf document data functionality in the 'pdf' table
has been cleaned up internally
* Additional pdf destination names can now be set via lua.
* New callbacks: finish_pdfpage, show_error_message,
show_lua_error_hook, start_file, stop_file
* Handling of \tracinglostchars is fixed
* Embedded metapost library version is now 1.900
* luajittex is now included in the distribution. One can use
buildjit.sh to build both luatex and luajittex, where
supported by the platform
* Synchronization with the TeXLive sources updated the following
libraries:
* libpng is now 1.6.10
* poppler is now 0.25.2
==============================================================
Luatex beta-0.78.2 was released 20140113 (4748)
==============================================================
* Extended luafontloader's info() function to include data
from the 'pfminfo' and 'names' structure.
* Fixed a bug in the luafontloader library that made loading
some fonts extremely slow (LastResort.ttf)
* Removed a recent extension in the luafontloader library that
made loading fonts with lots of glyphs slow (ArialUnicoce.ttf).
Note: the extension made sure that there were no duplicate
glyph names in the font after loading.
* Restored --recorder output for lua files (dofile/loadfile/io.open)
* One-at-a-time pattern adding from lua used to require enormous
amounts of memory
* luatex's fontloader.to_table() no longer reports 'altuni' table
information for alternates that are solely driven by the font
encoding. This fixes loading time issues for fonts that fill
encodings by copying a single glyph many times, like e.g.
LastResort.ttf from Apple.
* The datestamp no longer appears in any banners. The associated
\luatexdatestamp primitive is deprecated and will be removed
in 0.80.0.
* Synchronization with the TeXLive sources updated the following
libraries:
* cairo is now 1.12.16
* pixman is now 0.32.4
* lua is now 5.2.3
* zlib is now 1.2.8
* poppler is now 0.25.0
* That same TL synchronization also fixes these issues:
* Always write "\nendstream" to the PDF for PDF/A-1b compliance.
* Large file support (>4GB) in Lua
* Big images could overflow on systems where sizeof(long)=4.
* In writing CID CFF fonts to the PDF, and end_dict() was missing.
* Unknown 'post' table versions (found in some broken ttf/otf
fonts) are now treated as-if they specified version 3.0.
* Fix crashes on 32-bit systems caused by bad C header inclusion
order
* Handle '--luac' and '--luaconly' properly
* luatex is now released under GPLv2+, not just GPLv2.
* luatex can now find .ofm metric files even if the extension
is not given explicitly.
* node.unset_attribute() was broken in 0.78.0
* The UTF-8 commandline patch from 0.78.0 for Win32 was removed
again (did not work properly)
==============================================================
Luatex beta-0.78.0 was released 20131231
==============================================================
* Instead of using expanded fonts, just calculate the expanded
width of glyphs where needed, and carry expand info in the
glyph nodes (all based on Hans' suggestions). All font expansion
functions are disabled and most are removed.
* New, faster (but limited) direct node access from lua, see
the manual for details
* Support for Apple Advanced Typography (AAT) information in
fonts is dropped
* Extended build script for mingw/msys (includes 64-bit support)
* Various patches from/via Akira Kakuta for better Win32
integration
* Fixes for some bugs in de pdfscanner library (mostly related
to inline images)
* Maximum hyphenated word length is now 64Kb characters.
* Various patches from Khaled Hosny and Luigi Scarso for the
luafontloader subsystem
* Fix for a crash when re-dumping formats
* Fix for a Selene unicode library bug where some characters in
UTF-8 were incorrectly flagged as having the 'Space' property
* Some smaller fixes
==============================================================
Luatex beta-0.76.0 was released 20130405
==============================================================
* Metapost 1.801.
* Small patches from TeXLive 2013, as well as an update to the
latest libraries (libpng, poppler, etc.)
* Speed up printing (of TeX strings) to the terminal and log.
* New lua function node.end_of_math().
* Fixed a memory leak in the lua function pdfscanner.scan().
==============================================================
Luatex beta-0.75.0 was released 20130301
==============================================================
News:
* New expandable primitive \Uchar.
* Metapost 1.790.
* New version of lnodelib.c with speedups by Hans and Luigi.
Also added some extra sanity checks to the Lua node field
setting functions.
* Support 'umath' in tex.extraprimitives(), so that formats can
make the \Umath* primitives unprefixed, now that they will be
provided by XeTeX as well.
* Removed a bunch of deprecated primitives
* \AlephVersion, \Alephrevision, \Alephversion, \Alephminorversion
* \OmegaVersion, \Omegarevision, \Omegaversion, \Omegaminorversion
* \omathcode, \odelcode, \omathchardef, \omathchar, \omathaccent,
\odelimiter, \oradical
* \Umathbotaccent, \Umathaccents
* Fix large file support.
* Fix Lua's loadfile().
* Removed the cidmap callbacks again (let that be done by user lua
code after the fact).
* Removed the fatal error on fonts where num_glyphs is too high,
as that problem is actually harmless.
* Some compilation issues under Win32 and Solaris resolved.
* Allow math extender objects to be zero width.
* The 'epdf' library has been extended to deal with finding and
saving embedded files (catalog:numEmbeddedFiles() and catalog:
embeddedFile, new EmbFile object).
==============================================================
Luatex beta-0.74.0 was released 20121224
==============================================================
News:
* lua 5.2
There are no patches to the core Lua files; a future version
of luatex will switch to loading the regular lua 5.2 dynamic
library instead of depending on a statically compiled
one.
* A bleeding-edge version of luasocket is included, as there
is no 5.2-compatible official release yet.
* A new lua extension is the two-argument version of
string.dump from Luajit:
string.dump(function f, [boolean strip])
* mpost 1.780
* The implied existence of the following lua libraries is now
deprecated:
debug, unicode.*, luazip, lfs, lpeg, zlib, gzip, md5,
socket.*, profiler, epdf, fontloader, mplib, and
pdfscanner.
Future versions of luatex will load these modules on demand
from dynamic libraries.
Please update your sources to include a 'require' line for
each of the library modules mentioned.
* Two new callbacks: find_cidmap_file and load_cidmap_file
(used by the fontloader to discover .cidmaps)
==============================================================
Luatex beta-0.72.0 was released 20121210
==============================================================
News:
* update various used libraries, including mplib 1.770,
poppler 0.21, libpng 1.5, and lpeg 0.10.2.
* new 'pdfscanner' lua library.
* various OpenType math fixes, including \Umathcharnumdef.
* improved placement of bottom accents.
* various other small fixes that have accumulated over the past
year-and-a-half.
==============================================================
Luatex beta-0.70.1 was released 20110519
==============================================================
News:
* fixed: recorder file location from TL (Akira).
* fixed: missing newline on 'No output' line.
* fixed: relative names in synctex file.
* fixed: 16bit png images in generated %!PDF-1.4.
* fixed: building with (installed) libpng < 1.5.0
* fixed: year in --version output.
* fixed: box output to synctex.
* fixed: FontDescriptor for non-embedded OpenType fonts has an
invalid FontFile3 entry (#654)
* fixed: crash on non-existent images.
* fixed: small memory leak in the ipc code.
* fixed: tex.print() and tex.sprint() don't recognize -2 as the
first argument (#659)
==============================================================
Luatex beta-0.70.0 was released 20110506
==============================================================
News:
* fixed: various changes needed for libpng 1.5.2.
* fixed: node.fields() for nodes without subtype.
* fixed: non-argument use of os.execute().
* fixed: tex.[s|t|]print() with invalid catcode table arguments.
* fixed: recorder filename location with --output-directory.
* fixed: display alignment in TRT mode.
* luatex now uses the standard synctex files from Jérome Laurens.
==============================================================
Luatex beta-0.66.0 was released 20110412
==============================================================
News:
* fixed: linebreak_filter doesn't do its default job when
tex.linebreak is used
* fixed: \escapechar ignored by \meaning
* fixed: wrong px default
* fixed: font kern attribute inheritance
* fixed: "nop" unrecognized in virtual fonts
* fixed: assertion failure in dviluatex when font ptmr8t used
* fixed: tex.settoks for with strings with embedded zeroes
* fixed: an indexing problem with nonexistent font glyphs
* fixed: some crashes and other bugs on the 'subtype' and 'prev'
fields (not all node types have those fields)
* fixed: crash on token.csname_id ("")
* fixed: initialize the statically allocated node's type ids
* fixed: fencepost error in math parameter counting
* fixed: math family numbers > 255 are allowed
* fixed: compilation failure on Hurd
* fixed: a small bug leading to displacements when reading
the AccentTop table
* fixed: \directlua followed by \pdfximage generates error if
draft mode is active
* fixed: a problem with \vadjust pre in alignments
* fixed: a lua stack growing problem in the backend in 0.65.0,
resulting in an inability to create more than a few thousand
generated pages
* fixed: inclusion of Scribus-generated pdfs
* adapt: the default form margin is now zero (was 1bp before)
* adapt: libpng 1.4.4, zzuplib 0.13.60, mplib 1.504
* adapt: small changes to the build system and new imports from
the texlive repository
* feature: new function node.currentattr() queries the current
active attribute list
* feature: Lua font loading; ignore unknown enumeration keys in
MathConstants
* feature: JPEG 2000 image support
* feature: continuing work on the 'epdf' library
* doc: the 'epdf' lua library is now documented
* doc: various other manual corrections
==============================================================
Luatex beta-0.65.0 was released 20101213
==============================================================
News:
* The Aleph and Omega version primitives are deprecated.
* The Apple Snow Leopard Truetype font collections now work
properly.
* Libpng has been updated to 1.4.4, and zlib to 1.2.5.
* New lua functions node.next() and node.prev().
* The already deprecated for some time node.protrusion_skipable()
function has been removed.
* fontloader.apply_featurefile() and fontloader.apply_afmfile()
now return nil, on failure.
* The various node list fields in the lua node interface have
been renamed from 'list' to 'head', e.g. tex.box[0].head,
and the 'list' name is deprecated. For now, the deprecation
is silent, as 'list' will stay for quite some time. Please
update your lua source as soon as possible, though.
* The call node.type() now returns "node". The existing
functionality is otherwise unchanged.
* Luafilesystem has been updated to 1.5.0. NOTE: there is an
incompatible change in the directory iterator method.
* The restriction on linebreak_filter has been eased: at least one
horizontal box should be returned, but that is not necessarily
the last node any more.
* Backward compatibility has been restored for \meaning\mathchar
* node.first_character() has been renamed to node.first_glyph()
to better match its actual functionality.
* The \Umathaccent primitive now supports both/bottom keywords,
and \Umathbotaccent / \Umathaccents are now deprecated.
* The \Umathaccent primitive now also supports the fixed keyword,
which supports non-growing math accents even if the font says
there are extensible variants.
* Ongoing work on the epdf library.
Bugfixes:
* Assignment to \dimen65535 was broken earlier.
* .head.prev is now always initialized to null (0).
* luatex -lua=