2016 年某个时候,该xparse
软件包将其k
-type 参数更改为更好的e
-type 参数。然后,不久之后,-type 参数的行为e
再次发生改变,以提高其可用性。
这在这个问题。
现在,我正在编写一个使用e
-type args 定义一些命令的类,并且我希望与其中一个版本兼容xparse
。值得注意的是,论文集运行 TeXLive 2016 的一个版本xparse
似乎支持老的-type args的行为e
,因此这是一个需要考虑的重要情况。
因此,我想\@ifpackagelater
在代码中使用它来检测我必须使用哪种类型的参数,并相应地定义我的宏。但是,我很难找到确切的版本(IE给出的日期\@ifpackagelater
)来区分这两个变化,IE从k
-type 到e
-type,以及从旧到新e
-type 的行为。
哪些变化的日期适合\@ifpackagelate
用于此目的?
更新:澄清我的需求。我想要做的是编写支持 TeXLive 2016 及更高版本的类代码,因为这是 arXiv 运行的,这意味着我必须:
- 如果 xparser 包太旧,则正常退出(通过提供正确的日期
\RequirePackage
)并且 - 区分两种
e
类型的行为以支持两者(通过提供正确的日期来\@ifpackagelater
所以我需要这两次变化的日期。
答案1
此更改于xparse
2016-11-18 提交b5adad3cd:
commit b5adad3cd26cf518099611baa4e8f6ea8f80ed0b
Author: Joseph Wright <[email protected]>
Date: Fri Nov 18 20:22:43 2016 +0000
Switch from "k"- to "e"-type
尽管后来又进行了几次提交,以确保一切顺利。此代码已发送至 CTAN,并附带发布字符串2016-11-21
替换先前版本2016-10-19
,其中仍然包含旧代码。
重大变化e
随后发生的类型行为94411cca7:
commit 94411cca7b70dbbd634ee42846e36039143aad87
Author: Bruno Le Floch <[email protected]>
Date: Wed Apr 12 17:46:46 2017 +0000
Make xparse e-type give separate arguments (see #226, #331) (breaking change)
This avoids requiring an auxiliary to use the output of e-type arguments. The
current "e{^_}" has a behaviour similar to the old "k^k_" (but allowing arbitrary
order) but quite different from the previous version of e-type arguments.
第一个包含此内容的版本是2017-05-13
;最后一个第一次尝试e
-type的是2017-04-01
。