来自@cgnieder 的帮助xtemplate 文章:
基本上,有四个命令对于结构的定义很重要:
\DeclareObjectType {⟨object⟩} {⟨number of args⟩} \DeclareTemplateInterface {⟨object⟩} {⟨template⟩} {⟨number of args⟩} {⟨interface⟩} \DeclareTemplateCode {⟨object⟩} {⟨template⟩} {⟨number of args⟩} {⟨parameter⟩} {⟨code⟩} \DeclareInstance {⟨object⟩} {⟨instance⟩} {⟨template⟩} {⟨parameter⟩}
\DeclareObjectType
为什么、
\DeclareTemplateInterface
和 的参数数量有区别
\DeclareTemplateCode
答案1
正如链接文章所解释的那样,该xtemplate
包是一种实验性方法,用于形式化 LaTeX 设计和结构之间的分离。(它并不是唯一被探索的方法,还有一些重要的未解决的问题!)模板方法旨在实现的想法自我文档化。因此,例如,无需查看一些单独的文档即可读取接口声明的方式,并且应该可以合理地了解正在使用的键的性质。
对于对象/模板所采用的参数数量,在创建模板时重复对象类型所采用的参数数量的需求本质上与“清晰度”有关。这个想法是,您可以立即看到事情是一致的,并且还可以在例如阅读模板实现(代码部分)时看到预期的参数数量。
从技术层面上讲,完全可以简单地查找对象类型需要多少个参数,然后直接在代码的模板部分使用该值(\DeclareTemplateInterface
实际上并不需要this: 仅\DeclareTemplateCode
具有需要声明参数数量的内部函数)。