我有由几个子点组成的引理(基本上是类似公式的集合),我想通过“引理 1 (1)”在文中引用这些子点。
到目前为止我的代码如下所示:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\newtheorem{lemma}{Lemma}
\usepackage[shortlabels]{enumitem}
\begin{document}
\begin{lemma}\label{lemma}
This is a collection of formulas
\begin{enumerate}
\item Equation 1 \label{sublemmaOne}
\item Equation 2
\end{enumerate}
\end{lemma}
A reference to the first item of the lemma \autoref{lemma}(\ref{sublemmaOne}).
\end{document}
这在某种程度上是有效的,我甚至可以制作一个宏:
\newcommand{\refSublemmaOne}{\autoref{lemma}(\ref{sublemmaOne})}
然而,我看到了两个需要改进的目标
- 我更希望有一个超链接,而不是两个彼此靠近的超链接
- 我更愿意以某种方式使用通常的 \autoref{mylabel} 语法,这样在引用时我就不必关心我引用的是普通引理还是子点。
我既愿意接受直接解决引用问题的建议,也愿意接受以不同于使用枚举的方式来构造引理的建议(如果它仍然是一个带有子点的引理并且这有助于解决引用问题)。
答案1
使用该enumitem
包时,您可以使用选项设置引用的格式ref=format
,请参阅enumitem 手册第 3 页。以下示例中格式设置为
\thelemma (\arabic*)
它打印计数器\the
的值,lemma
然后打印(=当前枚举)计数器的表示,(
然后打印。\arabic
*
)
代码:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\newtheorem{lemma}{Lemma}
\usepackage[shortlabels]{enumitem}
\begin{document}
\begin{lemma}
\label{mylemma}
This is a collection of formulas
\begin{enumerate}[ref=\thelemma (\arabic*)]
\item Equation 1 \label{sublemmaOne}
\item Equation 2 \label{sublemmaTwo}
\end{enumerate}
\end{lemma}
A reference to the first item of the lemma \ref{sublemmaOne} or the second item \ref{sublemmaTwo}.
\end{document}
结果: