RTL 文档中的 \qedhere

RTL 文档中的 \qedhere

在 RTL 文档中,QED 符号通常出现在页面左侧,即证明的最后一行(平齐)。许多证明以方程式结尾,在这些情况下,习惯上会使用命令\qedhere将 QED 符号置于适当的高度(通常它出现在最后一个方程式之后的一行)。

然而,在 RTL 文档中\qedhere,该命令假设(正确地!)方程式仍然从左到右,将 QED 符号移到页面的右侧,这看起来完全错误。

我不确定\qedhere在这种情况下正确的解决方案是否是真正“修复”命令。也许最好不要使用它,或者尽量避免以方程式结尾的证明。我想听听你的意见,以及是否可以\qedhere轻松修复。

这是一个最小的工作示例。

\documentclass{article}
\usepackage{amsmath,amsthm}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}

\begin{document}
\begin{proof}
ההוכחה מסתיימת במשוואה הבאה:
\begin{equation*}
x = 3.
\end{equation*}
\end{proof}

\begin{proof}
ההוכחה מסתיימת במשוואה הבאה:
\begin{equation*}
x = 3.\qedhere
\end{equation*}
\end{proof}
\end{document}

其结果为:

在此处输入图片描述

答案1

然而,在 RTL 文档中, \qedhere 命令假设(正确地!)方程式仍然从左到右,将 QED 符号移到页面的右侧,这看起来完全错误。

我不同意。QED 符号总是出现在行尾;在第一种情况下,行从右向左开始,因此 QED 符号应该出现在行尾,也就是左边。另一方面,在第二种情况下,行从左向右开始,因此 QED 符号也出现在行尾,也就是右边,这是完全正确的。

这实现了您的要求,但我发现它很奇怪而且很丑陋。

\documentclass{article}
\usepackage{amsmath,amsthm}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{Arial}
\makeatletter
  \def\displaymath@qed{%
    \relax
    \ifmmode
      \ifinner \aftergroup\linebox@qed
      \else
        \leqno % was \eqno
        \let\eqno\relax \let\leqno\relax \let\veqno\relax
        \hbox{\qedsymbol}%
      \fi
    \else
       \aftergroup\linebox@qed
    \fi
  }
  \@xp\let\csname equation*@qed\endcsname\displaymath@qed
\makeatother
\begin{document}
\begin{proof}
ההוכחה מסתיימת במשוואה הבאה:
\begin{equation*}
x = 3.
\end{equation*}
\end{proof}

\begin{proof}
ההוכחה מסתיימת במשוואה הבאה:
\begin{equation*}
x = 3.\qedhere
\end{equation*}
\end{proof}
\end{document}

在此处输入图片描述

相关内容