删除具有颜色的单元格列表上方的垂直空间

删除具有颜色的单元格列表上方的垂直空间

当列表是单元格中的第一个项目时,它上面有一个很大的垂直空间。为了消除这个空间,经典的答案是基于在\@minipagetrue列表之前插入。不幸的是,当颜色发挥作用时,这似乎不够:

\documentclass{article}
\begin{document}
\ExplSyntaxOn
\makeatletter
\begin{center}
\setlength{\tabcolsep}{0mm}
\begin{tabular}{p{0.2\linewidth}p{0.2\linewidth}p{0.2\linewidth}p{0.2\linewidth}p{0.2\linewidth}}
ABCDE
&
\begin{minipage}{\textwidth}
\trivlist
\item
ABCDE
\endtrivlist
\end{minipage}
&
\@minipagetrue
\trivlist
\item
ABCDE
\endtrivlist
&
\begin{minipage}{\textwidth}
\trivlist
\item
\color_select:n{green}
ABCDE
\endtrivlist
\end{minipage}
&
\@minipagetrue
\trivlist
\item
\color_select:n{green}
ABCDE
\endtrivlist
\end{tabular}
\end{center}
\makeatother
\ExplSyntaxOff
\end{document}

带输出 5 ABCDE

我希望右侧的绿色 ABCDE 与左侧的垂直对齐,而不使用小页面。

答案1

添加\leavevmode之前\color_select:n将解决您的问题。

\@minipagetrue
\trivlist
\item \leavevmode
\color_select:n{green}
ABCDE
\endtrivlist

在此处输入图片描述


但是这里有一个更好的解决方案tabularray包。它提供了列表的varwidth库和measure=vbox选项,以及stretch=-1删除列表上方垂直空格的选项。

\documentclass{article}

\usepackage{tabularray}
\UseTblrLibrary{varwidth}

\usepackage{xcolor}
\usepackage{enumitem}

\begin{document}

\begin{center}
\SetTblrInner[tblr]{measure=vbox,stretch=-1,colsep=0mm}
\setlist[trivlist]{nosep}
\begin{tblr}{colspec={XXXXX},hlines}
ABCDE
&
\begin{trivlist}
\item ABCDE
\end{trivlist}
&
\begin{trivlist}
\item ABCDE
\end{trivlist}
&
\begin{trivlist}
\item \leavevmode\color{green}ABCDE
\end{trivlist}
&
\begin{trivlist}
\item \leavevmode\color{green}ABCDE
\end{trivlist}
\end{tblr}
\end{center}

\end{document}

在此处输入图片描述

相关内容