在 tabularx 中的 itemize 环境中正确对齐列

在 tabularx 中的 itemize 环境中正确对齐列

我想在 LaTeX 中重现下表:

图1

我决定使用tabularxminipage环境。MWE 如下:

\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{table}
\centering
\noindent
\begin{tabularx}{\textwidth}{p{15mm}|p{30mm}|p{3mm}|X@{}}
\hline
Row 1
&
\begin{minipage}[t]{\hsize}
\begin{itemize}
\item item text foo bla zoo
\item item text foo bla zoo
\end{itemize}
\end{minipage}
&
\begin{minipage}[t]{\hsize}
\begin{itemize}
\item item text foo bla zoo
\item item text foo bla zoo
\end{itemize}
\end{minipage}
\\
\hline
Row 2
&
\begin{minipage}[t]{\hsize}
\begin{itemize}
\item item text foo bla zoo
\item item text foo bla zoo
\end{itemize}
\end{minipage}
&
\begin{minipage}[t]{\hsize}
\begin{itemize}
\item item text foo bla zoo
\item item text foo bla zoo
\end{itemize}
\end{minipage}
\\
\hline
\end{tabularx}
\end{table}
\end{document}

但结果却很糟糕:

  • 中间水平线与第二行第一个项目之间的空间很小
  • 所有水平线都延伸到表格主体

非常感谢任何指点或建议。

图-2

答案1

首先,您不需要minipage为此使用 s,而且您只有三列,但表格设置包含四列,我删除了那个p{3mm}。其次, sitemize内的环境tabular需要特殊设置,因此我建议加载enumitem和定义一个,newlist并使用自定义设置仅在 s 内使用tabular。请参阅下文如何做到这一点。

\documentclass{article}
\usepackage{tabularx}
\usepackage{enumitem}
\newlist{tabitemize}{itemize}{1}
\setlist[tabitemize]{label=\textbullet,leftmargin=*,topsep=0ex,parsep=0pt,
                  after=\vspace{-\baselineskip},before=\vspace{-0.75\baselineskip}}    
\begin{document}

\begin{table}
\centering
\begin{tabularx}{\textwidth}{|p{15mm}|p{30mm}|X@{}|}
\hline
  & column 1 &  column 2 \\ \hline 
Row 1
&
\begin{tabitemize}
\item item text foo bla zoo
\item item text foo bla zoo
\end{tabitemize}
&
\begin{tabitemize}
\item item text foo bla zoo
\item item text foo bla zoo
\end{tabitemize} \\ \hline
Row 2
&
\begin{tabitemize}
\item item text foo bla zoo
\item item text foo bla zoo
\end{tabitemize}
&
\begin{tabitemize}
\item item text foo bla zoo
\item item text foo bla zoo
\end{tabitemize} \\ \hline
\end{tabularx}
\end{table}
\end{document}

在此处输入图片描述

相关内容