我有一个问题,我的文本中有相当多的方程式。由于我经常不确定以后是否需要它们作为参考,所以我寻找了一种避免\[...\]
与equation
环境或类似环境交换的方法。
我在答案中找到了解决方案,可以添加新命令
\newcommand\addtag{\refstepcounter{equation}\tag{\theequation}}
回到序言。到目前为止一切顺利。一切都顺利。
现在我想使用enabledntheorem
来启用thmmarks
。现在看来,上面的命令与选项相冲突。这是一个最小(非)工作示例(使用两个包含项之一ntheorem
):
\documentclass[a4paper,10pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\newcommand\addtag{\refstepcounter{equation}\tag{\theequation}}
% \usepackage[amsmath]{ntheorem}
\usepackage[amsmath,thmmarks]{ntheorem}
\newtheorem{Proof}{Proof}
\begin{document}
\begin{Proof}
We assume weknow the solution. Thus we know it.
\end{Proof}
An equation
\[ a = b + c. \addtag \]
\end{document}
我认为有几种可能性:
- 找到一些方法来修改
\addtag
宏,使其兼容;这里我不知道从哪里开始。也许你可以给我一个提示.... - 替换环境所需
\[...\]
的equation
。 \[...\]
用环境替换所有equation
内容并使用mathtools
以获得正确的编号。
对于最后两个选项,我不知道它是否适用ntheorem
于所有情况。因此,如果您知道存在问题,请在我替换所有文本之前告知我。
编辑:我刚刚用我的 MWE 和数学工具做了实验。不幸的是,方程计数器有点混乱。empheq
它似乎(!)可以工作,但只在 MWE 上测试过。这是修改版本使用empheq
。
答案1
amsmath
(或)所做的最后一件事mathtools
是将设置\[...\]
为\begin{equation*}...\end{equation*}
。现在thmtools
修补程序equation*
可以使用thmmarks
,但它也会重新定义\[...\]
。因此,最简单的解决方案是重新声明 ams 别名:
\documentclass[a4paper,10pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\newcommand\addtag{\refstepcounter{equation}\tag{\theequation}}
\usepackage[amsmath,thmmarks]{ntheorem}
\newtheorem{Proof}{Proof}
\DeclareRobustCommand{\[}{\begin{equation*}}
\DeclareRobustCommand{\]}{\end{equation*}}
\begin{document}
\begin{Proof}
Use induction on~\( j \).
\end{Proof}
An equation
\[ a = b + c. \addtag \]
\end{document}