![糟糕的数学环境分隔符:带有 thmmarks 的 ntheorem,显示数学和拆分](https://linux22.com/image/250407/%E7%B3%9F%E7%B3%95%E7%9A%84%E6%95%B0%E5%AD%A6%E7%8E%AF%E5%A2%83%E5%88%86%E9%9A%94%E7%AC%A6%EF%BC%9A%E5%B8%A6%E6%9C%89%20thmmarks%20%E7%9A%84%20ntheorem%EF%BC%8C%E6%98%BE%E7%A4%BA%E6%95%B0%E5%AD%A6%E5%92%8C%E6%8B%86%E5%88%86.png)
使用 的组合\usepackage[amsmath,thmmarks]{ntheorem}
,显示包含在其中的数学运算\[ \]
和\begin{split}
其中的环境,pdflatex
完全出问题了:
! LaTeX Error: Bad math environment delimiter.
这是最小(非)工作示例(显然没有定理定义,也不需要有环境split
;这些对于显示错误不是本质):
\documentclass{article}
\usepackage{amsmath}
\usepackage[amsmath,thmmarks]{ntheorem}
\begin{document}
\[
\begin{split}
a = b
\end{split}
\]
\end{document}
另外,一种解决方法是使用\begin{equation*}
。
编辑:我想缺少了一个问题:知道那里出了什么问题吗?
答案1
问题是由该thmmarks
选项引起的(如果从代码中删除它,错误就会消失);该问题记录在文档的第 25 页中ntheorem
:
当然,
ntheorem.sty
与其他改变处理的样式结合使用时无法正常工作
- 类似定理的环境,或
- 与处理端点标记有关的环境,例如
\[...\]
,eqnarray
等等。”
正如您所提到的,解决方案是使用equation*
:
\documentclass{article}
\usepackage{amsmath}
\usepackage[amsmath,thmmarks]{ntheorem}
\begin{document}
\begin{equation*}
\begin{split}
a = b
\end{split}
\end{equation*}
\end{document}
人们可能想知道,如果两者就其而言是等效的,为什么有效equation*
而\[...\]
无效amsmath
;原因是ntheorem
重新定义了\[
并且\]
当选项被激活时,这个定义与的环境thmmarks
所期望的含义不兼容。amsmath