为什么多行数组环境之后间距会不一样?

为什么多行数组环境之后间距会不一样?

我的目标是等距行距之间文本数组环境。这大部分情况下都不需要任何修改,除了一种情况:如果数组环境由多于一行,此后的间距不同。
*有更多的空间如果另一个阵列环境如下(参见第 4 栏),并且
* 略有更小的空间如果文本如下(参见第 5 栏)。

我尝试自己修复它(参见 \fixSpacingAfterMultilineArray),但是这只能缓解跟随数组的情况,并且每当跟随文本时都会使问题恶化。

所以我的问题是:
* 为什么多行数组环境后的间距不同?
* 如何在数组环境后实现一致的间距,而不管后面的内容如何?

MWE 代码:

\documentclass{article}

\newcommand{\minip}[1]{%
  \noindent%
  \begin{minipage}[t]{1.3cm}#1\end{minipage}%
}

\newcommand{\arr}[1]{
  \setlength{\arraycolsep}{0pt}%
  \begin{array}[t]{l}#1\end{array}%
  % \par\fixSpacingAfterMultilineArray%
}

\newcommand{\fixSpacingAfterMultilineArray}{%
  % array with two lines has a depth of at least 15.60004pt
  \ifdim\prevdepth>15.6pt%
    \vspace{-1pt}%
  \fi%
}

\begin{document}

\minip{ Col1 TEXT TEXT TEXT}
\minip{ Col2 \arr{ ARR1} \arr{ ARR1} \arr{ ARR1}}
\minip{ Col3 \arr{ ARR1} \arr{ ARR1} TEXT }
\minip{ Col4 \arr{ ARR2 \\ ARR2} \arr{ ARR1}}
\minip{ Col5 \arr{ ARR2 \\ ARR2} TEXT}
\minip{ Col6 TEXT TEXT TEXT}

\end{document}

MWE 输出: 在此处输入图片描述

答案1

您需要强制\baselineskip而不是\lineskip通过允许最后一行的深度来使用(假定为\strut

在此处输入图片描述

\documentclass{article}
\usepackage{array}

\newcommand{\minip}[1]{%
  \noindent%
  \begin{minipage}[t]{1.3cm}\raggedright#1\end{minipage}%
}

\newcommand{\arr}[1]{%
  \setlength{\arraycolsep}{0pt}%
  \begin{array}[t]{l}#1\end{array}%
  \par
\vskip-\dp\strutbox
\nointerlineskip\null
}


\begin{document}

\minip{ Col1 TEXT TEXT TEXT}
\minip{ Col2 \arr{ ARR1} \arr{ ARR1} \arr{ ARR1}}
\minip{ Col3 \arr{ ARR1} \arr{ ARR1} TEXT }
\minip{ Col4 \arr{ ARR2 \\ ARR2} \arr{ ARR1}}
\minip{ Col5 \arr{ ARR2 \\ ARR2} TEXT}
\minip{ Col6 TEXT TEXT TEXT}

\end{document}

相关内容