我确实需要multirow
在我的某个表格中使用,但不幸的是我无法让它工作。文本被截断并且没有垂直对齐。
我的代码有什么问题?
\documentclass[12pt,a4paper]{scrartcl}
\usepackage{float}
\usepackage{caption}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{makecell}
\usepackage{booktabs}
\begin{document}
\begin{table}[H]
\centering
\captionabove{Abstände der Nebenmaxima vom Hauptmaxima in den Beugungsbildern der Gitter A bis D}
\label{tab:abstaende}
\vspace{-10px}
\rowcolors{2}{gray!10}{white}
\begin{tabularx}{\linewidth}{ c c c c c m{0px} }
\toprule \rowcolor{white}
\multirowcell{2}[0.5ex]{Ordnung des \\ Nebenmaximums} & \multicolumn{4}{c}{Abstände vom Hauptmaximum [\si{mm}]} &\\ \rowcolor{white}
& Gitter A & Gitter B & Gitter C & Gitter D &\\[6pt]
\midrule
\num{1} & \num[separate-uncertainty = true]{3.8 \pm 1} & \num[separate-uncertainty = true]{3.9 \pm 1} & \num[separate-uncertainty = true]{5.6 \pm 1} & \num[separate-uncertainty = true]{5.8 \pm 1} &\\
\num{2} & \num[separate-uncertainty = true]{7.8 \pm 1} & \num[separate-uncertainty = true]{7.7 \pm 1} & \num[separate-uncertainty = true]{11.6 \pm 1} & \num[separate-uncertainty = true]{11.8 \pm 1} &\\
\num{3} & \num[separate-uncertainty = true]{11.4 \pm 1} & \num[separate-uncertainty = true]{11.6 \pm 1} & \num[separate-uncertainty = true]{17.3 \pm 1} & \num[separate-uncertainty = true]{17.5 \pm 1} &\\
\num{4} & \num[separate-uncertainty = true]{15.4 \pm 1} & \num[separate-uncertainty = true]{15.4 \pm 1} & \num[separate-uncertainty = true]{23.3 \pm 1} & \num[separate-uncertainty = true]{23.5 \pm 1} &\\
\num{5} & \num[separate-uncertainty = true]{19.1 \pm 1} & \num[separate-uncertainty = true]{19.3 \pm 1} & \num[separate-uncertainty = true]{28.8 \pm 1} & \num[separate-uncertainty = true]{29.0 \pm 1} &\\
\num{6} & \num[separate-uncertainty = true]{23.2 \pm 1} & \num[separate-uncertainty = true]{23.0 \pm 1} & \num[separate-uncertainty = true]{34.7 \pm 1} & \num[separate-uncertainty = true]{34.9 \pm 1} &\\
\bottomrule \rowcolor{white}
\end{tabularx}
\end{table}
\end{document}
提前致谢!
答案1
第二行\multirowcell
被行颜色覆盖。\multirow
与表格颜色一起使用时,将\multirow
条目放在最后一行,并使用否定nrows
参数,如下所示:
\toprule \rowcolor{white}
& \multicolumn{4}{c}{Abstände vom Hauptmaximum [\si{mm}]} &\\ \rowcolor{white}
\multirowcell{-2}[0.5ex]{Ordnung des \\ Nebenmaximums} & Gitter A & Gitter B & Gitter C & Gitter D &\\[6pt]
\midrule
答案2
只需稍微重新格式化一下。我太慢了……
% arara: pdflatex
\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{caption}
\usepackage{siunitx}
\sisetup{separate-uncertainty=true}
\usepackage[table]{xcolor}
\usepackage{multirow}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\caption{Abstände der Nebenmaxima vom Hauptmaxima in den Beugungsbildern der Gitter A bis D}
\label{tab:abstaende}
\rowcolors{2}{gray!10}{white}
\begin{tabular}{%
S[table-format={1.0}]
S[table-format={2.1}, table-figures-uncertainty=1]
S[table-format={2.1}, table-figures-uncertainty=1]
S[table-format={2.1}, table-figures-uncertainty=1]
S[table-format={2.1}, table-figures-uncertainty=1]
}
\toprule
& \multicolumn{4}{c}{Abstände vom Hauptmaximum in \si{\milli\metre}} \\
\multirow{-2}{*}{\begin{tabular}{@{}l@{}}Ordnung des\\Nebenmaximums\end{tabular}} & {Gitter A} & {Gitter B} & {Gitter C} & {Gitter D} \\
\midrule
1 & 3.8 \pm 1 & 3.9 \pm 1 & 5.6 \pm 1 & 5.8 \pm 1 \\
2 & 7.8 \pm 1 & 7.7 \pm 1 & 11.6 \pm 1 & 11.8 \pm 1 \\
3 & 11.4 \pm 1 & 11.6 \pm 1 & 17.3 \pm 1 & 17.5 \pm 1 \\
4 & 15.4 \pm 1 & 15.4 \pm 1 & 23.3 \pm 1 & 23.5 \pm 1 \\
5 & 19.1 \pm 1 & 19.3 \pm 1 & 28.8 \pm 1 & 29.0 \pm 1 \\
6 & 23.2 \pm 1 & 23.0 \pm 1 & 34.7 \pm 1 & 34.9 \pm 1 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案3
只需将 放在\multirow
最后一行,行数为负数。我使用S
中的列类型改进了您的表格siunitx
,并简化了其编码。不需要 tabularx,因为您不使用列类型。我用中的X
简单 替换了它,因此标题具有表格的宽度。最后一点:由于这些规则(和)周围的填充, 中的规则在彩色单元格的顶部和底部留下了一条细白条。有 的解决方法,它也有可变宽度规则而没有填充,但我作弊了,在必要时删除了此填充。tabular
threeparttable
booktabs
\aboverulesep
\belowrulesep
makecell
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{float}
\usepackage{caption}
\usepackage{siunitx}
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{makecell, booktabs, threeparttable}
\usepackage[table]{xcolor}
\begin{document}
\begin{table}[H]
\centering
\sisetup{table-format=2.1 (2), table-number-alignment=center, separate-uncertainty = true, table-figures-uncertainty=1, %
table-align-uncertainty}
\begin{threeparttable}
\captionabove{Abstände der Nebenmaxima vom Hauptmaxima in den Beugungsbildern der Gitter A bis D}
\label{tab:abstaende}
\vspace{-10px}
\rowcolors{1}{white}{gray!10}
\begin{tabular}{c*{4}{S} m{0px}}%
\toprule
& \multicolumn{4}{c}{Abstände vom Hauptmaximum [\si{mm}]} &\\
\addlinespace
\cellcolor{white} \multirowcell{-2}{Ordnung des \\ Nebenmaximums} & {Gitter A} & {Gitter B} & {Gitter C} & {Gitter D} &\\[6pt]
\noalign{\vspace{-\aboverulesep}}\midrule
\num{1} & 3.8 (10) & 3.9 (10) & 5.6 (10) & 5.8 (10) &\\
\num{2} & 7.8 (10) & 7.7 (10) & 11.6 (10) & 11.8 (10) &\\
\num{3} & 11.4 (10) & 11.6 (10) & 17.3 (10) & 17.5 (10) &\\
\num{4} & 15.4 (10) & 15.4 (10) & 23.3 (10) & 23.5 (10) &\\
\num{5} & 19.1 (10) & 19.3 (10) & 28.8 (10) & 29.0 (10) &\\
\num{6} & 23.2 (10) & 23.0 (10) & 34.7 (10) & 34.9 (10) &\\[-\aboverulesep]
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}
\end{document}
答案4
我想你想获得这样的东西:
编辑: 的组合皮特·范奥斯特鲁姆,拉里法里我的第一个版本的答案(在答案的底部)为上面的表格图片提供了更简洁的代码:
\documentclass[12pt,a4paper]{scrartcl}
\usepackage{caption}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\usepackage{booktabs, multirow, tabularx}
\belowrulesep=0pt
\aboverulesep=0pt
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcommand\mcx[1]{\multicolumn{1}{C}{#1}}% new
\begin{document}
\begin{table}
\renewcommand\arraystretch{1.2}
\centering
\captionabove{Abstände der Nebenmaxima vom Hauptmaxima in den Beugungsbildern der Gitter A bis D}
\label{tab:abstaende}
\vspace{-10px}
\rowcolors{2}{white}{gray!10}
\begin{tabularx}{\linewidth}{ C
*{4}{S[table-format=2.1 (2),% from LaRiFaRi
separate-uncertainty = true,
table-figures-uncertainty=1]}}
\toprule
\rowcolor{white} % next dour lines from Piet van Oostrum
& \multicolumn{4}{c}{Abstände vom Hauptmaximum [\si{mm}]} \\
\rowcolor{white}
\multirow{-2}{=}{Ordnung des Nebenmaximums}
& \mcx{Gitter A} & \mcx{Gitter B} & \mcx{Gitter C} & \mcx{Gitter D} \\
\midrule % table content from LaRiFaRi
1 & 3.8 \pm 1 & 3.9 \pm 1 & 5.6 \pm 1 & 5.8 \pm 1 \\
2 & 7.8 \pm 1 & 7.7 \pm 1 & 11.6 \pm 1 & 11.8 \pm 1 \\
3 & 11.4 \pm 1 & 11.6 \pm 1 & 17.3 \pm 1 & 17.5 \pm 1 \\
4 & 15.4 \pm 1 & 15.4 \pm 1 & 23.3 \pm 1 & 23.5 \pm 1 \\
5 & 19.1 \pm 1 & 19.3 \pm 1 & 28.8 \pm 1 & 29.0 \pm 1 \\
6 & 23.2 \pm 1 & 23.0 \pm 1 & 34.7 \pm 1 & 34.9 \pm 1 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
与第一版答案相比,\num
表中的用语被替换为S
被建议的列类型拉里法里,行颜色按建议使用皮特·范奥斯特鲁姆,为表格列的宽度相等提供新命令\mcx
。
第一个版本:
至少使用tabularx
一列必须是X
类型。为了居中,我定义了新的列类型C
(参见下面的 MWE)。第一列的使用num{...}
不是必需的,对于其他列,设置在加载sinunitx
包时定义
而且multirow
和rowcolors
不能很好地协同工作。所以我将rowcolor
命令添加到每个彩色行。arraystretch
增加了,并且为了使表格看起来更好,将上下垂直空间规则booktabs
设置为零。
最后一栏目的目的不明确。我将其删除,因为是多余的。
\documentclass[12pt,a4paper]{scrartcl}
%\usepackage{float}
\usepackage{caption}
\usepackage[separate-uncertainty = true]{siunitx}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{booktabs, multirow}
\belowrulesep=0pt
\aboverulesep=0pt
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}%[H]
\renewcommand\arraystretch{1.2}
\centering
\captionabove{Abstände der Nebenmaxima vom Hauptmaxima in den Beugungsbildern der Gitter A bis D}
\label{tab:abstaende}
\vspace{-10px}
\begin{tabularx}{\linewidth}{ C C C C C}
\toprule
% \rowcolor{white}
\multirow{2}{=}{Ordnung des \\ Nebenmaximums}
& \multicolumn{4}{c}{Abstände vom Hauptmaximum [\si{mm}]} \\
& Gitter A & Gitter B & Gitter C & Gitter D \\
\midrule
\rowcolor{gray!10}
1 & \num{3.8 \pm 1}
& \num{3.9 \pm 1}
& \num{5.6 \pm 1}
& \num{5.8 \pm 1} \\
2 & \num{7.8 \pm 1}
& \num{7.7 \pm 1}
& \num{11.6 \pm 1}
& \num{11.8 \pm 1} \\
\rowcolor{gray!10}
3 & \num{11.4 \pm 1}
& \num{11.6 \pm 1}
& \num{17.3 \pm 1}
& \num{17.5 \pm 1} \\
4 & \num{15.4 \pm 1}
& \num{15.4 \pm 1}
& \num{23.3 \pm 1}
& \num{23.5 \pm 1} \\
\rowcolor{gray!10}
5 & \num{19.1 \pm 1}
& \num{19.3 \pm 1}
& \num{28.8 \pm 1}
& \num{29.0 \pm 1} \\
6 & \num{23.2 \pm 1}
& \num{23.0 \pm 1}
& \num{34.7 \pm 1}
& \num{34.9 \pm 1} \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}