似乎 ams 包中存在一个问题,导致 fleqn 选项和 \qedhere 命令之间不兼容。
如果将它们一起使用,则 qed 符号将被刷新到等式的左边,而不是右边。
在 ams 修订历史记录中,我看到一行关于“fleqn/qedhere”问题的错误修复,该问题与 amscls 版本 2.02 有关,而我使用的是 amsclass(以及 amsthm)版本 2.20。不过,我不知道他们修复的错误是否与我遇到的错误相同。
梅威瑟:
\documentclass{article}
\usepackage{amsthm}
\usepackage[fleqn]{amsmath}
\begin{document}
This is a statement.
\begin{proof}
This is the equation settling it all:
\begin{equation}
1 + 1 = 3 \qedhere
\end{equation}
\end{proof}
\end{document}
按照 amsthm 手册中的建议,将 括\qedhere
在 中\mbox{}
也不会产生想要的输出( qed 是等式右边的一个四元组)。
我确信这个问题有很多复杂的解决方案,但如果可能的话,我想避免它们。更确切地说,如果我能在不改变我的序言之外的任何内容的情况下修复它,那就太好了。
我抱有希望,因为谷歌似乎无法给我提供与该问题相关的任何信息,但我不相信只有我一个人遇到这个问题。所以我可能忽略了一些显而易见的东西。
提前致谢
答案1
更好的解决方案是使用定理包裹:
\documentclass{article}
\usepackage{amssymb}
\newcommand{\qedsymbol}{$\Box$}
\usepackage[fleqn]{amsmath}
\usepackage[amsmath,amsthm,thmmarks]{ntheorem}
\begin{document}
This is a statement. Make it long enough that the right margin is clearly delimited.
\begin{proof}
Use an explicit tag to get the qed box:
\begin{equation*}
1 + 1 = 3
\end{equation*}
\let\qed\relax
\end{proof}
\end{document}
得出的结果为:
答案2
这绝对是 中的一个(已知)错误amsmath
。而且它比你可能意识到的还要糟糕——当 qed 框设置了\qedhere
和fleqn
方程编号时,方程编号会突出到右边距。
fleqn
如果您正在使用并且想要在等式上使用一个没有方程编号的证明结束框来结束证明,那么可以使用以下解决方法:
\documentclass{article}
\usepackage{amssymb}
\newcommand{\qedsymbol}{$\Box$}
\usepackage{amsthm}
\usepackage[fleqn]{amsmath}
\begin{document}
This is a statement. Make it long enough that the right margin is clearly delimited.
\begin{proof}
Use an explicit tag to get the qed box:
\begin{equation*}
1 + 1 = 3 \tag*{\qedsymbol}
\end{equation*}
\let\qed\relax
\end{proof}
\end{document}
\qedsymbol
请注意和之间的区别\qed
;如果只有\qedsymbol
消失,则会在显示后插入一个额外的空白行来容纳现在不可见的框。
还有其他几个已知问题fleqn
,所有这些都在列表中,以便在下次打开代码进行彻底检查时进行查看和纠正。