QED 符号并不总是与包 ntheorem 一起出现

QED 符号并不总是与包 ntheorem 一起出现

我想使用 ntheorem 包构建一些定理类型的环境。我编辑了以下源代码:

\documentclass[A4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[amsmath,amsthm,thmmarks]{ntheorem} 
\theoremstyle{plain}
\theoremheaderfont{\normalfont}
\theoremseparator{.}
\theorembodyfont{\normalfont }
\theoremsymbol{\ensuremath{\Box}}
\newtheorem{Def}{\bf Definition}

\begin{document}
\begin{Def}
    Let $n$ be a positive integer and $\mathbb{K}$ a field. Let $SL_n(\mathbb{K})$ denote the set of special linear group, that is
    $$SL_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times n}\mid |M|=1\}.$$
\end{Def}

 \begin{Def}
        Let $n$ be a positive integer and $\mathbb{K}$ a field. Let $SL_n(\mathbb{K})$ denote the set of special linear group, that is
        $SL_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times n}\mid |M|=1\}.$
\end{Def}

\begin{Def}
            Let $n$ be a positive integer and $\mathbb{K}$ a field. Let $SL_n(\mathbb{K})$ denote the set of special linear group, that is
            $$SL_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times n}\mid |M|=1\}.$$
        \vspace{-10ex}
        \begin{gather*}
        \end{gather*}
        \end{Def}
\end{document}

结果如下: 在此处输入图片描述

如定义 1 所示,当 Def 环境以 $$ ... $$ 结尾时,QED 框不会出现。但当我仅用 $...$ 结束整个 Def 环境时(如定义 2 所示),QED 框就会出现。

我尝试了很多方法,最后找到了一个办法来解决这个问题,那就是通过代码修改QED盒子的垂直空间:

\vspace{-10ex}
\begin{gather*}
\end{gather*}

在end\Def行之前添加。如定义3所示,这种方法可行。但是非常复杂。

有没有什么简单的方法可以解决这个问题?

答案1

您需要使用\[...\]或其他 LaTeX 数学显示环境,而不是纯 TeX $$...$$。许多 LaTeX 软件包都依赖于此,另请参阅为什么 \[ ... \] 比 $$ ... $$ 更可取?。在 的情况下,ntheorem标记不会放置在带有 的显示器上$$...$$。请考虑以下靠近您的文档:

\documentclass[a4paper]{article}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[amsmath,amsthm,thmmarks]{ntheorem} 

\theoremstyle{definition}
\theoremseparator{.}
\theoremsymbol{\ensuremath{\Box}}
\newtheorem{Def}{Definition}

\begin{document}

\begin{Def}
  Let $n$ be a positive integer and $\mathbb{K}$ a field. Let
  $\mathit{SL}_n(\mathbb{K})$ denote the set of special linear group, that is
  \[
  \text{displaymath}\ \mathit{SL}_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times
  n}\mid |M|=1\}
  \]
  or
  \[
  \text{displaymath}\ \mathit{SL}_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times
  n}\mid |M|=1\}
  \]
  or
  $$ \text{dollars}\ \mathit{SL}_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times
  n}\mid |M|=1\}$$
  or
  $$ \text{dollars}\ \mathit{SL}_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times
  n}\mid |M|=1\}$$
  or
  \[
  \text{displaymath}\ \mathit{SL}_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times
  n}\mid |M|=1\}
  \]
  or
  $$ \text{dollars}\ \mathit{SL}_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times
  n}\mid |M|=1\}$$
  or
  $$ \text{dollars}\ \mathit{SL}_n(\mathbb{K}):=\{M\in\mathbb{K}^{n\times n}\mid |M|=1\}.$$
\end{Def}


\end{document}

检查aux文件我们发现ntheorem输出以下行

\global\def\markiDefiii{\ensuremath {\Box }}

它来自第三\[...\]对,对应于罗马数字iii$$...$$不计算在内,并在下一次运行时ntheorem将 qed 标记放置在第三个显示的末尾\[...\]

示例输出

还要注意,你对Def环境的定义很糟糕。字体格式不应该放在标签中,而应该使用

\theoremheadfont{\normalfont\bfseries}

也许该amsthm选项导致了设置这些字体的问题,它在ntheorem文档中已被弃用,但是如果您使用,那么有一个definition我上面使用过的内置定理样式。

相关内容