额外的对齐标签已更改为 \cr,以实现 TabularX 居中

额外的对齐标签已更改为 \cr,以实现 TabularX 居中

问题:

Extra alignment tab has been changed to \cr

我认为这意味着 LaTeX 代码在此行中的单元格数量与 tabularx premable 中定义的数量不同。

直到我尝试在标题后添加更多行时,问题才出现,但右侧的最后一个单元格有点...升高了?我不太明白这里的问题,我的意思是在 tabularx 环境中,您用 分隔单元格,用&结束一行//,对吗?

此外,如果您将最后一个标题更改为:{\centering T}它不会崩溃或提升文本,但是...它不会使文本居中。

有任何想法吗?

注意:这里最重要的是我想让标题与单元格的对齐方式不同。所以我尝试在标题上使用 \centering。\begin{center} 可以做到这一点,但会在标题周围留出大量空间。

梅威瑟:

\documentclass[11pt]{letter}                              
\usepackage[letterpaper, inner=18mm, outer=18mm, top=8mm, bottom=25mm]{geometry}
\usepackage{tabularx}                                               
\usepackage[table,xcdraw]{xcolor}
    
\renewcommand{\tabularxcolumn}[1]{>{\tiny}m{#1}}
\newcolumntype{x}{>{\raggedleft\arraybackslash}X}  
        
\begin{document}

    \rowcolors{1}{}{gray!15}
        \begin{tabularx}{\textwidth}{xxxxxxxxxxxx}
            \rowcolor{gray}

    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text  &          
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering text &   
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text &   
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text  &  
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text &   
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text  &  
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text  &  
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text  &  
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text Text Text &     
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text  &  
    \color{white}\fontsize{6pt}{6pt}\selectfont \centering Text  &  
    \color{white}\fontsize{6pt}{6pt}\selectfont {\centering Tt} \\  

    \color{black}\fontsize{6pt}{6pt}\selectfont 8'  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 130  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 134  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 152  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 168  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 200  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 240  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 340  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 520  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 340  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont 520  & 
    \color{black}\fontsize{6pt}{6pt}\selectfont -  \\

\end{tabularx}
\end{document}

编辑:

首先,重复很多事情似乎真的很不方便,但实际上我只需输入一次,计算机就会循环重复。

我一直没有使用多列,因为标题超出了表格单元格的宽度,我无法为每个单元格定义静态宽度(否则我不会有问题),因为在更大的图中,我正在使用 Scriban 模板化 LaTeX 文件,并且我正在处理动态标题。以下是使用多列时发生的情况:

在此处输入图片描述

我能够使用 \begin{center} 将标题居中,但是每个标题单元格周围的空间不合适,因此我查找了一下并在此处尝试了一个新的环境:我如何改变中心上方和下方的空白?它可以删除上方的空间,但不能删除下方的空间。我在每个标题单元格的前面和后面放置了 \begin 和 \end{center}。如下所示:

在此处输入图片描述

我不需要微小的单元格,我只是认为这会改变标题的多列强制宽度。

\centering我只是感到困惑,因为表格对每行的修饰符的反应很奇怪。

另外,我正在使用 tabularX,因为它可以动态地将其扩展到页面末尾。

答案1

一年后(我以前显然忽略了这个问题)......

我会以非常不同的方式写你的表格:

  • 字体大小我之前定义过tabularx,这样每个单元格中的所有重复都变得多余
  • 我想知道你真的需要这么小的字体吗。从表格提供的内容可以得出结论,字体大小可以大得多,例如等于\small
  • 为了改变对齐列标题的内容,我将定义新命令:
    \newcommand\mcw[1]{\multicolumn{1}{C}{\textcolor{white}{#1}}}
    
    其中C定义为>{\centering\arraybackslash}X
  • 我还会通过以下方式在单元格内容上方添加小的垂直空间\setlength\extrarowheight{2pt}
  • 经过这些措施后,表格的代码变得更加简短和清晰,因此在编写时更不容易出错:
\documentclass[11pt]{article}%{letter}
\usepackage[letterpaper, inner=18mm, outer=18mm, top=8mm, bottom=25mm]{geometry}
\usepackage{tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage[table, xcdraw]{xcolor}
\newcommand\mcw[1]{\multicolumn{1}{C}{\textcolor{white}{#1}}}

\begin{document}
    \begin{table}[ht]
    \small\linespread{0.84}\selectfont\relax%\fontsize{6pt}{6pt}\selectfont\relax
    \setlength\extrarowheight{2pt}
    \rowcolors{1}{}{gray!15}
 \begin{tabularx}{\textwidth}{*{12}{L}}
            \rowcolor{gray}
\mcw{Text} & \mcw{Text} & \mcw{Text} & \mcw{Text} & \mcw{Text} & \mcw{Text} &
\mcw{Text Text Text} 
           & \mcw{Text} & \mcw{Text} & \mcw{Text} & \mcw{Text} & \mcw{Tt}       \\
%
8'         & 130        & 134        & 152        & 168         & 200       & 
240        & 340        & 520        & 340        & 520         & -             \\
8'         & 130        & 134        & 152        & 168         & 200       &
240        & 340        & 520        & 340        & 520         & -             \\
8'         & 130        & 134        & 152        & 168         & 200       &
240        & 340        & 520        & 340        & 520         & -             \\
    \hline
\end{tabularx}
    \end{table}
\end{document}

在此处输入图片描述

答案2

代替

\color{white}\fontsize{6pt}{6pt}\selectfont \centering Text  &

\color{white}\fontsize{6pt}{6pt}\selectfont \centering\arraybackslash Text  &

相关内容