需要有关“放错 \noalign”以及 \centering 的帮助

需要有关“放错 \noalign”以及 \centering 的帮助

因此,我目前正在设置我的第一个表格,以用作未来文档的预设。虽然它可以工作,并给出了我想要的结果(除了 {\centering} 不起作用),但它确实会抛出 20 个“Misplaced \noalign”错误(Misplaced \noalign。^^I\end{tabularx})

代码如下:

\documentclass[a4paper,11pt]{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage{marvosym}
    \usepackage{enumerate}
    \usepackage{array}
    \usepackage{tabularx}
    \usepackage{xcolor,colortbl}        

    \definecolor{Grey}{gray}{0.8}
    \definecolor{Groy}{gray}{0.9}
\begin{document}
    \begin{tabularx}{375pt}{lX*{3}{>{\sffamily}rX}X}
        \vspace{2.5pt}\noindent
        \rowcolor{Grey}\textbf{Land} && \textbf{2002} && \textbf{2001} && \textbf{1990}\\\vspace{2.5pt}\noindent
        \cellcolor{Grey}USA && 3 800 000 && 3 778 512 && 3 040 932 \\\vspace{2.5pt}\noindent
        \rowcolor{Groy} \cellcolor{Grey}VR China && 1 602 156 && 1 421 268 && 618 000\\\vspace{2.5pt}\noindent
        \cellcolor{Grey}Japan && 935 000 && 932 904 && 857 268& \\\vspace{2.5pt}\noindent
        \rowcolor{Groy} \cellcolor{Grey}Russland && 888 936 && 888 382 && {\centering}-\\\vspace{2.5pt}\noindent
        \cellcolor{Grey}Kanada && 565 000 && 564 108 && 482 028 \\\vspace{2.5pt}\noindent
        \rowcolor{Groy} \cellcolor{Grey}Frankreich && 549 245 && 545 000 && 419 219 \\\vspace{2.5pt}\noindent
        \cellcolor{Grey}Deutschland && 543 561 && 566 835 && 566 484 \\\vspace{2.5pt}\noindent
            \rowcolor{Groy} \cellcolor{Grey}Weltproduktion && 15 750 000 && 15 684 000 && 11 179 000\\\vspace{2.5pt}\noindent
    \end{tabularx}
\end{document}

它给出的是这样的:在此处输入图片描述

因此,在我开始将它用在真正需要提交的东西上之前,我希望它不会抛出这些错误,或者至少明白为什么会出现这些错误...希望你们能帮忙(并且告诉我,为什么居中不起作用?)

答案1

这些代币\vspace{2.5pt}\noindent在那里完全不合适。

以下是实现siunitx

\documentclass[a4paper,11pt]{article}

\usepackage{array}
\usepackage{tabularx}
\usepackage[table]{xcolor} % don't load colortbl after xcolor, use the option

\usepackage{siunitx}

\definecolor{Grey}{gray}{0.8}
\definecolor{Groy}{gray}{0.9}

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{
  l *{3}{X>{\sffamily}S[table-format=8.0,detect-all]}
}
  \rowcolor{Grey}
\textbf{Land}                  && {\textbf{2002}} && {\textbf{2001}} && {\textbf{1990}}\\
\cellcolor{Grey}USA            &&  3 800 000 &&  3 778 512 &&  3 040 932 \\
  \rowcolor{Groy}
\cellcolor{Grey}VR China       &&  1 602 156 &&  1 421 268 &&    618 000 \\
\cellcolor{Grey}Japan          &&    935 000 &&    932 904 &&    857 268 \\
  \rowcolor{Groy}
\cellcolor{Grey}Russland       &&    888 936 &&    888 382 &&       {--} \\
\cellcolor{Grey}Kanada         &&    565 000 &&    564 108 &&    482 028 \\
  \rowcolor{Groy}
\cellcolor{Grey}Frankreich     &&    549 245 &&    545 000 &&    419 219 \\
\cellcolor{Grey}Deutschland    &&    543 561 &&    566 835 &&    566 484 \\
  \rowcolor{Groy}
\cellcolor{Grey}Weltproduktion && 15 750 000 && 15 684 000 && 11 179 000 \\
\end{tabularx}

\end{document}

在此处输入图片描述

然而,我看不出使用无衬线字体来显示数据的理由。

在我看来,表格的自然宽度更好;为了尝试它,请用 替换\begin{tabularx}{\textwidth},从说明符中\begin{tabular}删除并更改为。X&&&

对于下图我也删除了\sffamily

在此处输入图片描述

答案2

我建议使用略有不同的布局,使用 参数overhang\columncolor仍然基于siunitxtabularx不需要。请注意,使用 选项tablexcolor您不必加载colortbl。此外,使用 命令可以简化代码\rowcolors

\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[table]{xcolor}
\usepackage{siunitx}%
\definecolor{Grey}{gray}{0.8}
\definecolor{Groy}{gray}{0.9}

\begin{document}

{\setlength\extrarowheight{2.5pt}\sisetup{table-format=8.0, detect-family}
  \setlength\tabcolsep{1em}}
\centering
\rowcolors{2}{Groy}{}
\begin{tabular}{ >{\columncolor{Grey}[1em][1pt]\cellcolor{Grey}}l*{3}{>{\sffamily}S}}
  \rowcolor{Grey}\textbf{Land} & {\textbf{2002}} & { \textbf{2001}} & {\textbf{1990}} \\
  USA                          & 3 800 000       & 3 778 512        & 3 040 932       \\
  VR China                     & 1 602 156       & 1 421 268        & 618 000         \\
  Japan                        & 935 000         & 932 904          & 857 268         \\
  Russland                     & 888 936         & 888 382          & {---}           \\
  Kanada                       & 565 000         & 564 108          & 482 028         \\
  Frankreich                   & 549 245         & 545 000          & 419 219         \\
  Deutschland                  & 543 561         & 566 835          & 566 484         \\
  Weltproduktion               & 15 750 000      & 15 684 000       & 11 179 000      \\
\end{tabular}
}
\end{document} 

在此处输入图片描述

相关内容