我有一个latex 文件这表明存在 cleveref/thmtools 错误。简而言之:我有
\cref{problem:5,problem:4,problem:2}
在文件中,我期望在输出中
problems 2.1, 2.2, and 1.3.
相反,我得到
problems 2.1 to 1.3
换句话说,cleveref
认为参考文献列表是一个不间断的范围。
有办法修复这个问题吗?或者至少有一个解决方法?我正在使用 的一些功能thmtools
,所以我不能amsthm
独自拥有。
几点说明:
如果我注释掉该
\usepackage{thmtools}
行,那么我得到一个可接受的输出问题 1.3、2.1 和 2.2
thmtools
因此,和之间的相互作用cleveref
使事情变得混乱。
- 使用这些
declaretheorem
命令没有什么区别。 - 我有一个辅助文件的差异:一个带有
thmtools
加载,另一个不带有thmtools
。 - 我正在运行
pdfTeX
,版本 3.14159265-2.6-1.40.15 (TeX Live 2014) - 我提供的示例文件非常小:对于错误来说,问题和
defn
环境的编号是按部分进行的,并且两个环境共享一个计数器,这一点很重要。
答案1
一个简单的解决方法是将交叉引用指令编写为
\cref{problem:5,problem:4,,problem:2}
problem:4
注意和之间的双逗号problem:2
。这将给你
提示:只需使用问题 2.1、2.2 和 1.3。
附录:如果您希望在“2.2”之后和“and”之前的输出中使用逗号,您还需要提供指令
\newcommand{\creflastconjunction}{, and~}
(默认设置是不是插入逗号。)