我有一个 lua 文件,我会在我的许多 TeX 文档中使用它,并使用 dofile() 加载它。
我以为只要把它放在 (本地) texmf 树中就可以了,但这样做不行。相反,我收到了以下错误消息:
LuaTeX error cannot open the mycode.lua: No such file or directory
有什么好的解决办法吗?
- 我尝试将文件保存在 ~/Library/texmf、~/Library/texmf/tex、~/Library/texmf/tex/latex 甚至 ~/Library/texmf/lua 中(我必须创建目录)。
答案1
dofile()
需要完整路径(或相对于当前目录的路径)。您必须使用require()
将搜索 TEXMF 树的路径,或者使用kpse.find_file()
并将返回的路径传递给dofile()
。kpsewhich -show-path=lua
应显示 lua 文件的搜索路径。
答案2
require()
在这些 texmf 子目录中搜索(TeXlive2011、LuaLaTeX):
scripts/lualatex/lua/
scripts/luatex/lua
scripts/lua
scripts/lualatex
scripts/luatex
scripts
tex/lualatex
tex/latex
tex/luatex
tex/generic
tex
答案3
require()
通常应使用 kpse。例如在 中require("fontspec.lua")
找到。fontspec.lua
tex\latex\fontspec