如何压缩一系列不同类型的参考文献?
我们假设以下代码:
\documentclass{article}
\usepackage{amsthm}
\usepackage{cleveref}
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
\newtheorem{cor}[thm]{Corollary}
\newtheorem{prop}[thm]{Proposition}
\crefname{lem}{Lemma}{Lemmas}
\Crefname{lem}{Lemma}{Lemmas}
\crefname{thm}{Thm.}{Thms.}
\Crefname{thm}{Thm.}{Thms.}
\crefname{cor}{Cor.}{Cors.}
\Crefname{cor}{Cor.}{Cors.}
\crefname{prop}{Prop.}{Props.}
\Crefname{prop}{Prop.}{Props.}
\begin{document}
\begin{thm}\label{A}A\end{thm}
\begin{lem}\label{B}B\end{lem}
\begin{cor}\label{C}C\end{cor}
\begin{lem}\label{D}D\end{lem}
\begin{prop}\label{E}E\end{prop}
We expect ``Thm.\@ 0.1, Lemma 0.2, Cor.\@ 0.3, and Prop.\@ 0.5'' here: \cref{A,B,C,E}.
We expect ``0.1 to 0.3 and 0.5'' here: \myawesomeref{A,B,C,E}.
\end{document}
是否有命令(上面表示为\myawesomeref
)cleveref
或其他包可以让我们实现这种自动化?我在撰写时可能会在整个文档中移动声明,因此我不想对数字或范围进行硬编码。
到目前为止我已经尝试过\labelcref
别名(参见hooy 的原始答案),但这种组合会改变 的输出\cref
,而我们实际上想保留 的输出。
是的,我看过如何引用范围而不是单独的数字?。
答案1
您确实可以使用cleveref
。您必须使用\crefalias{lem}{thm}
与 结合的方式将引理和其他环境声明为定理的别名\labelcref{...}
。
\documentclass{article}
\usepackage{amsthm}
\usepackage{cleveref}
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
\crefname{lem}{lemma}{lemmas}
\Crefname{lem}{Lemma}{Lemmas}
\crefname{thm}{theorem}{theorems}
\Crefname{thm}{Theorem}{Theorems}
\crefalias{lem}{thm}
\begin{document}
\begin{thm}\label{A}
A
\end{thm}
\begin{lem}\label{B}
B
\end{lem}
\begin{thm}\label{C}
C
\end{thm}
\begin{lem}\label{D}
D
\end{lem}
See claims \labelcref{A,B,D}.
\end{document}