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 Mark IV (the version known as Mark II 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
libcandlibmruntimes. - There is no PDF backend code, all PDF generation is handled by ConTeXt’s Lua code.
-
There is no
fontloaderlua interface library, (OpenType) font loading is handled by ConTeXt’s Lua code. -
There are no
imgandpdf(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 (ConTeXt_and_Lua_programming/ConTeXt_Development/Mark IV) as well. You can do this by running
context --luatex
This works because the distribution contains all of the ConTeXt_and_Lua_programming/ConTeXt_Development/Mark IV source code as well as a luatex binary.
The new installation no longer contains the ConTeXt_and_Lua_programming/ConTeXt_Development/Mark II 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://www.pragma-ade.nl/context/latest/cont-tmf.zip 2>&1 | grep Last-Modified
Your installed version is displayed with the following commands:
context --version && luametatex --version
LMTX doesn’t update?
The install script (install.bat or install.sh) doesn’t update itself.
This is the reason why a new version may have been released, but your installed LMTX might not update.
If the install script has been changed, you need to replace it manually with the newest version before updating your LMTX installation.
- 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 .