LMTX
Since April 2019, there is a new implementation of ConTeXt, named ConTeXt LMTX. It is tuned for LuaMetaTeX, the lean and mean successor of the LuaTeX engine.
From Hans' introductory article in TUGBoat:
- More than decade after introducing the ConTeXt version for LuaTeX, flagged MkIV (the version known as MkII ran under more traditional TeX engines), it is time for something new. As MkVI, MkIX and MkXI are already taken for special variants of MkIV files a new acronym was coined: LMTX. Such a sequence of letters must sound somewhat fancy but it actually has a meaning, or better: it has several. One is that it stands for LuaMetaTeX, an indication of an engine to be used. But one can also think of the components that make up ConTeXt code: Lua, MetaPost, TeX, and XML. But once it is clear to a user what (s)he is dealing with, it can also indicate a “Lean and Mean TeX eXperience”.
Contents
The LuaMetaTeX engine
The big difference between LMTX and all previous versions of ConTeXt is that LMTX uses a compilation and scripting engine that is specifically developed with ConTeXt in mind: LuaMetaTeX (the executable is named luametatex
). This new engine builds heavily on the LuaTeX engine, but it has been optimised heavily for ConTeXt use:
- There are no external dependencies except for thee core
libc
andlibm
runtimes - There is no PDF backend code, all PDF generation is handled by ConTeXt's Lua code
- There is no
fontloader
lua interface library, (OpenType) font loading is handled by ConTeXt's Lua code - There are no
img
andpdf
(poppler-based) lua interface libraries (the latter is replaced by the leaner dedicated libraryepdf
) - Various extensions have been made to other lua interface libraries
When it comes to typesetting, luametatex
is (at least for now) 100% compatible with LuaTeX > 1.0.
The LMTX distribution
Some extra scripting extensions in the engine have made it much easier to produce a standalone distribution of ConTeXt that is not only compact, but also capable of partial updates. See Installation for the new installation and update process.
Of course the new distribution defaults to running LMTX. But it can still process input using LuaTeX (MkIV) as well. You can do this by running
context --luatex
This works because the distribution contains all of the MkIV source code as well as a luatex
binary.
The new installation no longer contains the MkII source code or binaries, and is therefore unable to run it.
How to check for newer versions?
You might check for newer versions with the following command (in Unix):
curl -I http://pragma-ade.com/context/latest/cont-tmf.zip 2>&1 | grep Last-Modified
Your installed version is displayed with the following commands:
context --version && luametatex --version
Further reading
- Hans' introductory article in TUGBoat 40:1.
- The official page Installing CONTEXT LMTX is hosted by Pragma-Ade, which also provides
- a 2 pages installation guide,
- a 1 page leaflet for ConTeXt LMTX
- a 1 page leaflet for LuaMetaTeX.