我想使用 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
我上面使用过的内置定理样式。