Tabularx 环境问题

Tabularx 环境问题

我在使用以下代码时遇到了问题,并且我尝试了各种方法来诊断问题(即:注释掉内容),但我未能成功找到错误。

代码如下:

\documentclass{beamer}
\usepackage{booktabs,makecell,multirow,tabularx}
\usepackage{ragged2e}
\renewcommand\theadfont{\normalfont\bfseries}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\newcolumntype{C}{>{\Centering\arraybackslash}X}
\newcommand\mc[1]{\multicolumn{2}{c}{#1}}

\setlength\parindent{0pt}
%\usepackage[justification=centering]{caption}
\usepackage{siunitx}
\usepackage{tikz}

\usepackage{adjustbox}

\begin{document}

\begin{frame}[shrink=30]{Summary Statistics}          
    \vspace*{2em}          
    \setlength{\tabcolsep}{4pt} 


\begin{tabularx}{\textwidth}{@{} l L *{10}{S[table-format=3.3]} @{}}
    \toprule   
\thead[lc]{Benchmark} & \thead{(1,1)} & {\thead{(2,1)}} & {\thead{(3,1)}} & {\thead{(4,1)}} & {\thead{(5,1)}} & {\thead{(6,1)}} \
    & {\thead{(7,1)}} & \thead{(8,1)} & {\thead{(9,1)}} & {\thead{(10,1)}} & {\thead{(11,1)}} & {\thead{(12,1)}} \\
    \midrule

(1,1) & 0.00 & 0.01 & 0.02 & 0.02 & 0.03 & 0.03 & 0.05 & 0.02 & 0.01 & 0.01 & 0.09 & 0.00 \\


\bottomrule 
\end{tabularx} 

\end{frame}

我收到的消息是:“extra } or $”,但我检查了所有地方,没有发现任何问题。因此,我将不胜感激任何帮助和建议。

答案1

如果目标是使表格的宽度等于文本块的宽度,则使用环境tabular*而不是环境tabularx(具有单个 X 形列)似乎是更好的选择。

顺便说一句,您可能需要重新考虑使用粗体字作为标题行。将标题行夹在和之间\toprule足以\midrule使其具有所需的所有视觉突出性;过多的粗体材料很快就会产生粗俗的外观。下面屏幕截图中的第二个表格表明(在我看来)粗体字是完全没有必要的。

在此处输入图片描述

\documentclass{beamer}
\usepackage{booktabs}

\begin{document}

\begin{frame}[shrink=30]{Summary Statistics}          
\vspace*{2em}          
% Let LaTeX determine amount of intercolumn whitespace
\setlength{\tabcolsep}{0pt} 

\begin{tabular*}{\textwidth}{l @{\extracolsep{\fill}} *{12}{c}}
\toprule   
\textbf{Benchmark}& \textbf{(1,1)} 
& \textbf{(2,1)}  & \textbf{(3,1)} & \textbf{(4,1)} & \textbf{(5,1)}  
& \textbf{(6,1)}  & \textbf{(7,1)} & \textbf{(8,1)}  & \textbf{(9,1)} 
& \textbf{(10,1)} & \textbf{(11,1)} & \textbf{(12,1)} \\
\midrule
(1,1) & 0.00 & 0.01 & 0.02 & 0.02 & 0.03 & 0.03 & 0.05 & 0.02 & 0.01 & 0.01 & 0.09 & 0.00 \\
\bottomrule 
\end{tabular*} 

\vspace*{2cm}
\begin{tabular*}{\textwidth}{l 
         @{\extracolsep{\fill}} *{12}{c}}
\toprule   
{Benchmark}& (1,1) 
& (2,1)  & (3,1) & (4,1) & (5,1)  & (6,1) & (7,1) 
& (8,1)  & (9,1) & (10,1)& (11,1) & (12,1) \\
\midrule
(1,1) & 0.00 & 0.01 & 0.02 & 0.02 & 0.03 & 0.03 & 0.05 & 0.02 & 0.01 & 0.01 & 0.09 & 0.00 \\
\bottomrule 
\end{tabular*} 


\end{frame}
\end{document}

答案2

在这种情况下,我使用更容易处理的包rccol。如果你不需要三位小数,那么可以R[.]{1}{2}使用

\documentclass{beamer}
\usepackage{booktabs,tabularx}
\usepackage{ragged2e}
\newcommand\MC[1]{\multicolumn{1}{c}{\bfseries#1}}
\usepackage{rccol}

\begin{document}

    \begin{frame}[shrink=30]{Summary Statistics}                  
        \bigskip\noindent\setlength{\tabcolsep}{2pt}
        \begin{tabular}{@{} l *{12}{R[.]{1}{3}} @{}}\toprule   
            Benchmark & \MC{(1,1)} & \MC{(2,1)} & \MC{(3,1)} & \MC{(4,1)} & \MC{(5,1)} & \MC{(6,1)} 
            & \MC{(7,1)} & \MC{(8,1)} & \MC{(9,1)} & \MC{(10,1)} & \MC{(11,1)} & \MC{(12,1)} \\\midrule             
            (1,1) & 0.00 & 0.01 & 0.02 & 0.02 & 0.03 & 0.03 & 0.05 & 0.02 & 0.01 & 0.01 & 0.09 & 0.00 \\                        
            \bottomrule 
        \end{tabular} 
    \end{frame}

 \end{document}

在此处输入图片描述

答案3

实际错误是缺少多列条目并声明了错误的列数,但是正如其他答案所评论的那样,tabularx对于数字表来说,使用的环境是错误的。

\documentclass{beamer}
\usepackage{booktabs,makecell,multirow,tabularx}
\usepackage{ragged2e}
\renewcommand\theadfont{\normalfont\bfseries}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\newcolumntype{C}{>{\Centering\arraybackslash}X}
\newcommand\mc[1]{\multicolumn{2}{c}{#1}}
\newcommand\m[1]{\multicolumn{1}{c}{#1}}

\setlength\parindent{0pt}

\usepackage{siunitx}


\begin{document}

\begin{frame}[shrink=30]{Summary Statistics}          
    \vspace*{2em}          
    \setlength{\tabcolsep}{4pt} 


\begin{tabularx}{\textwidth}{@{} l L *{11}{S[table-format=3.3]} @{}}
    \toprule   
\m{\thead[lc]{Benchmark}} & \m{\thead{(1,1)}} & \m{\thead{(2,1)}} & \m{\thead{(3,1)}} & \m{\thead{(4,1)}} & \m{\thead{(5,1)}} & \m{\thead{(6,1)}} 
    & \m{\thead{(7,1)}} & \m{\thead{(8,1)}} & \m{\thead{(9,1)}} & \m{\thead{(10,1)}} & \m{\thead{(11,1)}} & \m{\thead{(12,1)}} \\
    \midrule
(1,1) & 0.00 & 0.01 & 0.02 & 0.02 & 0.03 & 0.03 & 0.05 & 0.02 & 0.01 & 0.01 & 0.09 & 0.00 \\
\bottomrule 
\end{tabularx} 

\end{frame}

\end{document}

相关内容