交叉引用回忆录中命名的事物

交叉引用回忆录中命名的事物

我想引用枚举中的一项。我有以下 LaTeX 代码:

\documentclass{memoir}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{newtxtext}
\theoremstyle{theorem}
\newtheorem{theorem}{Theorem}[section]
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}

\begin{document}
\begin{definition}[Peano Arithmetic, PA]
Peano Arithmetic is consists of following axioms:
\begin{enumerate}
\item[S1.] $\forall x : S(x) \neq 0$
\item[S2.] $\forall x : x=0\lor (\exists y: S(y) = x)$
\item[S3.] $\forall x \forall y : S(x)=S(y) \to x=y$
\item[A1.] $\forall x : x+0=0$
\item[A2.] $\forall x\forall y : x+S(y) = S(x+y)$
\item $\forall x : x\cdot 0 = 0$
\item[M2.] $\forall x \forall y: x\cdot S(y) = x\cdot y + x$
\item[O1.] $\forall x\forall y x\le y \leftrightarrow \exists z : y=x+z$
\item[Ind.] \label{induction} For any property $P(n)$, if $P(0)$ and $\forall n : P(n)\to P(S(n))$ holds then $\forall n P(n)$ also holds. 
\end{enumerate}
\end{definition}
 However the word \emph{property} in the axiom \ref{induction} is ambiguous.
\end{document}

我想要得到的结果是

(...)

然而这个词财产在公理中印地安那有歧义。

但不管用。即使我改为 或 ,情况也enumerate没有itemize改变description

我猜测命名标签不是可以标记的对象(因为我的试验表明标签指的是最近的未命名标签或环境\definition。)

有没有什么优雅的方法可以帮助它? 感谢您的帮助。

答案1

我删除了很多与此处提出的问题不太相关的内容。

有两个问题:(1)\item[...]不可引用,因为您正在手动设置项目,您不妨itemize在这里使用,(2)当您添加了,以检索您需要使用\label的数据时(这是完全不同的东西,引用)\ref\cite

在这种情况下,我们使用一个个人命令,该命令还设置从中获取信息的\item宏。请注意,如果您使用\labelhyperref。请注意,如果您在真实的文档中,您需要\item[#1]\phantomsection\@currentlabel{#1}在定义中使用\myitem

\documentclass{article}

\newtheorem{definition}{Definition}

\makeatletter
\newcommand\myitem[1][]{%
  \item[#1]\def\@currentlabel{#1}%
}
\makeatother

\begin{document}

\begin{definition}[Peano Arithmetic, PA]
Peano Arithmetic is consists of following axioms:
\begin{enumerate}
\myitem[S1.] $\forall x : S(x) \neq 0$
\myitem[S2.] $\forall x : x=0\lor (\exists y: S(y) = x)$
\myitem[S3.] $\forall x \forall y : S(x)=S(y) \to x=y$
\myitem[A1.] $\forall x : x+0=0$
\myitem[A2.] $\forall x\forall y : x+S(y) = S(x+y)$
\myitem[M1.] $\forall x : x\cdot 0 = 0$
\myitem[M2.] $\forall x \forall y: x\cdot S(y) = x\cdot y + x$
\myitem[O1.] $\forall x\forall y x\le y \leftrightarrow \exists z : y=x+z$
\myitem[Ind.] For any property $P(n)$, if $P(0)$ and $\forall n : P(n)\to P(S(n))$ holds then $\forall n P(n)$ also holds. \label{induction} 
\end{enumerate}
\end{definition}
However the word \emph{property} in the axiom \ref{induction} is ambiguous.
\end{document}

答案2

为此定义一个新的环境是有意义的,该description环境以 中定义的环境为模型memoir,但要为 增加适当的定义\@currentlabel。需要进行一些调整才能将定义放在正确的位置。

\documentclass{memoir}
\usepackage{amsthm}

\theoremstyle{definition}
\newtheorem{definition}{Definition}

\makeatletter
\newenvironment{labeldesc}
 {%
  \list{}{%
    \labelwidth\z@
    \itemindent-\leftmargin
    \let\makelabel\labeldesclabel
  }%
 }
 {\endlist}
\newcommand*{\labeldesclabel}[1]{%
  \hspace\labelsep
  \normalfont\bfseries #1.%
  \gdef\labeldesc@label{#1}%
  \aftergroup\let\aftergroup\@currentlabel\aftergroup\labeldesc@label
}
\makeatother

\begin{document}

\begin{definition}[Peano Arithmetic, PA]
Peano Arithmetic consists of the following axioms:
\begin{labeldesc}
\item[S1] $\forall x : S(x) \neq 0$
\item[S2] $\forall x : x=0\lor (\exists y: S(y) = x)$
\item[S3] $\forall x \forall y : S(x)=S(y) \to x=y$
\item[A1] $\forall x : x+0=0$
\item[A2] $\forall x\forall y : x+S(y) = S(x+y)$
\item[M1] $\forall x : x\cdot 0 = 0$
\item[M2] $\forall x \forall y: x\cdot S(y) = x\cdot y + x$
\item[O1] $\forall x\forall y x\le y \leftrightarrow \exists z : y=x+z$
\item[Ind]\label{induction}
   For any property $P(n)$, if $P(0)$ and $\forall n : P(n)\to P(S(n))$
   holds, then $\forall n P(n)$ also holds.
\end{labeldesc}
\end{definition}
However the word \emph{property} in the axiom \ref{induction} is ambiguous.
\end{document}

在此处输入图片描述

相关内容