我对定理后的标记放置有疑问。我正在使用牛津大学出版社提供的样式文件,但我不太习惯。可在此处获取:
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
}
我认为pushQED
和popQED
命令的定义只是为了适应不同的结束符号!问题显然在于 的定义\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。