babel 和 isodate 出现难以理解的错误

babel 和 isodate 出现难以理解的错误

所讨论的错误是:

! Undefined control sequence.
\ifthenelse #1#2#3->\let \bbl@temp@pref 
                                    \pageref \let \pageref \org@pageref 
...
l.19 \date{\today}

代码:

\documentclass{memoir}
\usepackage[english]{babel}
\usepackage[english]{isodate}
\begin{document}
\isodate
\date{\today}
\end{document}

意图:

我希望\thedate不要打印例如September 10. 2018而是2018-09-10

答案1

我使用 2012 至 2018 年的所有版本的 TeX Live 测试了您的示例。截至 2014 年,错误有所不同,但代码仍然不起作用。

这是因为memoir的定义\date与标准类不同。它对 的\protected@xdef参数\date执行定义,\thedate因此脚注或\thanks命令从中消失,这就是问题所在:isodate重新定义\today的方式使其无法生存\protected@xdef

你可以解决这个问题

\date{\protect\today}

相关内容