我通过 TeX Stack Exchange 网站上的几个示例了解了 LuaLaTeX 的强大功能。您能推荐一些书籍或其他资源来学习 Lua 编程吗?我想学习 Lua 中的变量、循环、条件、字符串操作、编写函数等,然后将其用于 LaTeX。
答案1
有三个权威资源可以学习 Lua 编程。
Roberto Ierusalimschy 著《Lua 编程》
您可以免费在线阅读第一版,但由于该书是为 Lua 5.0 编写的,而 Lua 的当前版本是 5.3,因此在线版本的实用性有些有限。最新版本以平装本形式提供,并且始终涵盖 Lua 的最新版本。这是一本非常好的书,我建议您阅读它。
《Lua 编程精粹》由 LH de Figueiredo、W. Celes 和 R. Ierusalimschy 编辑
本书介绍了 Lua 中各种计算问题和算法的实现。它还提供了有关如何编写快速高效的 Lua 代码的建议。但是,它要求读者已经对 Lua 语言有很好的理解。
Lua 参考手册
参考手册实际上并不是从头到尾阅读的东西,但它列出了 Lua 解释器已知的所有函数和结构,以及它们的参数和偶尔的使用示例。
由于您是在 LuaTeX 的背景下提问,因此还有一些其他资源需要考虑。
LuaTeX 手册
texdoc luatex
或者http://mirrors.ctan.org/systems/doc/luatex/luatex.pdfLuaTeX 手册是一本参考手册,并不试图教如何使用 TeX 的 Lua 扩展。但是,它列出了所有可用的回调和方法。要了解如何使用它们,我推荐这两篇文章
- P. Isambert。使用 LuaTeX 可以做三件原本非常痛苦的事情。TUGboat,31(3):184–190,2010 年。https://tug.org/TUGboat/tb31-3/tb99isambert.pdf
- P. Isambert. LuaTeX:撰写段落需要什么 TUGboat,32(1):68–76,2011 年。https://tug.org/TUGboat/tb32-1/tb100isambert.pdf
由于这两篇文章也有些过时了,其中介绍的一些功能已被删除,最明显的是
token_filter
回调。当然,还有更多文章拖船处理 LuaTeX。更多 LuaTeX 在线资源
http://www.luatex.org/documentation.html
LuaTeX 项目网站包含一些较早的演示文稿。
http://wiki.luatex.org/index.php/Main_Page
LuaTeX Wiki 包含回调和节点的示例。
https://wiki.contextgarden.net/Lua
ConTeXt 有关 Lua 的 Wiki 页面。软件包
luaotfload
和lualibs
(后者由前者加载)实际上是从 ConTeXt 中提取的,用于与 Lua(La)TeX 配合使用。因此,Lua 语言的一些 ConTeXt 扩展也可用于 Lua(La)TeX。
答案2
我强烈建议您熟悉lua代码包,它提供了各种工具,使得在 LuaLaTeX 文档中启动和运行 Lua 代码变得更加简单。
\directlua
该软件包通过四个附加接口(宏\luadirect
和\luaexec
,以及环境luacode
和)补充了基本指令luacode*
。这些接口的不同之处在于 TeX 特殊字符(例如%
和)\
可以(或者更确切地说,必须) 可以在 LaTeX 和 Lua 之间输入和传递。该包还提供了用户级宏
\luastring
、\luastringN
和\luastringO
。这些宏对于将不同复杂程度的字符串从 LaTeX 传递到 Lua 非常有用。该包的用户指南非常清晰,写得很好。
答案3
我主要在复杂的 TikZ / PGFplots 图形中使用 Lua,在这里我可以使用更方便的语言来输出 LaTeX 代码,而无需任何额外的编译步骤。我从这两个文档开始学习:
- (请注意,正如评论中指出的那样,这个已经过时了) Pégourié-Gonnard,Manuel,《LuaLaTeX 指南》
https://github.com/lualatex/lualatex-doc- Montijano, Juan I.、Pérez, Mario、Rández, Luis 和 Varona, Juan Luis,“使用 LuaLaTeX 的数值方法”
https://www.unirioja.es/cu/jvarona/downloads/numerical-methods-luatex.pdf