场景是,我正在写一本书,看起来我需要做一些处理,因为文档类回忆录有一些很棒的功能,但 Octavio 有演示文稿。
现在,LaTeX 真正让我烦恼的一件事是它们使用全局命名空间,这意味着它们以不可预测的方式相互交互。我无法轻易预测 hack-and-splice 作业会做什么。至于查找和修复问题... 好吧..
如今,LaTeX 2e 有几十种变体,并且有无数预处理器支持它们。只要有一个支持命名空间,我就可以安全地进行处理。我不知道有什么,但这并不意味着它们不存在。有人知道有什么可以帮到你吗?
答案1
答案是否定的。除了实验扩展程序,没有一个 *TeX 引擎支持 TeX 端的命名空间(LuaTeX 在 Lua 端支持它们,但这不是您想要的)。
许多包在编写时不需要命名空间,而且系统非常稳定;在某些情况下可能会出现冲突,但通常这种情况发生在编写不佳的包中(我发现一个作者用作\value
内部命令的包:哎哟!)。
当然,尝试以不同方式重新定义相同结构的包将彼此不兼容,但命名空间无法解决这样的问题。
使用一致的命名方案为宏添加前缀(例如jonathan@
)。包使用相同前缀的可能性很小;在这种情况下,请更改宏前缀。