![下划线下方有多个文本行,没有额外的水平空间](https://linux22.com/image/426633/%E4%B8%8B%E5%88%92%E7%BA%BF%E4%B8%8B%E6%96%B9%E6%9C%89%E5%A4%9A%E4%B8%AA%E6%96%87%E6%9C%AC%E8%A1%8C%EF%BC%8C%E6%B2%A1%E6%9C%89%E9%A2%9D%E5%A4%96%E7%9A%84%E6%B0%B4%E5%B9%B3%E7%A9%BA%E9%97%B4.png)
如何创建包含多行文本的括号并避免插入额外的水平空间?我可以创建没有额外水平空间的单行文本或带有水平空间的多行文本。为了实现没有水平空间的多行文本,我尝试了几种方法来组合\制作盒子和\子栈但总是出现错误信息。
\documentclass{report}
\usepackage{amsmath}
\begin{document}
\begin{align}
X &= \underbrace{abcde}_{\text{\makebox[0pt][c]{single text line without space}}} \cdot f\\ \\
X &= \underbrace{abcde}_{\substack{\text{multiple text lines lead}\\ \text{to additional space}}} \cdot f
\end{align}
\end{document}
答案1
在使用之前,将多行子堆栈设置在保留数学大小的零宽度框中\substack
;mathtools
规定\mathclap
这样做:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align*}
X &= \underbrace{abcde}_{\mathclap{\text{single text line without space}}} \cdot f \\
\\
X &= \underbrace{abcde}_{\mathclap{\substack{\text{multiple text lines lead} \\ \text{to additional space}}}} \cdot f
\end{align*}
\end{document}