我使用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}