我应该在 \NeedsTeXFormat 的可选参数中指定什么日期?

我应该在 \NeedsTeXFormat 的可选参数中指定什么日期?

4.1 小节适用于课程和软件包编写者的 LaTeX2e包含以下段落:

\NeedsTeXFormat {⟨format-name⟩} [⟨release-date⟩]

此命令告诉 TeX 应使用名为 ⟨ 的格式来处理此文件格式名称⟩. 您可以使用可选参数 ⟨发布日期⟩ 进一步指定所需格式的最早发布日期。当格式的发布日期早于指定日期时,将生成警告。标准 ⟨格式名称⟩ 是 LaTeX2e。如果存在日期,则必须采用 yyyy/mm/dd 格式。

我有两个关于 ⟨ 密切相关的问题发布日期⟩ 的参数\NeedsTeXFormat

  1. 如何在命令行或 TeX Live Utility 中获取我的 TeX 发行版当前使用的 LaTeX 内核的发布日期?
  2. 始终指定最新版本的日期是否是好的做法?如果我理解\NeedsTeXFormat正确的话,这样做将促使没有最新版本的用户更新其发行版。期望用户保持最新状态是否公平?我是否可能会“失去”可能无法获得最新发行版的潜在客户?

答案1

  1. 一种简单的方法是查找\fmtversion中的定义latex.ltx,例如(bash):

    $ grep edef.fmtversion $(kpsewhich latex.ltx)
    \edef\fmtversion{2011/06/27}
    

    或者(见egreg 的评论), 您可以使用:

    $ texdef -t latex fmtversion
    
    \fmtversion:
    macro:->2011/06/27
    

    或者可以直接询问 latex:

    $ latex '\typeout{\fmtversion}\stop' | grep LaTeX2e
    LaTeX2e <2011/06/27>
    
  2. “完美”日期应该是最低发布日期,以便文档可以与此版本或更新的版本兼容。

    • 我认为没有必要总是指定最新的发布日期。特别是 LaTeX 内核已经冻结多年了。因此,文档不太可能需要最新的 LaTeX 版本。有许多或多或少过时的 TeX 发行版(Linux 发行版中 TeX 发行版的更新周期很慢,...)。使用最新日期确实会给用户带来一些不必要的麻烦。
    • 另一方面,测试使用旧版本的文档/包也不太容易。这很费时间,而且我怀疑很多作者都不想成为考古学家。

    • 请求的软件包发布日期功能很有用,特别是如果使用较新版本的功能,例如:

      \usepackage{foobar}[2014/02/17]
      % or \RequirePackage inside packages/classes
      

      那么,对于用户来说,过时的错误消息比晦涩难懂的未定义命令错误或其他故障更清晰。软件包的文档/ChangeLog/版本历史记录(有时)有助于找到合适的发布日期。

相关内容