我试图用侧面的文本突出显示公式的某些部分,但其中一个部分有多行。我想到的解决方案是在数组中使用括号来突出显示组。
不幸的是,结果看起来不太好,因为小支架比大支架窄得多,而且重量也不同。我该如何解决这个问题,让它看起来不那么奇怪?
一个选择是找到一种不同的支架,当支架高度变化时,其宽度不会变化。我希望这样]
做可以实现这一点,但实际上它的宽度会发生变化。
\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}