这个问题是关于组织 CTAN 包中的文件。
我如何在文档类中加载lua
和tex
帮助文件,以便在 TeXLive 文件夹中安装包时找到它们?
我想将此包上传至 CTAN:挂历
它的一些功能依赖于运行辅助 Lua 函数,这些函数收集在辅助脚本中并按以下方式使用:
\luadirect{
require("./scripts/wallcalendar-helpers.lua")
monthEvents(
\luastring{\@t@monthName},
\@t@filterPred,
\@t@formatFunc,
\luastringO{\@t@formatCmd},
\luastring{\@t@eventsCsv},
\luastring{\@t@markDefaultsCsv},
\@t@minEvents
)}}
还有帮手tex
文件可以定义特定语言的事物名称,例如i18n/匈牙利语.tex
使用方法如下:
% Load internal translations
\InputIfFileExists{i18n/\@[email protected]}{}%
{\ClassError{wallcalendar}{File Not Found: i18n/\@[email protected]}{}}
这些方法仅当文件被复制到项目文件夹(用户文档所在的位置mycalendar.tex
)时才有效。
答案1
最简单的方法是将其安排wallpaper.lua
在与包文件相同的目录中(实际上是在 tex 的输入路径中的任何位置,但与包一起分发是最简单的,然后)
\directlua{require('wallpaper')}
任何最新版本的 luatex 都会默认.lua
扩展名并通过通常的 tex 输入路径搜索找到该文件。
相似地
\InputIfFileExists{i18n/\@[email protected]}
只要i18n
目录位于 kpathsea 搜索的标准位置,它就应该有效(尽管更简单的替代方法是使用
\InputIfFileExist{\@wall@calendarLanguage}
并将所有语言文件放在与安装版本中的类文件相同的目录中。