我想引用枚举中的一项。我有以下 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
宏。请注意,如果您使用\label
hyperref
。请注意,如果您在真实的文档中,您需要\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}