表格单元格内的项目列表未对齐

表格单元格内的项目列表未对齐

我使用 在 LaTeX 中创建了一个表格longtable。我需要在单元格内列出列表。我曾使用过,\tabitem但我得到的项目对齐不佳。这是我的代码:

\newcommand{\tabitem}{~~\llap{\textbullet}~~}

\begin{longtable}[H]{| m{5cm} | m{5cm}| m{5cm} | }\hline 
%\begin{center}
%\begin{tabular}{ | m{5cm} | m{5cm}| m{5cm} | } 
%\hline
Méthode de validation & Avantages  & Inconvénients \\ 
\hline
Resubstitution Validation &  \tabitem Simple  & \smallskip \tabitem Surapprentissage \\ 
\hline
Hold-out Validation & \tabitem Apprentissage et tests indépendants & \tabitem Réduction des données utilisées pour l'apprentissage et les tests \newline \smallskip \tabitem Grande variance  \\ 
\hline
k-fold cross Validation & \tabitem Estimation précise des performances & \tabitem Petits échantillons d'estimation des performances \newline \smallskip \tabitem Données d'apprentissage chevauchées \newline \smallskip \tabitem Variance de la performance sous-estimée ou degré de liberté de comparaison surestimé
\\ 
\hline
Leave-One-Out Validation cross-validation & \smallskip \tabitem Estimation non biaisée de performance \newline \smallskip \tabitem Haute exploitation de données pour l’apprentissage & \smallskip \tabitem Variance très large
\\ 
\hline
Repeated k-fold cross-validation & \smallskip \tabitem Grand nombre d’estimation de performance & \smallskip \tabitem Chevauchement des données d'entraînement et d'essai entre chaque itération. \newline \smallskip \tabitem  Variance de la performance sous-estimée ou degré de liberté de comparaison surestimé
\\ 
\hline
%\end{tabular}
%\end{center}
\caption{Caractéristiques des méthodes de validation}
%\end{table}
\end{longtable}

以下是我得到的结果:

在此处输入图片描述

如您所见,项目并非全部以相同方式对齐(在第三列中)。如何对齐所有列表项?

答案1

我更喜欢以下形式的表格:

在此处输入图片描述

上表的代码有稍微更复杂的前言,但表格类型与问题中显示的代码几乎相同:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{array,booktabs}

% added packages and column definitions
\usepackage{ragged2e}           % for smart align of cells' content
    \usepackage{enumitem}       % for nice list
\newlist{tabitemize}{itemize}{1}% <-- defined new list
\setlist[tabitemize]{nosep,     % <-- new list setup
                     topsep     = 0pt       ,
                     partopsep  = 0pt       ,
                     leftmargin = *         ,
                     label      = $\bullet$ ,
                     before     = \vspace{-0.6\baselineskip},
                     after      = \vspace{-\baselineskip}
                     }
\newcolumntype{I}[1]{>{\RaggedRight\arraybackslash             % <-- for lists in columns
                    \tabitemize} p{#1}<{\endtabitemize}}
\newcommand\mch[1]{\multicolumn{1}{c}{\small\itshape{#1}}}  % <-- for columns headers  

\begin{document}
\begin{tabular}{@{} >{\RaggedRight}p{4cm} *{2}{I{4cm}} @{}}
  \toprule
\mch{Méthode de validation}
    &   \mch{Avantages}   &   \mch{Inconvénients} \\
  \midrule
Resubstitution Validation
    &   \item simple
        \item effortles
        &    \item Surapprentissage                 \\
    \addlinespace
Hold-out Validation 
    &   \item   Apprentissage et tests indépendants 
        &    \item   Réduction des données utilisées pour l'apprentissage et les tests
            \item   Grande variance                 \\
    \addlinespace
k-fold cross Validation 
    &   \item   Estimation précise des performances 
        &   \item   Petits échantillons d'estimation des performances 
            \item   Données d'apprentissage chevauchées
            \item   Variance de la performance sous-estimée ou degré de liberté de comparaison surestimé               \\
    \addlinespace
Leave-One-Out Validation cross-validation 
    &   \item   Estimation non biaisée de performance 
        \item   Haute exploitation de données pour l’apprentissage 
        &   \item   Variance de la performance sous-estimée ou degré de liberté de comparaison surestimé                       \\
    \addlinespace
Repeated k-fold cross-validation 
    &   \item   Grand nombre d’estimation de performance 
        &   \item   Chevauchement des données d'entraînement et d'essai entre chaque itération.
            \item   Variance de la performance sous-estimée ou degré de liberté de comparaison surestimé               \\
    \bottomrule
\end{tabular}
\end{document}

上述代码及其注释应该是不言自明的 :)。如果是longtable必需的,那么

\begin{tabular}{@{} >{\RaggedRight}p{4cm} *{2}{I} @{}}

用。。。来代替

\begin{longtable}{@{} >{\RaggedRight}p{4cm} *{2}{I} @{}}

与。\end{tabular}\end{longtable}

答案2

为什么你不在表中使用标准的 itemize 环境?

我尝试了一个较小的示例来说明这一点。它没有像您的那样包含那么多文本,但我认为这不会有什么坏处。

我还添加了包array和包booktabsbooktabs绘制了这些漂亮的线条。您不需要超过这几行。阅读该包的手册。

以下是我的示例:

\documentclass[a4paper]{article}
\usepackage{array}
\usepackage{booktabs}

\newcolumntype{T}{%
  >{\scriptsize}c}

\begin{document}
\begin{tabular}{@{} *{3}{m{4cm}} @{}}
  \toprule

  \multicolumn{1}{@{}T}{Méthode de validation}
    & \multicolumn{1}{T}{Avantages} 
    & \multicolumn{1}{T@{}}{ Inconvénients} \\ 
  \midrule
  Resubstitution Validation 
    & \begin{itemize}
          \item simple
          \item effortles
          \end{itemize}
    & \begin{itemize}
          \item Surapprentissage
          \end{itemize}\\
  \bottomrule
\end{tabular}
\end{document}

这就是结果

在此处输入图片描述

当然,无论您使用哪种解决方案:每个列表中至少应该有两个 \items,否则它就不是列表!

也许你会加载这个enumitem包。它非常强大,可以改变任何列表的各个维度。

相关内容