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

相關內容