amsmath 的多行导致“缺少 $ 插入”错误

amsmath 的多行导致“缺少 $ 插入”错误

我使用multline中的功能来amsmath显示跨多行的方程式。我尝试这样做:

\begin{multline}
    \label{eq:volume_boundaries}
    \int\limits_S \Gamma\nabla\phi\cdot\mathbf{n}\d{S} =
    \int\limits_{S_\text{n}} (\Gamma\nabla\phi\cdot\mathbf{n})_\text{n}\d{S_\text{n}} 
    +\int\limits_{S_\text{e}} (\Gamma\nabla\phi\cdot\mathbf{n})_\text{e}\d{S_\text{e}}\\
    +\int\limits_{S_\text{s}} (\Gamma\nabla\phi\cdot\mathbf{n})_\text{s}\d{S_\text{s}}
    +\int\limits_{S_\text{w}} (\Gamma\nabla\phi\cdot\mathbf{n})_\text{w}\d{S_\text{w}}
\end{multline}

但是这会导致错误消息Missing $ inserted. \end{multline}。我在这里做错了什么?

答案1

您遇到的问题的根本原因是您尝试\d在数学模式下使用仅文本模式的命令——。

我认为,与其取消定义然后重新\d适当定义,不如创建一个具有新名称的宏(例如,\diff)来表示“微分算子”。例如,

\newcommand{\diff}{\mathop{}\!\mathrm{d}}

观察此命令不是接受一个参数。因此,我鼓励您只写\diff S,而不是\diff{S},因为后者可能会造成(误导和不恰当的)印象,即它\diff是一个接受参数的宏。

我还会用 替换所有实例\int\limits\int因为我看不出在垂直方向上拉长方程的(印刷)理由。

最后,我认为如果使用\equation/aligned组合而不是multline环境,则等式会更容易阅读。

在此处输入图片描述

\documentclass{article} % or some other suitable document class
\usepackage{amsmath}
\newcommand{\diff}{\mathop{}\!\mathrm{d}} % don't re-purpose the existing '\d' macro
\newcommand{\gnpn}{\Gamma\nabla\mkern-2mu \phi\cdot\mathbf{n}} % handy shortcut macro
\begin{document}

\begin{equation}\label{eq:volume_boundaries}
\begin{aligned}[b]
\int_S \gnpn \diff S 
    &=      \int_{S_\mathrm{n}}\!  (\gnpn)_{\mathrm{n}}\diff S_{\mathrm{n}} 
           +\int_{S_\mathrm{e}}\!  (\gnpn)_{\mathrm{e}}\diff S_{\mathrm{e}}\\
    &\quad +\int_{S_\mathrm{s}}\!  (\gnpn)_{\mathrm{s}}\diff S_{\mathrm{s}}
           +\int_{S_\mathrm{w}}\!\!(\gnpn)_{\mathrm{w}}\diff S_{\mathrm{w}}
\end{aligned}
\end{equation}
\end{document}

相关内容