PRAGMA ADE
mengumumkan dan sudah pun mengeluarkan enjin terbaru bagi ConTeXt
yang dinamakan sebagai LUAMETATEX
. LuaMetaTEX
ini terkandung di dalam versi ConTeXt
yang baru bernama LMTX
.
Memetik pengenalan mengenai LuaMetaTEX
melalui pautan LuaMetaTEX Reference Manual yang tidak akan saya terjemahkan ke dalam Bahasa Melayu ini,
(Perenggan ke-2) "... we could move on with a follow up tagged MetaTEX, a name we already had in mind for a while, but as Lua is an important component, it got expanded to LuaMetaTEX. This follow up is a lightweight companion to LuaTEX that will be maintained alongside."...(Perenggan ke-3 terakhir) “For ConTEXt users the LuaMetaTEX engine will become the default. As mentioned, the ConTEXt variant for this engine is tagged LMTX. The pair can be used in production, just as with LuaTEX and MkIV. In fact, most users will probably not really notice the difference. In some cases there will be a drop in performance, due to more work being delegated to Lua, but on the average performance is much be better, due to some changes below the hood of the engine. Memory consumption is also less. The timeline of development is roughly: from 2018 upto 2020 engine development, 2019 upto 2021 the stepwise code split between MkIV and LMTX, while in 2021 and 2022 we will (mostly) freeze MkIV and LMTX will be the default.”
Dengan adanya perubahan ini, saya putuskan untuk menyahpasang pakej texlive
yang disediakan di dalam repositori rasmi Arch Linux
. Sebaliknya saya dapatkan pemasangan pakej (stand alone) ConTeXt LMTX secara langsung yang diperolehi dari laman web rasmi PRAGMA ADE.
Juga pemasangan secara manual bagi pakej TeX Live yang diperolehi dari laman web TeX Users Group (TUG)
. Pemasangan adalah melalui pengguna biasa dengan penempatan di dalam $HOME
.
Kenapa? Kerana:-
texlive
dari repo Arch turut memasang pakej context
yang mengandungi versi MkIV
secara lalai. Paksaan untuk menggunakan enjin LuaMetaTEX
dengan opsyen --lmtx
tidak mendatangkan hasil.
Saya boleh memilih untuk tidak memasang pakej context
melalui pemasang upstream.ConTeXt LMTX
dan TeX Live
.ConTeXt
(yang saya pasang di dalam direktori $HOME/context
) mengeluarkan output berikut:-1$ context --version
2mtx-context | ConTeXt Process Management 1.04
3mtx-context |
4mtx-context | main context file: $HOME/context/tex/texmf-context/tex/context/base/mkiv/context.mkiv
5mtx-context | current version: 2021.07.23 18:55
6mtx-context | main context file: $HOME/context/tex/texmf-context/tex/context/base/mkxl/context.mkxl
7mtx-context | current version: 2021.07.23 18:55
1$ ls $HOME/context/tex/texmf-linux-64/bin
2context context.lua luametatex luatex mtxrun mtxrun.lua
LuaTEX
juga disokong oleh versi baru ConTeXt yakni LMTX
ini.Benar bahawa terdapat keadaan yang memerlukan pengguna memanfaatkan LuaTEX
berbanding LuaMetaTEX
.
Uji kaji yang saya jalankan sendiri melibatkan penggunaan MetaPost
bagi warna. Menggunakan dokumentasi colors-mkiv yang disediakan oleh PRAGMA ADE sebagai rujukan, saya cedok sebahagian kod arahan yang diambil dari topik MetaFun dengan opsyen ‘spot’ dan ‘multitones’ yang katanya (mengikut pemahaman sayalah) ditakrifkan / ditentukan secara langsung di dalam fungsi ini:-
\title{2) MetaFun}
\blank[2*big]
\dontleavehmode
\startMPcode
fill fullcircle scaled 3cm withcolor
.5 * spotcolor("whatever",(.3,.4,.5));
fill fullcircle scaled 2cm withcolor
spotcolor("whatever",(.3,.4,.5));
fill fullcircle scaled 1cm withcolor
spotcolor("whatever",(.3,.4,.5)/2);
\stopMPcode
\hskip.5cm
\startMPcode
fill fullcircle scaled 3cm withcolor
.5 * multitonecolor("whatever",(.3,.4,.5),(.5,.3,.4));
fill fullcircle scaled 2cm withcolor
multitonecolor("whatever",(.3,.4,.5),(.5,.3,.4));
fill fullcircle scaled 1cm withcolor
multitonecolor("whatever",(.3,.4,.5)/2,(.5,.3,.4)/2);
\stopMPcode
*
context filename
system > ConTeXt ver: 2021.07.23 18:55 LMTX fmt: 2021.7.25 int: english/english
mkiv lua stats > font engine: otf 3.118, afm 1.513, tfm 1.000, 9 instances, 3 shared in backend, 3 common vectors, 0 common hashes, load time 0.239 seconds
mkiv lua stats > used engine: luametatex version: 2.0916, functionality level: 20210630, format id: 587, compiler: gcc
mkiv lua stats > lua properties: engine: lua 5.4, used memory: 52 MB, ctx: 49 MB, max: 49 MB, symbol mask: utf (τεχ)
mkiv lua stats > runtime: 0.803 seconds, 1 processed pages, 1 shipped pages, 1.245 pages/second
TIDAK DIHASILKAN
dengan tepat.context --luatex filename
system > ConTeXt ver: 2021.07.23 18:55 MKIV fmt: 2021.7.25 int: english/english
mkiv lua stats > font engine: otf 3.118, afm 1.513, tfm 1.000, 8 instances, 3 shared in backend, 3 common vectors, 0 common hashes, load time 0.296 seconds
mkiv lua stats > used engine: luatex version: 1.13, functionality level: 7420, banner: this is luatex, version 1.13.0 (tex live 2021)
mkiv lua stats > lua properties: engine: lua 5.3, used memory: 102 MB, ctx: 102 MB, max: unknown MB, hash chars: min(64,40), symbol mask: utf (τεχ)
mkiv lua stats > runtime: 0.847 seconds, 1 processed pages, 1 shipped pages, 1.181 pages/second
DIHASILKAN
dengan tepat.Memandangkan pemasangan dibuat secara manual, kedua-dua distribusi TeX
ini perlu dikemaskini dengan cara manual jugalah. Kekerapan… pandai-pandailah nak ingat sendiri.
ConTeXt LMTX
:-cd
ke dalam direktorinya dan jalankan semula skrip; ./install.sh
TeX Live
:-tlmgr
itu sendiri; tlmgr update --self
TeX Live
; tlmgr update --all
Simpan fail modul di dalam direktori $HOME/context/tex/texmf-modules
.
ConTeXt LMTX
dengan:-context --generate
mtxrun --generate
context --make