从这里看到的很多问题来看,ConTeXt 似乎通常能够轻松解决 LaTeX 难以解决的问题。我愿意尝试一下,但有一个我非常依赖的软件包,它被bibleref
移植到 ConTeXt 中,但又没有被移植(据我所知)。
将 LaTeX 软件包移植到 ConTeXt 模块有多难?移植时需要了解哪些事项?
答案1
将 LaTeX 模块移植到 ConTeXt(或反之)涉及两个步骤:移植功能和移植接口。
对于像 bibleref 这样不涉及输出例程(与某些脚注包不同)或不大(与 biblatex 不同)的模块,移植功能相对简单。对于 bibleref,我会说移植功能几乎微不足道。
移植接口比较棘手。ConTeXt 最强大的一点是所有命令的接口一致,如果您希望新的 ConTeXt 模块与生态系统的其余部分相适应,则接口应遵循 ConTeXt 习语。例如,对于 bibleref,这意味着使用键值驱动的设置命令\setupbiblereferences
而不是宏驱动的配置;使用 ConTeXt 样式进行引用\inbible[book=...,chapter={list}, verse={list}]
(或某些此类变体)而不是“智能”编码,使用全名,例如separator
而不是sep
,提供标准功能(如和键)来更改输出的样式style
和color
颜色,具有适当的多语言支持,以便界面(键和值的名称)和输出(例如书的名称)随着主要语言的变化而变化(这并不像听起来那么困难),等等。
选择界面需要您熟悉现有的界面。因此,如果您想从 LaTeX 切换到 ConTeXt,这是最困难的部分。话虽如此,ConTeXt 邮件列表非常支持实现用户请求。如果您指定所需的功能(而不是简单地指向 LaTeX 包),ConTeXt 邮件列表中的某个人通常会发布一些实现这些功能的代码。然后,您可以将该示例代码用作界面和您需要的所有其他功能的参考。