我想要在下图中排版方程式。
我在积分下对下划线文本 1、2、3 和 4 有疑问。我尝试了以下方法:
\begin{align}\label{fyz:eq_fey_null2}
\displaystyle\int(\nabla\times\vec{C})_n d\vec{S} &=
\displaystyle\int\nabla\cdot(\nabla\times\vec{C}) dV. \\
\shortintertext{\hspace{6.7cm}text 1 \hspace{1.5cm}text 3}
\shortintertext{\hspace{6.7cm}text 2 \hspace{1.9cm}text 4} \nonumber \\
\end{align}
但这个解决方案并不好。使用 \hspace 会导致在更改公式时出现不可预测的行为,最坏的情况是页面格式,或者当公式在页面末尾时,它可能会中断。我使用 xelatex 和 amsmath 包。
答案1
我引入了在积分符号\stackint
下方堆叠任意数量的层\displaystyle
。无需将参数包装在\text
宏中。底文的每一行都将相对于积分符号居中。
\documentclass{article}
\usepackage[usestackEOL]{stackengine}[2013-10-15]
\newcommand\stackint[1]{\tiny\Shortunderstack{{\normalsize$\displaystyle\int$} \\ #1}}
\begin{document}
\[
\stackint{text 1\\text 2} (\vec{\nabla} \times \vec{C})_n \,\mathrm{d}\vec{S} =
\stackint{text 3\\text 4} \vec{\nabla} \cdot (\vec{\nabla} \times \vec{C}) \,\mathrm{d}V.
\]
\end{document}
为了不让底下的文字影响整体宽度,请在stackengine
加载后的某个时间在序言中应用此行:
\def\useanchorwidth{T}
答案2
您可以使用\substack
将项目堆叠在操作符下方:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\newcommand{\limitint}{\mathop{\int}}
\begin{document}
\begin{align}
\limitint_{\substack{\text{text 1}\\\text{text 2}}} (\vec{\nabla} \times \vec{C})_n \,\mathrm{d}\vec{S} &=
\limitint_{\substack{\text{text 3}\\\text{text 4}}} \vec{\nabla} \cdot (\vec{\nabla} \times \vec{C}) \,\mathrm{d}V.
\end{align}
\end{document}
根据您为text 1
...编写的内容text 4
,您可能需要使用mathtools
'\mathclap
以避免水平间距过大:
\documentclass{article}
\usepackage{mathtools}% http://ctan.org/pkg/mathtools
\newcommand{\limitint}{\mathop{\int}}
\begin{document}
\begin{align}
\limitint_{\mathclap{\substack{\text{text 1}\\\text{text 2}}}} (\vec{\nabla} \times \vec{C})_n \,\mathrm{d}\vec{S} &=
\limitint_{\mathclap{\substack{\text{text 3}\\\text{text 4}}}} \vec{\nabla} \cdot (\vec{\nabla} \times \vec{C}) \,\mathrm{d}V.
\end{align}
\end{document}