我在运行TeX Live 2023手动安装(不是通过发行版的 repo),并且在撰写本文时(2023-04-21)是最新的。
以下简短文档在最近升级后开始出现错误:
\documentclass[11pt]{article}
\usepackage{mathtools}
\usepackage{hyperref}
\usepackage{ntheorem}
\usepackage{cleveref}
\theoremstyle{plain}
\newtheorem{lemma}{Lemma}[section]
\title{}
\begin{document}
\maketitle
\begin{lemma}
\end{lemma}
\end{document}
具体来说,我收到的错误是
ERROR: LaTeX Error: No counter '[' defined.
在下列任一情况下,该症状都会消失:
我注释掉了
\usepackage{hyperref}
我注释掉了
\usepackage{cleveref}
我动了
\usepackage{cleveref}
多于\usepackage{ntheorem}
我想使用所有三个包,这样 1. 和 2. 就不是真正的修复了。至于 3.,它也有缺点:如果它在 之前加载ntheorem
,cleveref
则在交叉引用时似乎会丢失环境类型的跟踪:即使它是其他东西(定理、命题、定义等),也\Cref{blah}
总是会产生。Lemma <blah>
<blah>
在我访问的其他系统上没有发生这种情况(仍然是 Linux,仍然如此),这些系统很少TeX Live 2023
更新各自的发行版。我清楚地记得最近收到的一次升级可能引发了这个问题。TeX Live
hyperref
编辑
我按照下面一条评论中的建议回滚了hyperref
。由于我不知道如何立即执行此操作,因此我在此记录下来(根据这其他答案):
首先列出可以恢复到的版本:
$ tlmgr restore hyperref
Available backups for hyperref: 65758 (2023-04-21 17:23)
然后,真正实现恢复:
$ tlmgr restore hyperref 65758
Do you really want to restore hyperref to revision 65758 (y/N): y
目前这样就很好了:该文件在这个早期版本的软件包上编译成功。