目前,我使用例如来指定垂直分隔\def\arraystretch{1.4}
,但我发现我需要根据行的高度调整环境参数,这很繁琐,而且我无法在数组内部动态调整高度。例如,以下数组的行高度差异很大,并且可以从模拟动态数组拉伸的东西中受益:
$$
\def\arraystretch{2.0}
\begin{array}{rl}
q = & \text{some expression with low height} \\
= & \text{some expression with the same low height} \\
= & \def\arraystretch{1.0} \begin{pmatrix}
\text{two} \\
\text{matrices,} \\
\text{each} \\
\text{with} \\
\end{pmatrix} \\
= & \def\arraystretch{1.0} \begin{pmatrix}
\text{relatively} \\
\text{large} \\
\text{height} \\
\end{pmatrix} \\
\end{array}
$$
尽管arraystretch
设置得如此之高,以至于前两行之间的间距变得太大,但最后两行之间仍然没有任何垂直间距。行间这种高度变化的间距是不理想的。
对于列,有\arraycolsep
,它创建了统一的水平分隔,但我没有找到任何与行之间的垂直分隔(即一行底部和下一行顶部之间的距离)相对应的变量。我知道实现后者的唯一方法是选择一个较小的值arraystretch
,并在行之间使用 添加换行符\\
,但这会创建一个太高的间距。
那么,有没有办法在环境中获得统一的、可定制的行间垂直分隔array
?
答案1
只要您不需要单独的行编号以及行和列之间的各种垂直和水平线,该stackengine
包就会提供“短”堆栈,这些堆栈会在相邻行数据之间提供相等的间隙,以考虑行内容的高度。在这里,我将间隙设置为 9pt,可以调整。
堆叠间隙不会影响内的行间距pmatrix
,只会影响相邻行文本和矩阵之间的间隙。
\documentclass{article}
\usepackage{amsmath,tabstackengine}
\TABstackMath
\begin{document}
\setstackgap{S}{9pt}% ADJUST THE INTER-ROW GAP HERE
\[
\alignShortstack{
q = & \text{some expression with low height} \\
= & \text{some expression with the same low height} \\
= & {\begin{pmatrix}
\text{some} \\
\text{expression} \\
\text{with} \\
\text{great} \\
\text{height} \\
\end{pmatrix}}\\
= & {\begin{pmatrix}
\text{relatively} \\
\text{large} \\
\text{height} \\
\end{pmatrix}}}
\]
\end{document}
补充
回答 OP 的评论,如果想要不同的对齐方式,请不要使用\alignShortstack
,但\tabbedShortstack{...}
(如果所有列都具有相同的对齐方式)或\tabularShortstack{<alignments>}{...}
指定特定的对齐方式。是的,可以扩展列数,以及指定列间间隙。
\documentclass{article}
\usepackage{amsmath,tabstackengine}
\TABstackMath
\begin{document}
\setstackgap{S}{9pt}% ADJUST THE INTER-ROW GAP HERE
\setstacktabulargap{0pt}% INTER COLUMN GAP
\[
\tabularShortstack{rcr}{
q = & \text{some expression} & \text{with low height} \\
= & \text{some expression with} & \text{/the same low height} \\
= & {\begin{pmatrix}
\text{some} \\
\text{expression} \\
\text{with} \\
\text{great} \\
\text{height} \\
\end{pmatrix}}
& more\\
= & {\begin{pmatrix}
\text{relatively} \\
\text{large} \\
\text{height} \\
\end{pmatrix}}
& even~more}
\]
\end{document}