表格对齐问题 - 额外的对齐标签已更改为 \cr

表格对齐问题 - 额外的对齐标签已更改为 \cr

我是 latex 和 overleaf 的新手。我尝试在 overleaf 中创建一个表格。我收到这样的错误:

额外的对齐标签已更改为 \cr。

我曾经p{... cm}指定过列的宽度。

在每一行的末尾,我尝试使用\\\,但 hline 断了;因此将其更改为&。使用\\\可以消除错误,但表格看起来不像我想要的那样。

\begin{table}[!t]
  \centering
  \caption{Demo Caption\centering}
  \label{table-ndf}
    \begin{tabular}{p{1.3cm}p{1.4cm}p{2.4cm}p{3.1cm}p{3.4cm}}
    %\begin{tabular}{p{3cm}p{2.5cm}P{4.5cm}}
    %\begin{tabular}{ccccc}
    \hline
    {\textbf{Demo option}}\centering & \textbf{Demo option}\centering & \textbf{Demo option demo}\centering & \textbf{Demo Option Demo option}\centering & \textbf{Demo Option Demo option Demo option}\centering & 
    \hline
        0.0\centering &   -\centering           &   {100\%}\centering   &  90.0\centering       &  90.0\centering &
        0.5\centering &   {Demo 3}\centering    &   {50\%}\centering    &  45.0\centering       &  45.0\centering &
        1.0\centering &   {Demo 6}\centering    &   {25\%}\centering    &  22.5\centering       &  22.5\centering &
    \hline
    \end{tabular}
\end{table}

如果您有任何建议,请发表评论。如果代码有误,请见谅;这是我第一次使用 overleaf。

答案1

\centering环境中的所有指令tabular都没有任何用处。你想用它们实现什么?在下文中,我假设你想要实现的是将单元格内容居中,同时允许根据需要进行换行。如果此假设不正确,请告知。

根据上述假设,并将&行尾的符号替换为\\,我得到以下结果:

在此处输入图片描述

\documentclass{article}
\usepackage{array} % for \newcolumntype macro
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}

\begin{table}[!ht]
  \centering
  \caption{Demo caption\strut} \label{table-ndf}
  \begin{tabular}{ C{1.3cm} C{1.3cm} C{1.3cm} C{2.6cm} C{2.6cm} }
    \hline
    \textbf{Demo option} & 
    \textbf{Demo option} & 
    \textbf{Demo option demo} & 
    \textbf{Demo option demo option} & 
    \textbf{Demo option demo option demo option} \\ 
    \hline
    0.0 &   --      &  100\%   &  90.0  &  90.0 \\
    0.5 &   Demo 3  &   50\%   &  45.0  &  45.0 \\
    1.0 &   Demo 6  &   25\%   &  22.5  &  22.5 \\
    \hline
  \end{tabular}
\end{table}

\end{document}

答案2

编写表格的两种可能方法:

  • 通过使用tabularx
  • 通过使用 7tabularray package with libraries (packages)booktabs andsiunitx`
\documentclass{article}
%--------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{tabularx}
\usepackage{tabularray} 
\UseTblrLibrary{booktabs, siunitx}

\begin{document}
\begin{table}[htb]
  \setlength\tabcolsep{4pt}
  \caption{Demo Caption: \texttt{tabularx}}
  \label{table-ndf}
    \begin{tabularx}{\linewidth}{@{} >{\centering\arraybackslash\hsize=0.6\hsize}X
                                *{5}{>{\centering\arraybackslash\hsize=1.1\hsize}X} @{}}
    \hline
\textbf{Demo option}    
    & \textbf{Demo option}  
        & \textbf{Demo option demo} 
            & \textbf{Demo Option Demo option} 
                & \textbf{Demo Option Demo option Demo option}  \\ 
    \hline
        0.0 &   --      &   100\,\% &  90.0 &  90.0 \\
        0.5 &   Demo 3  &    50\,\% &  45.0 &  45.0 \\
        1.0 &   Demo 6  &    25\,\% &  22.5 &  22.5 \\
    \hline
    \end{tabularx}
\end{table}

\begin{table}[htb]
  \setlength\tabcolsep{4pt}
  \caption{Demo Caption: \texttt{tabularray}}
  \label{table-ndf}
    \begin{tblr}{colsep  = 4pt,
                 colspec = {@{} *{2}{X[0.7, c]}
                                     X[1.1, c, si={table-format=3.0{\,\%}}]
                                *{2}{X[1.1, c]} @{}},
                  row{1} = {font=\bfseries, guard}
                }
    \toprule
Demo option
    & Demo option
        & Demo option demo
            & Demo Option Demo option
                & Demo Option Demo option Demo option   \\
    \midrule
        0.0 &   --      &   100\,\% &  90.0 &  90.0 \\
        0.5 &   Demo 3  &    50\,\% &  45.0 &  45.0 \\
        1.0 &   Demo 6  &    25\,\% &  22.5 &  22.5 \\
    \bottomrule
    \end{tblr}
\end{table}
\end{document}

在此处输入图片描述

(红线表示文本区域边框)

相关内容