2

在 Linux 下,使用 Lua 5.1,我有一个位于隐藏目录下的 lua 脚本:~/.texmf/lua/print_table.lua. (它与 LuaTeX 相关,这就是它位于 texmf 目录中的原因。)我lua从我的主目录交互式运行,尝试访问require该文件,并收到以下错误消息:

> require('.texmf/lua/print_table')
stdin:1: module '..texmf/lua/print_table' not found:
    no field package.preload['.texmf/lua/print_table']
    no file './/texmf/lua/print_table.lua'
    ... [file not found in other - irrelevant - trees, either, of course]

> require('/home/me/.texmf/lua/print_table')
stdin:1: module '/home/me/.texmf/lua/print_table' not found:
    no field package.preload['/home/me/.texmf/lua/print_table']
    no file './/home/me//texmf/lua/print_table.lua'
    ...

因此,显然require将句点变成了斜线。转义句号不起作用:我尝试将句号加倍,在它前面贴一个反斜杠,然后在它前面贴两个反斜杠。有什么方法可以访问require在其路径中具有隐藏目录(或任何其他句号)的文件?

4

2 回答 2

4

require需要一个模块名称,而不是路径

您可能想要添加/home/me/.texmf/lua/?.luapackage.pathLUA_PATH。然后你就可以说require "print_table"

于 2012-08-10T13:08:55.900 回答
4

您可以使用loadfile而不是要求;这样,您可以指定直接路径。最近有个问题...

于 2012-08-10T12:26:02.673 回答