创建存在多行和多项目符号的比较类型表

创建存在多行和多项目符号的比较类型表

我想创建一个像下图这样的表格在此处输入图片描述

我尝试使用来自这篇文章的代码 表格中的要点简洁

\usepackage{booktabs,tabularx}
\newcolumntype{T}{>{\raggedright\arraybackslash}p{5.354cm}}
\begin{table*}
\caption{The table caption}

\begin{tabularx}{\textwidth}{|T|T|T|}
\hline
Column 1 & Column2 & Column 3\\
\hline
Multiple column and column & 
  \begin{tabular}[t]{ @{\makebox[1.5em][l]{\textbullet}} 
   p{\dimexpr\linewidth-1.5em} @{} }
multiline item text multiline item text multiline item text multiline item 
  text multiline item text \\
multiline item text multiline item text
\end{tabular}
&
\begin{tabular}[t]{ @{\makebox[1.5em][l]{\textbullet}} p{\dimexpr\linewidth- 
1.5em} @{} }
multiline item text multiline item text multiline item text multiline item 
 text multiline item text \\
multiline item text multiline item text
\end{tabular} \\
\hline

\end{tabularx}
\end{table*}

结果是 在此处输入图片描述 但问题是第一列有一些不必要的空间。我不是乳胶专家。有什么方便有效的方法可以在乳胶中制作这种类型的表格吗?

答案1

让我将我的评论延伸到答案:

  • 您仅提供了表格的代码片段,因此不知道实际的文档布局。因此我使用由“几何包”确定页面边框的文档
  • 答案基于我对问题的回答“表格单元格内的项目列表对齐不佳”
  • 与之相比我做了以下改变:

    • 从你的问题中我得出结论,在第一列的单元格中,你有一个简短的一行文本。对于这样的文本适合使用l列类型
    • 由于您使用tabularx具有左对齐列标题的表格环境,因此我相应地更改了I列和命令的定义mch

      \documentclass{article}
      \usepackage[showframe,
                  a4paper]{geometry}
      \usepackage{booktabs, tabularx}
      
      % added packages and column definitions
      \usepackage{ragged2e}           % for smart align of cells' content
      
          \usepackage{enumitem}       % for nice list
      \newcolumntype{I}{>{\RaggedRight\arraybackslash%            % <-- for lists in columns
                             \itemize}X<{\enditemize}}
      \newcommand\mch[1]{\multicolumn{1}{l}{\small{#1}}}  % <-- for columns headers
      
      \begin{document}
      
          \begin{table}
          \setlength\tabcolsep{3pt}
          \setlist[itemize]{nosep,        % <-- new list setup
                           leftmargin = *,
                           before     = \vspace{-0.6\baselineskip},
                           after      = \vspace{-\baselineskip}
                           }
      \caption{The table caption}
          \label{tab:itemize}
      \begin{tabularx}{\linewidth}{ >{\RaggedRight}p{0.2\linewidth}  *{2}{I} }
          \toprule
      Column 1 & \mch{Column 2} & \mch{Column 3}                          \\
          \midrule
      Multiple column and column
          &   \item   multi line item text multi line item text multi line item text multi line item
        text multi line item text
              \item   x x x x x x x x x x x x x x x x x x x x x x x x x
              &   \item   multiline item text multiline item text multiline item text multiline item
       text multiline item text
                  \item   x x x x x x x x x x x x x x x x x x x x x x x x \\
          \bottomrule
      \end{tabularx}
      \end{table}
      \end{document}
      

在此处输入图片描述

如果第一列中的文本较长,需要分成多行,l则应使用p{<width>列类型而不是列,并根据您的喜好确定其宽度。在这种情况下,列I将自动适应表格其余部分的宽度。例如

\begin{tabularx}{\linewidth}{ >{\RaggedRight}p{0.2\linewidth}  *{2}{I} }

你将获得:

在此处输入图片描述

答案2

我在最后两栏中提出了基于的更简单的代码,tabularx并使用了定制的环境:itemize

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{enumitem}
\usepackage{tabularx, caption}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother

\begin{document}

\begin{table*}
\caption{The table caption}
\setlist[itemize]{wide=0pt, leftmargin=*, itemsep=0pt, topsep=0pt, after=\vspace*{-\baselineskip}, rightmargin=-\leftmargini}
\setlength{\extrarowheight}{3pt}
\begin{tabularx}{\textwidth}{|>{\hsize=0.6\hsize}X|*{2}{>{\hsize=1.2\hsize\compress\arraybackslash}X|}}
\hline
Column 1 & Column2 & Column 3\\
\hline
Multiple column and column &
\begin{itemize}
 \item
multiline item text multiline item text multiline item text multiline item
  text multiline item text
\item
multiline item text multiline item text
\end{itemize}
&
\begin{itemize}
\item
multiline item text multiline item text multiline item text multiline item
 text multiline item text
 \item
multiline item text multiline item text
\end{itemize}
 \\
\hline
\end{tabularx}
\end{table*}

\end{document}

在此处输入图片描述

相关内容