使用 LaTeX 命令和/或使用 ( ) 格式比较/解析日期是否安全\@ifpackagelater
?\@ifl@t@r
或者是否\@parse@version
有以文档形式提供此类功能的软件包?\ProvidesPackage
YYYY/MM/DD
不幸的是,尚不清楚(对我来说,任何指向相关文档的指针都非常受欢迎!)LaTeX 内核中的哪些命令是内部的并且可能会发生变化,哪些命令是稳定的并且可以被包作者使用。
答案1
与 expl3(具有非常清晰的内部和外部命令概念)相比,LaTeX2e 内核却没有,因此很难给出一个很好的经验法则来说明哪些命令是界面命令,哪些不是。毕竟内核是经过长时间由不同的人以不同的编码实践编写的。
但有几条指导原则:
阅读 clsguide.pdf 应该会给你一些想法 --- 这绝对是我们在 1993 年左右认为是重要的界面命令的文档(尽管不一定完整)
阅读 source2e.pdf 可能也是个好主意。虽然该文档在某些地方可以做得更好,但其中有很多关于内部命令的内容,而且或多或少大多数章节在开头都有一个命令摘要,它定义了接口命令
采用 CamelCase 的任何内容(不包含 @)显然是接口命令
任何涉及两个或更多@符号的东西很可能不是
@@ 绝对不行
每当有命令使用具有类似名称的辅助命令时,后者实际上并不是接口命令
我确信有例外,但是......
上述文件应为发行版的一部分,但也可在https://www.latex-project.org/help/documentation/