我正在尝试引用theorem
位于内部的intertext
:
\documentclass{article}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{align*}
\intertext{\begin{theorem} \label{thm:my-theorem}
My theorem inside intertext.
\end{theorem}}
\end{align*}
\ref{thm:my-theorem}
\end{document}
然而,我得到:
参考第 1 页上的“thm:my-theorem”在输入行 10 上未定义。
有没有办法在intertext
命令中引用定理?
(当然,我的实际用例没有 MWE 那么毫无意义。在那里,我有一个assumption
环境,并且在长时间计算的过程中我需要引入一个假设。这就是我将 嵌套assumption
在 中的原因intertext
。但是,我认为该theorem
版本更通用。)
答案1
在 中align
,\label
命令被重新定义,但你可以在 中使用原来的命令\intertext
。假设你真的想这么做。
\documentclass{article}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{align*}
\intertext{\begin{theorem} \csname ltx@label\endcsname{thm:my-theorem}
My theorem inside intertext.
\end{theorem}}
\end{align*}
\ref{thm:my-theorem}
\end{document}
为了稍微改善一下糟糕的效果,您可以使用\shortintertext
,从mathtools
。
\documentclass{article}
\usepackage{amsmath,mathtools,amsthm}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{align*}
a&=b\\
\shortintertext{\begin{theorem} \csname ltx@label\endcsname{thm:my-theorem}
My theorem inside intertext.
\end{theorem}}
c&=ddddddddddd
\end{align*}
\ref{thm:my-theorem}
\end{document}
附加说明
cleveref
正如评论中所说,当加载时,这将不起作用。对于这种情况,请使用\csname cref@label\endcsname
。