如何在定理中的枚举环境中引用项目的数量

如何在定理中的枚举环境中引用项目的数量

我有类似这样的东西:

\usepackage{amsmath}
\begin{document}
\begin{thm}
The following are true:
\begin{enumerate}
\item \label{foo} Foo
\item \label{bar} Bar
\item \label{baz} Baz
\end{enumerate}
\end{thm}

Refer to Theorem \ref{bar}

\end{document}

现在,对 bar 的引用显示为定理 1。我希望它显示为定理 1.2。有什么办法吗?给定理中的每个标签一个子编号?

答案1

我同意 Jubobs 的评论:使用“定理 1.2”很容易造成混淆。

可以这样做:

\documentclass{article}
\usepackage{enumitem}

\newenvironment{thmenum}
 {\begin{enumerate}[label=\upshape(\arabic*),ref=\thethm(\arabic*)]}
 {\end{enumerate}}

\newtheorem{thm}{Theorem}

\begin{document}
\begin{thm}
The following are true:
\begin{thmenum}
\item \label{foo} Foo
\item \label{bar} Bar
\item \label{baz} Baz
\end{thmenum}
\end{thm}

Refer to Theorem \ref{bar}

\end{document}

我会给这些项目一个独特的编号,以便更清楚地表明“定理 1(2)”指的是定理 1 中的陈述 2。

在此处输入图片描述

编辑功能请求

\documentclass{article}
\usepackage{amsthm}
\usepackage{enumitem}

\NewDocumentCommand{\refprefix}{m}{%
  \ifinproofref\else #1\fi
 }
\newif\ifinproofref
\newcommand{\proofref}[1]{\begingroup\inproofreftrue\ref{#1}\endgroup}

\newenvironment{thmenum}
 {\begin{enumerate}[label=\upshape(\arabic*),ref=\refprefix{\thethm}(\arabic*)]}
 {\end{enumerate}}

\newtheorem{thm}{Theorem}

\begin{document}
\begin{thm}
The following are true:
\begin{thmenum}
\item \label{foo} Foo
\item \label{bar} Bar
\item \label{baz} Baz
\end{thmenum}
\end{thm}
\begin{proof}
\proofref{foo} is easy. \proofref{bar} is not difficult and 
immediately proves also~\proofref{baz}.
\end{proof}

Refer to Theorem~\ref{bar}

\end{document}

的格式ref是这样的,可以省略。引用该项目时\thethm必须使用。\proofref

在此处输入图片描述

相关内容