表格中的要点简洁

表格中的要点简洁

这是我要创建的表,其中包含

   \documentclass{article}
    \usepackage{booktabs,tabularx}
    \newcolumntype{Y}{>{\raggedright\arraybackslash}X}
     \newcolumntype{T}{>{\raggedright\arraybackslash}p{2.5cm}}



         \begin{document}
         \begin{table*}
            \caption{My table caption}
            \label{tab:Table1}
              \begin{tabularx}{\textwidth}{@{}TX@{}}
               \toprule
                 Column1 & Case of Column2\\
                \midrule
                 column 1 value & 
                  \begin{itemize}
                  \vspace*{-\baselineskip}
                  \item multiline item text multiline item text multiline item text multiline item text multiline item text
                  \vspace*{-\baselineskip}
                  \item multiline item text multiline item text
                  \vspace*{-\baselineskip}
                  \end{itemize}  \\
               \bottomrule
              \end{tabularx}
              \end{table*}
             \end{document}

虽然这不是一个优雅的解决方案,但它消除了项目符号之前、之后和之间的空间,而不管文档其余部分的间距方案如何。由于项目文本本身是多行文本,因此行间距很大。

有人能建议一个优雅的解决方案来在表格单元格内创建非常紧凑的项目符号吗?我尝试了这里给出的解决方案 如何删除 itemize/enumerate 之前的空格?

答案1

enumitem您可以通过 (a) 加载包并使用其某些功能(具体来说,设置选项、、nosep和)以及 (b) 封装minipage 环境来实现格式化目标。wide=0ptleftmargin=*after=\strutitemize environment inside a

另外:如果itemize环境不是包含在表格列中,设置选项nosep足以抑制上方和下方的空白空间填充itemize环境上方和下方的空白空间填充(以及空白之间项目)。但是,由于itemize环境出现在环境的列内tabularx,因此有必要将itemize环境嵌入到环境中minipage

最后,如果您好奇想知道该选项的作用after=\strut:它确保 itemize 环境的底行不会太靠近 绘制的水平线\bottomrule。请注意,在您的示例中,最后一项行不包含带有降序字符的字符(例如gpqy)。如果没有\strut,环境底线中的材料itemize看起来会太靠近 绘制的线\bottomrule

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,tabularx,enumitem,ragged2e}
\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X}

\begin{document}
\begin{table}
\caption{My table caption}
\label{tab:Table1}
\begin{tabularx}{\textwidth}{@{} lY @{}}
   \toprule
   Column1 & Column2\\
   \midrule
   column 1 value & 
   \begin{minipage}[t]{\linewidth}
   \begin{itemize}[nosep, wide=0pt, leftmargin=*, after=\strut]
   \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}  
   \end{minipage}\\
   \bottomrule
\end{tabularx}
\end{table}
\end{document}

答案2

使用以下方式设置列表tabular

在此处输入图片描述

\documentclass{article}

\usepackage{booktabs,tabularx}

\newcolumntype{T}{>{\raggedright\arraybackslash}p{2.5cm}}

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{ @{} T X @{} }
  \toprule
  Column1 & Case of Column2 \\
  \midrule
  column 1 value & 
  \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} \\
  \bottomrule
\end{tabularx}

\end{document}

内部tabular设置类似于列表,扩展\linewidth外部列的全部内容tabularx X,并进行[t]操作对齐以确保它与周围的单元格条目垂直对齐。

调整宽度来\makebox改变项目符号的对齐方式。


对于枚举的项目列表,您可以使用常规enumi计数器(对于环境内的第一级枚举enumerate

在此处输入图片描述

\documentclass{article}

\usepackage{booktabs,tabularx}

\newcolumntype{T}{>{\raggedright\arraybackslash}p{2.5cm}}

\newcommand{\settabenum}{\makebox[1.5em][l]{%
  \refstepcounter{enumi}%
  \xdef\@currentlabel{\@currentlabel}%
  \theenumi.}}

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{ @{} T X @{} }
  \toprule
  Column1 & Case of Column2 \\
  \midrule
  column 1 value & \setcounter{enumi}{0}% Reset the enumeration counter, if needed
  \begin{tabular}[t]{ @{\settabenum} 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} \\
  \bottomrule
\end{tabularx}

\end{document}

在上面的例子中没有必要\setcounter{enumi}{0},但如果您的文档中有其他enumerate列表,您可能必须在您的中重置它tabular

如果您希望能够引用某些项目,那么我们必须使用不同的设置:

在此处输入图片描述

\documentclass{article}

\usepackage{booktabs,tabularx}

\newcolumntype{T}{>{\raggedright\arraybackslash}p{2.5cm}}

\newcommand{\settabenum}{%
  \refstepcounter{enumi}%
  \makebox[0pt][r]{\makebox[1.5em][l]{%
  \theenumi.}}}

\begin{document}

See item~\ref{second}.

\bigskip

\noindent
\begin{tabularx}{\textwidth}{ @{} T X @{} }
  \toprule
  Column1 & Case of Column2 \\
  \midrule
  column 1 value & \setcounter{enumi}{0}% Reset the enumeration counter, if needed
  \begin{tabular}[t]{ @{\hspace{1.5em}} >{\settabenum} 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 \label{second}
  \end{tabular} \\
  \bottomrule
\end{tabularx}

\end{document}

相关内容