![下括号周围的括号太大](https://linux22.com/image/259899/%E4%B8%8B%E6%8B%AC%E5%8F%B7%E5%91%A8%E5%9B%B4%E7%9A%84%E6%8B%AC%E5%8F%B7%E5%A4%AA%E5%A4%A7.png)
我遇到的问题是,我想要一个带有 的等式underbrace
,但周围的括号不应包括underbrace
,即应该具有大小,就好像 不underbrace
存在一样。这是我使用的代码:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\exp \left(\gamma \underbrace{\begin{pmatrix} 1 & 2\\ 3 & 4 \end{pmatrix}}_\text{some text} \right)$
\end{document}
我希望外括号的大小和中心与 的括号相同pmatrix
。我试过了\Bigg(
,但看起来有点不对劲,而且它只适用于 2x2 矩阵,不适用于 3x3。有什么想法吗?
答案1
对于 2×2 矩阵来说,这是过度的,但它也适用于更大的矩阵,即使对于big
没有括号版本的矩阵也是如此。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\exp \left( {\vphantom{\begin{pmatrix} 1\\ 3 \end{pmatrix}}} \right. \!\!
\gamma \underbrace{\!\! \begin{pmatrix} 1 & 2\\
3 & 4 \end{pmatrix} \!\!}_\text{some text} \!\!
\left. {\vphantom{\begin{pmatrix} 1\\ 3 \end{pmatrix}}} \right)$
\end{document}
观察如何使用\!
来摆脱一些不需要的水平空间。
答案2
也许我不应该发布这个,但我正在审阅大量涉及大型矩阵的论文,我无法忍受内联矩阵。如果需要,请使用环境smallmatrix
或将矩阵指数声明为$e^{\gamma A}$
并将A
矩阵作为显示数学。
\documentclass{article}
\usepackage{mathtools} %<- Builds on top of amsmath and fixes/improves some stuff
\begin{document}
The sentences start like this then slowly they get longer and longer and then sentence
becomes like this
$e^{\gamma\!\!
\underbracket[0.4pt][1pt]{
\begin{psmallmatrix} 1 & 2\\ 3 & 4 \end{psmallmatrix}
}_{\text{\tiny some text}} }$
and maybe after that something like
\raisebox{0.5ex}{%
$\exp{(\gamma\!\! \underbracket[0.4pt][1pt]{
\begin{psmallmatrix} 1 & 2\\ 3 & 4 \end{psmallmatrix}}_{\text{\tiny some text}} )}
$
}
then continues with more stuff that starts another line which still looks terrible.
However this one
\[
e^{\left(\gamma\!\! \underbracket[0.4pt][1pt]{
\begin{psmallmatrix} 1 & 2\\ 3 & 4 \end{psmallmatrix}
}_{\text{\tiny some text}} \right)} =
\exp{(\gamma\!\! \underbracket[0.4pt][1pt]{
\begin{psmallmatrix} 1 & 2\\ 3 & 4 \end{psmallmatrix}
}_{\text{\tiny some text}} )}
\]
has no such problems. But still none of them works properly
in my opinion. The best is to go with $e^{\gamma A}$ where
\[
A =\begin{pmatrix}
1&2\\3&4
\end{pmatrix}
\]
\end{document}
答案3
如果您只需要一次,我会进行手动调整:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\exp
\mkern30mu
\underbrace{
\mkern-30mu
\left(
\gamma
\begin{pmatrix} 1 & 2\\ 3 & 4 \end{pmatrix}
\right)
\mkern-18mu
}_\text{some text}
\mkern18mu
$
\end{document}
我把 放在\underbrace
外面,用\mkern
正值和负值让它认为内容较小。30mu
和的值18mu
是通过反复试验找到的。
答案4
再次,矫枉过正;但无论如何,这里有一个似乎有效的 tikz 解决方案。
与其他地方一样,这里的主要困难是让下括号及其文本计入垂直间距,但直到设置外括号之后才算。我最初想到的 tikz 解决方案是在数学运算中间使用 tikz 节点保存位置,然后在保存的位置使用下括号返回。这种方法的问题在于,引用其他 tikz 图片位置的 tikz 构造应该被赋予选项overlay
,这实际上会破坏构造对垂直间距的任何影响(并使下一行太高)。
我解决这个问题的方法是将整个表达式放在 tikz 图片中的一个节点中。因此,我实际上在 tikz 图片中的 tikz 节点中有一个 tikz 节点,而 tikz 图片中的 tikz 节点又有一个 tikz 节点。我不确定这种行为是否受支持,但对于这种特定的构造,它似乎或多或少是可行的。
\documentclass{article}
\usepackage{amsmath,tikz}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{calc}
\newcommand{\currentmatrix}{}
\newcommand{\tikznode}[2][$\currentmatrix$]{\tikz[overlay]\node (#2) {\vphantom{#1}};}
\begin{document}
\renewcommand{\currentmatrix}{\begin{pmatrix} 1 & 2\\ 3 & 4 \end{pmatrix}}
\begin{align*}
\tikz[remember picture,baseline=(left.east),inner xsep=0pt]{
\node {$\exp \left(\gamma \tikznode{left}
\begin{pmatrix} 1 & 2\\ 3 & 4 \end{pmatrix}\tikznode{right}
\right)$};
\draw[overlay,decorate,decoration={brace,amplitude=3pt}]
($(right.south west) + (0,4pt)$) --
coordinate(texthere) ($(left.south east)+(0,4pt)$);
\path (texthere) node[below] {$\scriptstyle\text{some text}$};
} &= e^{\gamma A} \\
&= \exp(\gamma A)
\end{align*}
\end{document}