font-sel.mkvi
无法加载系统字体的示例:
\definefontfamily [dejavu] [serif] [DejaVu Serif]
\definefontfamily [dejavu] [sans] [DejaVu Sans]
\definefontfamily [dejavu] [mono] [DejaVu Sans Mono]
\definefontfamily [dejavu] [math] [XITS Math] [scale=1.1]
\setupbodyfont[dejavu]
\starttext
\input knuth
\stoptext
出现以下错误:
...
selectfont > The requested font 'DejaVu Serif' has no files for the 'tf' alternative, Latin Modern is used instead.
selectfont > The requested font 'DejaVu Sans' has no files for the 'tf' alternative, Latin Modern is used instead.
selectfont > The requested font 'DejaVu Sans Mono' has no files for the 'tf' alternative, Latin Modern is used instead.
...
mkiv lua stats > loaded fonts: 2 files: lmroman10-regular.otf, xits-math.otf
mkiv lua stats > font engine: otf 3.029, afm 1.512, tfm 1.000, 4 instances, load time 1.252 seconds
...
相同的错误任何其他系统字体。那么该怎么办呢?
尝试运行luaotfload-tool
?创建数据库需要一段时间,但能够访问所有系统字体:
$ luaotfload-tool --find='MuseJazz' -F
luaotfload | resolve : Font "MuseJazz" found!
luaotfload | resolve : Resolved file name "/usr/share/fonts/mscore/MuseJazz.ttf"
再次强调:
luaotfload-tool --update
不幸的是,仍然无法加载字体:
export OSFONTDIR="/usr/share/fonts;$HOME/.local/share/fonts;/usr/local/share/fonts;$HOME/.fonts"
context test
然后我尝试:
context --generate
它可以运行,但声称什么也不做。我想这是因为它是用于单用户安装的,并且缺乏对/usr/share/tex*
目录的写访问权限。相反,我必须运行这个:
mtxrun --generate
这写入~/.texlive2017/
但我仍然无法运行 wiki 所说的我接下来应该运行的命令:
$ mtxrun --script fonts generate
mtxrun | unknown script 'fonts.lua' or 'mtx-fonts.lua'
$ mtxrun --script fonts --list --all --pattern='*'
mtxrun | unknown script 'fonts.lua' or 'mtx-fonts.lua'
好的,让我们运行任何有--generate
选项的东西:
$ luatools --generate
mtxrun | unknown script 'base.lua' or 'mtx-base.lua'
不...好的,让我们切换到root
用户。
$ kpsewhich texmf.cnf
/usr/share/texlive/texmf-dist/web2c/texmf.cnf
首先编辑texmf.cnf
以将 OSFONTDIR 替换为上面的值。luaotfload-tool
按照上述方法更新数据库。让我们看看是否mtxrun
知道该fonts
脚本……不。首先运行context --generate
然后mtxrun --generate
。现在有一些明显的成功,因为我可以运行mtxrun --script fonts generate
。不幸的是,生成的字体数据库似乎不了解系统字体:
$ mtxrun --script fonts --list --all --pattern='*' | egrep -i muse | wc -l
0
尽管mtxrun --generate
只修改了全局/usr/share/texlive/texmf-var/
位置而不是/root/*
,但只有 root 用户才能访问这些更改。切换回主用户后,我仍然无法运行此命令:
$ mtxrun --script fonts generate
mtxrun | unknown script 'fonts.lua' or 'mtx-fonts.lua'
我不知道下一步该尝试什么。
[*] Fedora 上的 Texlive 似乎是一个混合日期和 svn 修订版本:
- texlive.noarch 6:2016-52.20160520.fc28
- texlive-base.x86_64 7:20170520-41.fc28
- texlive-collection-context.noarch 6:svn36190.0-52.20160520.fc28
- texlive-collection-luatex.noarch 6:svn39902-52.20160520.fc28
- texlive-context.noarch 7:20170520-41.fc28
- texlive-luatex.x86_64 7:20170520-41.fc28
- texlive-context-title.noarch 6:svn36189.0-52.fc28.2