因此,我目前正在设置我的第一个表格,以用作未来文档的预设。虽然它可以工作,并给出了我想要的结果(除了 {\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
仍然基于siunitx
。tabularx
不需要。请注意,使用 选项table
,xcolor
您不必加载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}