我的目标是等距行距之间文本和数组环境。这大部分情况下都不需要任何修改,除了一种情况:如果数组环境由多于一行,此后的间距不同。
*有更多的空间如果另一个阵列环境如下(参见第 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}