这个问题与以下问题相关,但又不同:\underbrace 标签过大会导致不必要的间距。
我的问题不是标签的间距,而是下支架本身的尺寸。以该页面上接受的答案为参考,我不喜欢(?)
其下方的括号造成的周围空间。我希望括号的左右垂直限制位于在下面括号内,而不是括号周围。
也就是说,该答案中的括号可以粗略地勾勒为
(?)
\---/
但我反而想
(?)
\-/
(就目前我实际上感到沮丧的情况而言,对象是du
而不是(?)
,但我认为应该适用相同的推理。)
谢谢!
答案1
即使在破坏标签宽度(链接问题中提到的常见罪魁祸首)之后,括号也不能再缩小,因为它是 Computer Modern 中提供的最小尺寸。
一些字体/符号包定义了较小的花括号。我能想到的唯一一个是MnSymbol
,但不幸的是,它有几个不兼容性。
适用于任何字体包的替代方法是定义一个\smallunderbrace
使用最小字体\tiny
来创建括号的新命令:
\def\smallunderbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
$\hfil\displaystyle{#1}\hfil$\crcr
\noalign{\kern3\p@\nointerlineskip}%
\tiny\upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
此命令与基本 LaTeX 中的命令相同,\underbrace
只是\tiny
在最后一行插入了命令。结果如下:
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\def\smallunderbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
$\hfil\displaystyle{#1}\hfil$\crcr
\noalign{\kern3\p@\nointerlineskip}%
\tiny\upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
\makeatother
\begin{document}
\begin{gather}
(du) \\
(\smallunderbrace{du}_{\text{\clap{label}}}) \\
(\smallunderbrace{\text{test}}_{\text{\clap{label}}})
\end{gather}
\end{document}
最后一条测试行只是为了表明这个新命令仍然是可扩展的,但是\smallunderbrace
只有当标准\underbrace
太大时才应该使用该命令。
答案2
下支撑有一个最小尺寸,并且与此无关,除非使用不同的策略:
- 在我看来,TikZ 支架装饰非常糟糕
- 下括号代替下括号
然而,最好的策略是使用下牙套很稀少场合。
如果您希望下划线更细更短,您可以利用定义amsmath
数学扩展字体的较小尺寸这一事实(我从来不明白为什么 Knuth 不提供 cmex5 和 cmex7)。
\documentclass{article}
\usepackage{amsmath}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\upbracefill}{\m@th}{\scriptstyle\m@th}{}{}
\patchcmd{\upbracefill}{$\braceld$}{$\scriptstyle\braceld$}{}{}
\patchcmd{\upbracefill}{\bracelu}{\bracelu\mkern-1mu}{}{}
\patchcmd{\upbracefill}{\hfill\braceru}{\hfill\mkern-1mu\braceru}{}{}
\makeatother
\begin{document}
\begin{gather*}
\underbrace{du}_{\text{label}}\\
\underbrace{} \\ % minimum size
\underbrace{loooooooooooong}
\end{gather*}
\end{document}
正如您在图片中看到的,最小尺寸比标准尺寸小很多,并且下支撑也较小。
答案3
你想要这样的吗?
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\left( x-1 \right) (\underbrace{\text{du}}_{ \mathclap{\text{what is this?}} })
\]
\end{document}