当列表是单元格中的第一个项目时,它上面有一个很大的垂直空间。为了消除这个空间,经典的答案是基于在\@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}
我希望右侧的绿色 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}