luatex、OPmac、texlive2019 无法编译

luatex、OPmac、texlive2019 无法编译

感谢两位的回复,问题解决了……直到今天。执行了 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

相关内容