软件包作者转向 LaTeX3

软件包作者转向 LaTeX3

我想使用尽可能多的 LaTeX3 内容(特别是和expl3)编写一个包。xparsextemplate

我应该读什么来了解这些?

尤其是:我知道有关于expl3和的很好的介绍xparse。我记得曾经读过一些关于的很好的文章xtemplate(有例子等),但找不到它(我在谷歌上搜索了 LaTeX3 项目网站、CTAN、TUGboat 和 PracTeX 期刊)。有人能帮我找到吗?

答案1

对于实现 LaTeX2e 新功能的编程包,您主要需要的是 LaTeX3 的编程层。

xparse另外,它还为您提供了一些帮助,帮助您使用可选参数或星号形式等以 2e 风格定义用户界面,但您可以将其视为您的包提供的功能之上的语法糖。相反,xparse独立使用时也非常有用,即,如果您使用 2e 方法定义命令,并且只想拥有更强大的用户界面设置。

templatefinally 是我认为正确但尚未准备好的东西,所以我只会谨慎使用它。我预计今年晚些时候会看到更多设计器界面基础层可用,但现在你至少需要为可能更大的界面变化做好准备。你要求提供有关模板的文档:当然有模板文件本身:template.dtx但也有Lars 的一篇短文和一些相关文章在项目网站上。

LaTeX3 编程层

关于 LaTeX3 (又名) 编程层的文档expl3,我建议阅读以下文档(按顺序):

expl3.pdf

对一些概念的一些介绍性说明

界面3.pdf

发布时 LaTeX3 编程层所有功能的完整接口描述。有许多模块尚未成为稳定内核的一部分(在目录中l3kernel),但本文档中的内容是我们认为“稳定”的所有内容的描述。

虽然可以进行较小的更改,但程序员l3kernel可以利用强烈鼓励订阅LaTeX-L 邮件列表:列表中会发布有关功能弃用或修改的公告。

本文档是一份参考文档,因此函数是按模块记录的,而不是真正的语言学习手册 --- 抱歉后者尚不存在。它也没有提供许多如何使用构造的示例,而是记录了特定的接口。

source3.pdf(一开始不要读:-)

为了理解这是如何实现的,可以阅读source3.pdf提供规范以及完整文档代码的文档。但是,我建议不要从这里开始,原因如下:

  • 核心模块实现了构建高级构造所必需的数据结构和函数。因此,它们(至少如果可能经常需要它们的话)是为速度而定制的,这意味着那里使用的一些技巧不适合在内核之外进行编码
  • 核心模块建立在 TeX 的基元之上,因此它们只能部分使用 的核心概念expl3。例如,您会发现\exp_after:wN(我们也称为\expandafter)的很多(约 450 个)用法,而我认为在expl3内核之外的正常编程中,这个命令永远不应该或几乎从不使用。

如何使用编程层

了解如何使用 LaTeX3 编程层的更好起点是本站问题回复中给出的示例,也可能是更高级的模块。目前,内核目录中只有l3coffins.dtx我推荐的这些。随着时间的推移,将会有更多的内容。

答案2

好吧,对于,请阅读和expl3的文档,尤其是;对于和,请阅读 文档。expl3source3source3xparsextemplate

通常,它们都在您的计算机中。使用命令

texdoc 解释3

expl3例如,在终端中获取的文档。

一个很好的例子xtemplate可能是xfrac打包成l3packagesbundle。的文档xfrac非常方便。

就我个人而言,xparse这是最容易使用的。expl3定义了一种新的编程方案,需要付出更多努力才能解决。我从未使用过xtemplate

相关内容