我以前从未使用过这个,所以请耐心等待。我正在尝试用括号标记动量流动守恒方程的各个部分,我以前也这样做过。但是,我不知道如何在标签中添加适当的换行符。以下是一个例子:
\begin{equation*}
\underbrace{\oiiint\limits_V \rho\vec{F}_b\:\mathrm{d}V}_{\text{Body forces (acceleration, emf, etc.)}}
\end{equation*}
理想情况下,我希望在“Body Forces”和“(acceleration, emf, etc.)”之间有一个换行符。这些方程式对于熟悉的人来说太长了,而巨大的标签只会通过添加多余的空间(在某些情况下会使它超出页面)而扭曲方程式。有人知道怎么做吗?我尝试在我想要换行的地方添加以下所有内容,但无济于事:
\linebreak
\newline
\\
当我添加前两个命令时,它似乎只是在编译后删除了空格。当我尝试最后一个命令时,它根本无法编译。\text 命令来自 AMSMath,但我找不到有关如何添加换行符的任何文档。有什么想法吗?
编辑:下面是我试图标记的整个等式。
\begin{equation*}
\overbrace{\underbrace{\oiiint\limits_{\vol} \rho \vec{f}_b\diff \vol}_{\text{Body forces (acceleration, emf, gravity, etc.)}}-\underbrace{\oiint\limits_SP\diff S}_{\text{Pressure forces}}+\underbrace{\phantom{\intup\limits_l}\vec{F}_\mu\phantom{\intup\limits_l}}_{\text{Viscous forces}}}^{\vec{F}}=\overbrace{\underbrace{\oiint\limits_S\left(\rho\vec{v}\cdot\mathrm{d}S\right)\vec{v}}_{m\frac{\dd v}{\dd t}}+\underbrace{\frac{\partial}{\partial t}\oiiint\limits_{\vol}\rho \vec{v}\diff \vol}_{\vec{v}\frac{\dd m}{\dd t}}}^{\frac{\dd}{\dd t}\left(m\vec{v}\right)}
\end{equation*}
如您所见,下支撑和随后的方程项分散了相当多。当它们超过项的宽度(下支撑本身的宽度)时,我们的想法是将它们压缩为多行解决方案。体力、粘性力以及可能的压力标签会受到我正在寻找的解决方案的影响。等式的右侧不会受到影响,因为标签小于下支撑本身。
以下是为了正确打印而在序言中需要包含的相关信息(我的文档中还有更多包,但我认为这些是打印该行所必需的唯一信息):
\usepackage{stix2}
\usepackage{amsmath}
\newcommand{\vol}{\makebox[0pt][l]{\ooalign{\hfil$V$\hfil\cr\kern0.09em--\hfil\cr}}}
\vol 是我在这个网站上找到的一个命令,我根据自己的喜好进行了修改。如果有一个解决方案同时包含 overbrace 和 underbrace 选项就好了,但我不确定是否存在这样的解决方案。感谢大家迄今为止的帮助!
另一处编辑:我想我不明白 MWE 是什么意思,所以也许下面就是你要找的东西?用 \begin{document} 之类的?
\documentclass[10pt,twoside,letterpaper,titlepage]{article}
\usepackage{amsmath}
\usepackage{stix2}
\newcommand{\vol}{\makebox[0pt][l]{\ooalign{\hfil$V$\hfil\cr\kern0.09em--
\hfil\cr}}}
\newcommand{\diff}{\,\mathrm{d}}
\newcommand{\dd}{\mathrm{d}}
\begin{document}
\begin{equation*}
\overbrace{\underbrace{\oiiint\limits_{\vol} \rho \vec{f}_b\diff \vol}_{\text{Body forces (acceleration, emf, gravity, etc.)}}-\underbrace{\oiint\limits_SP\diff S}_{\text{Pressure forces}}+\underbrace{\phantom{\intup\limits_l}\vec{F}_\mu\phantom{\int\limits_S}}_{\text{Viscous forces}}}^{\vec{F}}=\overbrace{\underbrace{\oiint\limits_S\left(\rho\vec{v}\cdot\mathrm{d}S\right)\vec{v}}_{m\frac{\dd v}{\dd t}}+\underbrace{\frac{\partial}{\partial t}\oiiint\limits_{\vol}\rho \vec{v}\diff \vol}_{\vec{v}\frac{\dd m}{\dd t}}}^{\frac{\dd}{\dd t}\left(m\vec{v}\right)}
\end{equation*}
\end{document}
答案1
您的代码中有几个错误;的定义\vol
不应该有\makebox[0pt]
,因为这会使符号的宽度为零。
也\phantom
应该是,所以只需使用垂直尺寸。这里\vphantom
不需要\left
和。\right
我\vol
为 STIX Two 字体做了改进,字距更小,上标和下标可调整大小。修改后的定义\diff
还允许您将其用于衍生产品。
\documentclass[10pt,twoside,letterpaper,titlepage]{article}
\usepackage{amsmath}
\usepackage{stix2}
\usepackage{varwidth}
\newcommand{\vol}{%
\mathord{\text{%
\ooalign{\hfil$V$\hfil\cr\kern0.03em--\hfil\cr}%
}}%
}
\newcommand{\diff}{\mathop{}\!\mathrm{d}}
%\newcommand{\dd}{\mathrm{d}} % not needed, just use \diff
\newcommand{\btext}[1]{\text{\begin{varwidth}[t]{\textwidth}\centering#1\end{varwidth}}}
\begin{document}
\begin{equation*}
\overbrace{
\underbrace{\oiiint\limits_{\vol} \rho \vec{f}_b\diff \vol}
_{\btext{Body forces \\ (acceleration, emf, \\ gravity, etc.)}}
-\underbrace{\oiint\limits_SP\diff S}_{\btext{Pressure \\ forces}}
+\underbrace{\vphantom{\intup\limits_S}\vec{F}_\mu\vphantom{\int\limits_S}}
_{\btext{Viscous \\ forces}}}^{\vec{F}}
=\overbrace{\underbrace{\oiint\limits_S (\rho\vec{v}\cdot\diff S)\vec{v}}
_{m\frac{\diff v}{\diff t}}
+\underbrace{\frac{\partial}{\partial t}\oiiint\limits_{\vol}\rho \vec{v}\diff \vol}
_{\vec{v}\frac{\diff m}{\diff t}}}^{\frac{\diff}{\diff t}(m\vec{v})}
\end{equation*}
\end{document}
对于长下标,我利用了varwidth
使框尽可能宽的方法。该名称\btext
代表“断线(跨行)文本”。
改进的版本,纠正了一些错误的间距:
\documentclass[10pt,twoside,letterpaper,titlepage]{article}
\usepackage{amsmath}
\usepackage{stix2}
\usepackage{varwidth}
\newcommand{\vol}{%
\mathord{\text{%
\ooalign{\hfil$V$\hfil\cr\kern0.03em--\hfil\cr}%
}}%
}
\newcommand{\diff}{\mathop{}\!\mathrm{d}}
%\newcommand{\dd}{\mathrm{d}} % not needed, just use \diff
\newcommand{\btext}[1]{\text{\begin{varwidth}[t]{\textwidth}\centering#1\end{varwidth}}}
\newcommand{\ob}[2]{{\overbrace{#1}^{#2}}}
\newcommand{\ub}[2]{{\underbrace{#1}_{#2}}}
\begin{document}
\begin{equation*}
\ob{
\ub{\oiiint\limits_{\vol} \rho \vec{f}_b\diff \vol}
{\btext{Body forces \\ (acceleration, \\ emf, gravity, etc.)}}
-\ub{\oiint\limits_SP\diff S}{\btext{Pressure \\ forces}}
+\ub{\vphantom{\intup\limits_S}\vec{F}_\mu\vphantom{\int\limits_S}}
{\hspace{-2em}\btext{Viscous \\ forces}\hspace{-2em}}
}{\vec{F}}
=
\ob{
\ub{\oiint\limits_S (\rho\vec{v}\cdot\diff S)\vec{v}}{m\frac{\diff v}{\diff t}}
+\ub{\frac{\partial}{\partial t}\oiiint\limits_{\vol}\rho \vec{v}\diff \vol}
{\vec{v}\frac{\diff m}{\diff t}}
}{\frac{\diff}{\diff t}(m\vec{v})}
\end{equation*}
\end{document}
最好使用定义的宏\ob
,以便隐藏归因于其标准定义\ub
的性质。\mathop
\overbrace
\underbrace
我会考虑避免过多的括号不足和过度使用。这里我还添加了一些\,
上面代码中缺少但确实应该应用的部分。
\documentclass[10pt,twoside,letterpaper,titlepage]{article}
\usepackage{amsmath}
\usepackage{stix2}
\usepackage{varwidth}
\newcommand{\vol}{%
\mathord{\text{%
\ooalign{\hfil$V$\hfil\cr\kern0.03em--\hfil\cr}%
}}%
}
\newcommand{\diff}{\mathop{}\!\mathrm{d}}
%\newcommand{\dd}{\mathrm{d}} % not needed, just use \diff
\newcommand{\btext}[1]{\text{\begin{varwidth}[t]{\textwidth}\centering#1\end{varwidth}}}
\newcommand{\ob}[2]{{\overbrace{#1}^{#2}}}
\newcommand{\ub}[2]{{\underbrace{#1}_{#2}}}
\begin{document}
The force $\vec{F}$ can be split as the sum of
\begin{align*}
&\oiiint\limits_{\vol} \rho \vec{f}_b\diff \vol && \text{Body forces (acceleration, emf, gravity, etc.)} \\
&\oiint\limits_SP\diff S && \text{Pressure forces} \\
&\vec{F}_\mu && \text{Viscous forces}
\end{align*}
and $\frac{\diff}{\diff t}(m\vec{v})=m\frac{\diff\vec{v}}{\diff t}+\vec{v}\,\frac{\diff m}{\diff t}$, where
\begin{align*}
m\frac{\diff\vec{v}}{\diff t} &= \oiint\limits_S (\rho\vec{v}\cdot\diff S)\vec{v} \\
\vec{v}\,\frac{\diff m}{\diff t} &= \frac{\partial}{\partial t}\oiiint\limits_{\vol}\rho \vec{v}\diff \vol
\end{align*}
so we arrive at the main formula
\begin{equation*}
\oiiint\limits_{\vol} \rho \vec{f}_b\diff \vol +
\oiint\limits_SP\diff S +
\vec{F}_\mu
=
\oiint\limits_S (\rho\vec{v}\cdot\diff S)\vec{v} +
\frac{\partial}{\partial t}\oiiint\limits_{\vol}\rho \vec{v}\diff \vol
\end{equation*}
\end{document}
答案2
尝试:
\documentclass{article}
\usepackage{stix}
\usepackage{mathtools}
\newlength\ubwidth
\newcommand\parunderbrace[2]{\settowidth\ubwidth{$#1$}% founded somewhere on this site
\underbrace{#1}_{\parbox{\ubwidth}{%
\scriptsize\centering#2}}
}
\begin{document}
\[
\parunderbrace{\oiiint\limits_V\rho\vec{F}_b\,\mathrm{d}V}{Body forces (acceleration, emf, etc.)}
\]
\end{document}
附录: 你可以使用上面的解决方案轻松获得完整的方程。例如:
\documentclass{article}
\usepackage{stix2}
\usepackage{mathtools}
\usepackage{esdiff}
\newcommand{\dd}{\,\mathrm{d}}
\newlength\ubwidth
\newcommand\parunderbrace[2]{\settowidth\ubwidth{$#1$}% found somewhere on this site
\underbrace{#1}_{\parbox{\ubwidth}{%
\scriptsize\centering#2}}
}
\begin{document}
\[
\overbrace{
\parunderbrace{\oiiint\limits_V\rho\vec{F}_b \dd V}{Body forces (acceleration, emf, etc.)}
+
\parunderbrace{\oiiint\limits_S\rho P \dd S}{Pressure forces}
+
\parunderbrace{\ \vphantom{\int\limits_S}\vec{F}_\mu\ }{Viscous forces}
}^{\vec{F}}
= \overbrace{
\parunderbrace{\oiint\limits_S\left(\rho\vec{v}\cdot\dd S\right)\vec{v}}{$m\diff{d}{v}$}
+ \parunderbrace{\diffp{}{t}\oiiint\limits_{V}\rho \vec{v}\dd V}{$\vec{v}\diff{m}{t}$}
}^{\diff{}{t} (m\vec{v})}
\]
\end{document}