LateX 中表格的格式问题

LateX 中表格的格式问题

我一直在按照教程在 Latex 中格式化表格,但一直遇到问题。我的目标是: 在此处输入图片描述

但是使用以下代码:

\begin{table}[h!]
  \begin{center}
    \caption{Multicolumn table.}
    \label{tab:table1}
     \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|p(3cm)} 
      \hline
      |c| & \multicolumn{5}{|c|}{WordCNN} & \multicolumn{5}{|c|}{WordLSTM} & \multicolumn{5}{|c|}{BERT}
      \hline
      |c| & MR & IMDB & YELP & YG & Fake & MR & IMDB & YELP & YG & Fake & MR & IMDB & YELP & YG & Fake
      \hline
    \end{tabular}
  \end{center}
\end{table}

到目前为止,我已经实现了这个目标: 在此处输入图片描述

我发现表格的位置不对,而且空白处也有问题。我尝试使用以下网站的解决方案: https://latex-tutorial.com/tutorials/tables/#Csv Latex 表格超出页面边框 但没有运气。 任何帮助都将不胜感激,非常感谢!

答案1

@leandriis 已经提到了您的代码中的一些错误。此外,如果您有许多相同类型的列,您可以使用语法一次定义所有列*{num}{str}。这增加了代码的可读性并降低了出错的可能性。

您的表格太宽,即使使用 footnotesize 字体,也需要使用横向模式才能显示完整表格。对于横向布局,代码和输出如下:

\documentclass{article}

\usepackage[landscape]{geometry}
\usepackage{caption}
%------------------------------
% to show page layout, should be excluded in original document
\usepackage{showframe}
\renewcommand*\ShowFrameColor{\color{red}}
%-----------------------------
\begin{document}
\begin{table}[htbp]
    \centering
    \caption{Multicolumn table.}
    \label{tab:table1}
    \footnotesize
     \begin{tabular}{p{3cm}|*{3}{*{5}{c}|}} 
      \hline
       & \multicolumn{5}{c|}{WordCNN} & \multicolumn{5}{c|}{WordLSTM} & \multicolumn{5}{c|}{BERT}\\
      %\hline
       & MR & IMDB & YELP & YG & Fake & MR & IMDB & YELP & YG & Fake & MR & IMDB & YELP & YG & Fake\\
      \hline
      Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0\\
      Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0\\
      Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0\\
      Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0\\
      \hline
      Average Text Length & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0 & 12 & 15.0 & 12.0 & 12.0 & 12.0\\
      \hline
    \end{tabular}
\end{table}
\end{document}

景观输出

但是,您可以修改表格以适合纵向布局。一种方法可能如下:

输出画像

\documentclass{article}

\usepackage{caption}
\usepackage{multirow}
%------------------------------
% to show page layout, should be excluded in original document
\usepackage{showframe}
\renewcommand*\ShowFrameColor{\color{red}}
%-----------------------------

\begin{document}
\begin{table}[htbp]
    \centering
    \caption{Multicolumn table.}
    \label{tab:table1}
     \begin{tabular}{ll|*{5}{c}|} 
      \cline{3-7}
      & & MR & IMDB & YELP & YG & Fake\\
      \hline%\cline{3-7}
      \multirow{5}{*}{WordCNN} & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      \hline
      \multirow{5}{*}{WordSTM} & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      \hline
      \multirow{5}{*}{BERT} & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      & Original Accuracy & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      \hline
      & Average Text Length & 12 & 15.0 & 12.0 & 12.0 & 12.0 \\
      \hline
    \end{tabular}
\end{table}
\end{document}

此外,对于正式的表格,您可以考虑使用该booktabs包。

答案2

假设tabularray并确定页面布局\usepackage[margin=25mm]{geometry},则可以将表格放置在纵向页面方向的测试区域:

在此处输入图片描述

\documentclass{article}

\usepackage[margin=25mm]{geometry}
\usepackage{caption}
\usepackage{tabularray}
%---------------- Show page layout. Don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\begin{document}
    \begin{table}[ht]
    \centering
    \caption{Multicolumn table.}
    \label{tab:table1}
    \footnotesize
\begin{tblr}{hline{1,Z} = 1pt, hline{3,Y} = 0.6pt,
             vline{2,7,12},        
              colsep = 2.1pt,
             colspec = {@{} l *{15}{c} @{}},
           column{1} = {font=\bfseries},
            row{1,2} = {font=\bfseries},
             }
\SetCell[r=2]{l}
    &   \SetCell[c=5]{c} WordCNN
        &   &   &   &   &   \SetCell[c=5]{c} WordLSTM
                            &   &   &   &   &   \SetCell[c=5]{c} BERT
                                                &   &   &   &   \\
    & MR    & IMDB  & YELP  & YG    & Fake 
            & MR    & IMDB  & YELP  & YG    & Fake  
                    & MR    & IMDB  & YELP  & YG    & Fake      \\
Original Accuracy 
    & 12    & 15.0  & 12.0  & 12.0  & 12.0 
            & 12    & 15.0  & 12.0  & 12.0  & 12.0 
                    & 12    & 15.0  & 12.0  & 12.0  & 12.0      \\
Original Accuracy 
    & 12    & 15.0  & 12.0  & 12.0  & 12.0  
            & 12    & 15.0  & 12.0  & 12.0  & 12.0 
                    & 12    & 15.0  & 12.0  & 12.0  & 12.0      \\
Original Accuracy 
    & 12    & 15.0  & 12.0  & 12.0  & 12.0 
            & 12    & 15.0  & 12.0  & 12.0  & 12.0 
                    & 12    & 15.0  & 12.0  & 12.0  & 12.0      \\
Original Accuracy 
    & 12    & 15.0  & 12.0  & 12.0  & 12.0
            & 12    & 15.0  & 12.0  & 12.0  & 12.0
                    & 12    & 15.0  & 12.0  & 12.0  & 12.0      \\
Average Text Length 
    & 12    & 15.0  & 12.0  & 12.0  & 12.0
            & 12    & 15.0  & 12.0  & 12.0  & 12.0
                    & 12    & 15.0  & 12.0  & 12.0  & 12.0      \\
\end{tblr}
    \end{table}
\end{document}

编辑: 在某些情况下,当文本宽度小于上述 MWE 中预期的宽度时,或者您喜欢使用更大的字体大小,例如\small,您可以允许表格突出到文本区域之外。这可以通过使用包adjustwidth*中定义的环境 轻松完成changepage。例如:

% existed preamble
\usepackage[strict]{changepage}

\begin{document}
    \begin{table}[ht]
\begin{adjustwidth*}{}{-11mm}
    \centering
    \caption{Multicolumn table.}
    \label{tab:table1}
    \small
% table
\end{adjustwidth*}
    \end{table}
\end{document}

在这种情况下,表格如下所示:

在此处输入图片描述

相关内容