luajittex は luatex が見つけたフォントを無視します

luajittex は luatex が見つけたフォントを無視します

とを使用するLuajitTeX, Version 1.10.0 (TeX Live 2019)と、ConTeXt ver: 2019.02.26 20:04 MKIV beta fmt: 2019.3.1次の MWE を実行できます。

\setupbodyfont[postscript,sans,12pt]
\starttext
Test
\stoptext

% engine=luajittex先頭に追加するとすべてが壊れます:

$ context font.tex 
mtx-context     | redirect texlua -> luajittex: luajittex --luaonly "/home/stenner/.local/bin/mtxrun" --script context font.tex --redirected
mtx-context     | run 1: luajittex --fmt="$TEXDIR/texmf-var/luatex-cache/context/a86c089b384a3076dc514ba966a1fac9/formats/luajittex/cont-en" --jobname="font" --lua="$TEXDIR/texmf-var/luatex-cache/context/a86c089b384a3076dc514ba966a1fac9/formats/luajittex/cont-en.lui" --c:currentrun=1 --c:engine="luajittex" --c:fulljobname="./font.tex" --c:input="./font.tex" --c:kindofrun=1 --c:maxnofruns=9 --c:redirected --c:texmfbinpath="$TEXDIR/bin/x86_64-linux" "cont-yes.mkiv"

This is LuajitTeX, Version 1.10.0 (TeX Live 2019) 
 system commands enabled.
open source     > level 1, order 1, name '$TEXDIR/texmf-dist/tex/context/base/mkiv/cont-yes.mkiv'
system          > 
system          > ConTeXt  ver: 2019.02.26 20:04 MKIV beta  fmt: 2019.3.1  int: english/english
system          > 
system          > 'cont-new.mkiv' loaded
open source     > level 2, order 2, name '$TEXDIR/texmf-dist/tex/context/base/mkiv/cont-new.mkiv'
system          > beware: some patches loaded from cont-new.mkiv
close source    > level 2, order 2, name '$TEXDIR/texmf-dist/tex/context/base/mkiv/cont-new.mkiv'
system          > files > jobname 'font', input './font', result 'font'
fonts           > latin modern fonts are not preloaded
languages       > language 'en' is active
open source     > level 2, order 3, name '/tmp/font.tex'
open source     > level 3, order 4, name '$TEXDIR/texmf-dist/tex/context/fonts/mkiv/type-imp-postscript.mkiv'
open source     > level 4, order 5, name '$TEXDIR/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv'
close source    > level 4, order 5, name '$TEXDIR/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv'
close source    > level 3, order 5, name '$TEXDIR/texmf-dist/tex/context/fonts/mkiv/type-imp-postscript.mkiv'
fonts           > defining > font with asked name 'texgyreheros-regular' is not found using lookup 'file'
fonts           > defining > unknown font 'texgyreheros-regular', loading aborted
[snip]

fonts           > !! No bodyfont has been defined and no defaults have been
fonts           > !! loaded (maybe due to a missing \starttext).

理論的には、ConTeXt はフォントを見つけることができます。

$ mtxrun --script fonts --list texgyreheros

identifier            familyname     fontname              filename                   subfont   instances

texgyreherosregular   texgyreheros   texgyreherosregular   texgyreheros-regular.otf

答え1

一般的に、ConTeXt が、確かに存在するはずのファイルを見つけられない場合、または定義されているはずの制御シーケンスが未定義であるとエラーが表示される場合、または不一致の形式で動作が停止する場合は、ConTeXt 形式とキャッシュを再構築してみてください。

# Remake the formats
context --make
contextjit --make
# Regenerate the file database
mtxrun --generate
mtxrunjit --generate

ファイル名ではなくフォント名でフォントをロードする場合 (例:TeX Gyre Herosではなくtexgyreheros-regular.otf)、フォント データベースも再ロードする必要があります。

mtxrun --script fonts --reload
mtxrunjit --script fonts --reload

関連情報