在 documentclass 包中加载 Lua 帮助脚本

在 documentclass 包中加载 Lua 帮助脚本

这个问题是关于组织 CTAN 包中的文件。

我如何在文档类中加载luatex帮助文件,以便在 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}

并将所有语言文件放在与安装版本中的类文件相同的目录中。

相关内容