感谢两位的回复,问题解决了……直到今天。执行了 tlmgr update -all of texlive2019,按照 texlive 文档中的描述重建了字体数据库,进程没有抛出错误,但是由于(并且只有 luatex)在终端上抛出了以下错误,并且没有生成输出 pdf。
luatex 的终端 stdout 在文件上运行,两个版本都使用了注释和未注释的内容:
源文件:
%\input luafonts
%\input opmac
%\font\tenrm="DejaVu Serif"
%\tenrm Hello
%\bye
%%% and the second part, of course commented while uncommenting the first part
%%% above this line.
\input opmac.tex
\input luaotfload.sty
\font\tenrm="DejaVu Serif"
\tenrm
Hello
\bye
终端输出:
FONT: AMS math fonts - \mathchardef's prepared, 12 math families preloaded.)
OPmac: etex.src macros detected (/home/m___/.texmf/tex/mtex/opmac-luatex.tex))
(/home/m___/.texmf/tex/mtex/luaotfload.sty
(/home/m___/.texmf/tex/mtex/ltluatex.tex)
luaotfload | load : FATAL ERROR
luaotfload | load : × Failed to load module "luaotfload-database.lua".
luaotfload | load : × Error message:
luaotfload | load : × "[string \"-- luatex-core security and io overloads
.......\"]:45: bad argument #1 to 'io_open' (string expect
ed, got nil)".
stack traceback:
...019/texmf-dist/tex/luatex/luaotfload/luaotfload-main.lua:181: in
upvalue 'loadmodule'
...019/texmf-dist/tex/luatex/luaotfload/luaotfload-main.lua:257: in
local 'initialize'
...019/texmf-dist/tex/luatex/luaotfload/luaotfload-main.lua:307: in
field 'main'
[\directlua]:1: in main chunk
+ 1! ~/proj:
两次运行的终端输出相同,我意识到,没有研究过 luatex 及其代码,这里一定有一些 luaprimitives 在起作用?您能否建议从哪里开始再次解决这个问题。谢谢。
答案1
我认为这在 LuaTeX 中从来没有起作用过。
添加字体加载器支持。
\input opmac.tex
\input luaotfload.sty
\font\tenrm="DejaVu Serif"
\tenrm
Hello
\bye
答案2
LuaTeX 需要在扩展模式下初始化字体加载(其中\font
原始模式能够加载 OTF 字体)。这可以通过\input luafonts
(来自 csplain 的简单宏文件)或\input luaotfloads.sty
如上所述的方式完成。
\input luafonts
\input opmac
\font\tenrm="DejaVu Serif"
\tenrm Hello
\bye