ConTeXt:向标题模块添加元素

ConTeXt:向标题模块添加元素

因此,我试图弄清楚如何为 ConTeXt 编写模块。我正尝试基于对t-title.mkvi模块的微小更改来为标题页创建一个模块。我已复制并重命名该文件,并将其放在我的树中。

我的问题是,我很难理解如何添加元素。如果我\titleelement\c!place在适当的位置添加到模块,然后在文档中包含以下内容:

\setuptitle
  [title={Some Title},
   author={John Grasty},
   date={July 26, 2005},
   place={Some Place}]

它正如我期望的那样工作。

如果我pubplace用代替place,则会出现“未定义控制序列错误”。模块将接受的参数/变量定义在哪里?


原始模块的来源

答案1

您的问题不太清楚,但我高度怀疑您\c!pubplace在代码中使用了所谓的接口常量。在 ConTeXt 模块中,您通常调用\unprotect以便能够使用带下划线的内部名称。这样做的一个效果是还可以生成!一个字母,从而生成\c!pubplace一个控制序列。当然,这个控制序列必须在使用前定义,这是使用

\setinterfaceconstant{pubplace}{pubplace}

有一篇相关文章,问题相同,但问题表述更清晰,如下: 使用 ConTeXt BNF 模块。在我的回答的第二部分,我展示了如何将 BNF 模块移植到 MKIV。这可以作为您自己的模块的蓝图。

相关内容