如何改变支架的高度而不改变其宽度?

如何改变支架的高度而不改变其宽度?

我试图用侧面的文本突出显示公式的某些部分,但其中一个部分有多行。我想到的解决方案是在数组中使用括号来突出显示组。

不幸的是,结果看起来不太好,因为小支架比大支架窄得多,而且重量也不同。我该如何解决这个问题,让它看起来不那么奇怪?

一个选择是找到一种不同的支架,当支架高度变化时,其宽度不会变化。我希望这样]做可以实现这一点,但实际上它的宽度会发生变化。

\documentclass{article}
\usepackage{multirow}
\usepackage{amsmath}

\begin{document}
\begin{align*}
\begin{array}{ll@{}l}
  w & \}                       & \textrm{one element} \\
  x & \multirow{2}{*}{\bigg\}} & \multirow{2}{*}{\textrm{two elements}} \\
  y &                          & \\
  z & \}                       & \textrm{another element} 
\end{array}
\end{align*}
\end{document}

这是代码的结果。我希望所有三个括号的左右边缘都对齐。这里括号和之间的间隙one element比括号和之间的间隙大得多two elements

奇怪的括号宽度

答案1

scalerel包允许拉伸字形以适应第二个项目的大小。另外,我使用 TABstack 创建组件。如果您希望垂直间距与原始间距相同,请编辑\setstackgap{S}{1pt}为 0pt。我只是认为额外的小间隙看起来更好。

\documentclass{article}
\usepackage{tabstackengine}
\usepackage{scalerel}
\begin{document}
\[
\setstackgap{S}{1pt}
\alignShortstack{%
\strut$w\mkern-1mu$\quad\}& one element\\
\stretchleftright{.}{\stackanchor{\strut$x$}{\strut$y$}\quad}{\}}& two elements\\
\strut$z$\quad\}& another element
}
\]
\end{document}

在此处输入图片描述

答案2

我根据 Claudio 的建议进行了改编在表格中添加弯曲箭头和括号达到我的目的。使用 tikz 而不是拉伸符号的优势在于,tikz 通过实际生成任意大小的括号,为所有括号产生统一的外观。通过设置amplitude下面代码中的参数,我可以控制括号的宽度。

也可以通过在表中放置标记来解决此问题,但是这种解决方案似乎更简单。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{multirow}
\usepackage{amsmath}

\newcommand{\vcenteredbox}[1]{\begingroup
\setbox0=\hbox{#1}\parbox{\wd0}{\box0}\endgroup}

\newcommand{\braceone}{%
  \vcenteredbox{\tikz{%
      \draw[decorate,decoration={brace,amplitude=2pt},xshift=0pt, yshift=0pt] (0,0) -- (0,-1em);
  }}
}
\newcommand{\bracetwo}{%
  \vcenteredbox{\tikz{%
      \draw[decorate,decoration={brace,amplitude=2pt},xshift=0pt, yshift=0pt] (0,0) -- (0,-2em);
  }}
}


\begin{document}
\begin{align*}
\begin{array}{ll@{}l}
  w & \braceone                  & \textrm{one element} \\
  x & \multirow{2}{*}{\bracetwo} & \multirow{2}{*}{\textrm{two elements}} \\
  y &                            & \\
  z & \braceone                  & \textrm{another element} 
\end{array}
\end{align*}
\end{document}

正确对齐的牙套

相关内容