该网站上有类似的问题,但没有一个能完全解决我的问题。
当使用时amsmath
,ntheorem
我要么得到一个缺少定理结尾符号(当我的定理以方程式结束时)或者我的交叉引用被搞砸了。
以下是缺少定理结尾标记的简单示例:
\documentclass{article}
\usepackage{amsmath}
\usepackage[thmmarks,amsmath]{ntheorem}
\theoremsymbol{*}
\newtheorem{myDefinition}{Definition}
\begin{document}
\begin{myDefinition}
I don't get my end of definition mark \ldots
\begin{equation}
x=y
\label{test}
\end{equation}
\end{myDefinition}
\ldots but the equation cross-reference works: \eqref{test}.
\end{document}
这是一个错误的交叉引用的最小例子(包调用amsmath
中省略了参数ntheorem
):
\documentclass{article}
\usepackage{amsmath}
\usepackage[thmmarks]{ntheorem}
\theoremsymbol{*}
\newtheorem{myDefinition}{Definition}
\begin{document}
\begin{myDefinition}
Now I get my end of definition mark \ldots
\begin{equation}
x=y
\label{test}
\end{equation}
\end{myDefinition}
\ldots but the equation cross-reference fails: \eqref{test}.
\end{document}
我可能忽略了一些显而易见的东西。
答案1
我可以在最新的 TL 2012 上验证您的问题。我同意 @egreg 的观点,它看起来不太好,但如果你想坚持自己的观点,那么您可以使用它\mbox{}
来让事情“运作”起来。
此技巧在使用mdframed
以frame
equation
\documentclass{article}
\usepackage{amsmath}
\usepackage[thmmarks,amsmath]{ntheorem}
\theoremsymbol{*}
\newtheorem{myDefinition}{Definition}
\begin{document}
\begin{myDefinition}
I don't get my end of definition mark \ldots
\begin{equation}
x=y
\label{test}
\end{equation}
\mbox{}
\end{myDefinition}
\ldots but the equation cross-reference works: \eqref{test}.
\end{document}
答案2
这有效
\documentclass{article}
\usepackage{amsmath}
\usepackage[ntheorem]{empheq}
\usepackage[thmmarks,amsmath]{ntheorem}
\theoremsymbol{*}
\newtheorem{myDefinition}{Definition}
\begin{document}
\begin{myDefinition}
I don't get my end of definition mark \ldots
\begin{empheq}{equation}
x=y
\label{test}
\end{empheq}
\end{myDefinition}
\ldots but the equation cross-reference works: \eqref{test}.
\end{document}
答案3
请尝试使用“开发”版本 1.33ntheorem
。
这个版本,虽然已经存在一年多了,但仍然有点不稳定,而且由于我在处理跳过时做了重大改变,所以没有经过充分的测试 - 所以请检查您的文档中的跳过。