定理结束标记位置

定理结束标记位置

我对定理后的标记放置有疑问。我正在使用牛津大学出版社提供的样式文件,但我不太习惯。可在此处获取:

http://www.oxfordjournals.org/our_journals/imrn/for_authors/tex_template.zip

此样式文件想要\openbox在每个定理的陈述末尾放置一个,并\filledbox在每个证明的末尾放置一个。

如果用方程式结束证明,我知道该如何使用\qedhere来正确定位证明结束标记。但我不知道如何在上述情况下(在定理陈述之后)做类似的事情。许多定理、命题等都以方程式结尾,如果我使用上述样式表,框的位置会太低。

我该如何解决?

答案1

您可以\qedsymbol在使用之前重新定义,\qedhere如下所示:

\begin{proposition}
This is a funny equation
\begin{equation*}
a = b + c\,. \let\qedsymbol\openbox\qedhere
\end{equation*}
\end{proposition}

我不知道这是否可行,但你也许可以建议期刊的人员修复他们的课程文件,以便它能\qedhere按预期工作?

答案2

尝试一下:在数学环境中,将\qedhere命令放在 中\mbox,如下所示

\[ .... some numbers and equation. \mbox{\qedhere} \]

它无法完全正常工作,但现在插入的标记是打开的框,而不是已填充的框。我认为这是 bug amsthm(见下文),所以你最好不要管它,让日志稍后处理。


该类oupau显然使用amsthm和不满足ntheorem其定理需求。这是它在定理环境中定义 QED 的开箱符号的方式:

\providecommand{\qedsymbolthm}{\openbox}
\DeclareRobustCommand{\qedthm}{%
  \ifmmode \mathqed
  \else
    \leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill
    \quad\hbox{\qedsymbolthm}%
  \fi
}
\def\@begintheorem#1#2[#3]{%
  \pushQED{\qedthm}\deferred@thm@head{\the\thm@headfont \thm@indent
    \@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}%
    \@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\@iden}%
    \@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}%
    \thm@swap\swappedhead\thmhead{#1}{#2}{#3}%
    \the\thm@headpunct
    \thmheadnl % possibly a newline.
    \hskip\thm@headsep
  }%
  \ignorespaces}
\def\@endtheorem{\popQED\endtrivlist\@endpefalse }

我认为问题实际上不是出在牛津大学出版社!我认为问题在于amsthm!请参阅那里的定义\qedhere

\newcommand{\qedhere}{%
  \begingroup \let\mathqed\math@qedhere
    \let\qed@elt\setQED@elt \QED@stack\relax\relax \endgroup
}

以及证明环境的定义

\providecommand{\qedsymbol}{\openbox}%
\newenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep
        \itshape
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}

我认为pushQEDpopQED命令的定义只是为了适应不同的结束符号!问题显然在于 的定义\qedhere\math@qedhere它在数学环境中调用。不幸的是,在\setQED@elt(在文本模式下调用)中使用的定义,它处理 QED 堆栈中的当前 qed 符号,而是\math@qedhere依赖于

\newcommand{\mathqed}{\quad\hbox{\qedsymbol}}
\def\linebox@qed{\hfil\hbox{\qedsymbol}\hfilneg}

它明确引用了\qedsymbol,它被定义为oupau.cls。简而言之,amsthm包使用两种不同的方式访问 QED 符号,具体取决于环境是否自然结束(以\popQED)或者是否使用插入符号\qedhere)或者您是否在数学环境中。我认为这是个 bug。

相关内容