我想创建一个三列的表格。第一列有几行,第二列和第三列各分为两列。我不知道哪里出了问题。
\document class{article}
\newcommand{\splitcell}\[1\]{%
\begin{tabular}{@{}c@{}}\strut#1\strut\end{tabular}%
}
\begin{document}
\begin{table}\[htp\]
\centering
\caption{A caption}
\begin{tabular}{
S\[table-format=2.0\] % Column 1
S\[table-format=1.0\] % Column 2
S\[table-format=1.6\] % Column 3
S\[table-format=1.4\] % Column 4
S\[table-format=1.3\] % Column 5
}
\toprule
{Metal type/ Metal thickness $t$(\si{\nano\meter})} & \multicolumn{2}{c}{Akbari} & \multicolumn{2}{c}{Naema} \\
\cmidrule{2-3} \cmidrule{4-5}
& & {$Re(n_{eff})$} {\splitcell{\\$\alpha$\\(\si{dB/\mu m})}} & {$Re(n_{eff})$} {\splitcell{\\$\alpha$\\(\si{dB/\mu m})}}\\
\midrule
Al/100nm & 3.619 & 1.041 & 3.607517& 1.04979 \\
\midrule
Au/100nm & 3.772 & 1.228 &3.762532 & 1.29734 \\
\midrule
Al/20nm & 3.72 & 2 & 3.65266 & 2.00962\\
\midrule
Au/20nm & 4.2 & 5 & 4.001033 & 3.25059\\
\midrule
Al/10nm & 5.12 & 23.5 & 3.865893 & 5.12678\\
\midrule
Au/10nm & NA & 33.5 & 4.809568 & 9.15694 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
该表格是这里
答案1
另一种解决方案是使用xcolor
、colortbl
和:hhline
makecell
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[TS1,T1]{fontenc}
\usepackage{lmodern}
\usepackage[table, x11names, svgnames]{xcolor}
\usepackage{colortbl}
\colorlet{myblue}{SteelBlue3}
\usepackage{amsmath}
\DeclareMathOperator\re{\textsf{Re}}
\usepackage{array, hhline, caption}
\newcommand\myhline{\hhline{>{\arrayrulecolor{myblue}}->{\arrayrulecolor{Cornsilk1}}|----}}
\usepackage{siunitx}
\usepackage{makecell}
\renewcommand\cellalign{lc}
\renewcommand\theadfont{\cellcolor{myblue}\color{Cornsilk1}\bfseries\boldmath}
\usepackage{cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\def\nm{\si{\,\nm}}
\begin{document}
\rowcolors*{3}{SlateGray3!60}{Gainsboro!50}%[\cline{2-5}]
\begin{table}[!htp]
\centering
\sisetup{table-number-alignment=center,detect-all}
\caption{A caption}
\sffamily\arrayrulecolor{Cornsilk1}\setlength\arrayrulewidth{1.5pt}
\begin{tabular}%
{ >{\cellcolor{myblue}\color{Cornsilk1}\bfseries\boldmath}Cl |% Column 1
S[table-format=1.2] |% Column 2
S[table-format=2.3] |% Column 3
S[table-format=1.6] |% Column 4
S[table-format=1.5] % Column 5
}
\rowcolor{myblue}& \multicolumn{2}{>{\bfseries\color{Cornsilk1}}c}{Akbari} & \multicolumn{2}{>{\bfseries\color{Cornsilk1}}c}{Naema} \\
\myhline%
\rowcolor{myblue}\makecell{Metal type/Metal \\ thickness\enspace$t$(\si{\nano\meter})}& {\thead{$\re(n_{\mathbf{eff}})$}} & {\thead{$\alpha$\\(\si{dB/\micro\meter})}} & {\thead{$\re(n_{\mathrm{eff}})$}} & {\thead{$\alpha$\\(\si{dB/\micro\meter})}}\\
\myhline%
Al/100\nm & 3.619 & 1.041 & 3.607517& 1.04979 \\
Au/100\nm & 3.772 & 1.228 &3.762532 & 1.29734 \\
Al/20\nm & 3.72 & 2 & 3.65266 & 2.00962\\
Au/20\nm & 4.2 & 5 & 4.001033 & 3.25059\\
Al/10\nm & 5.12 & 23.5 & 3.865893 & 5.12678\\
Au/10\nm & {NA} & 33.5 & 4.809568 & 9.15694
\end{tabular}
\end{table}
\end{document}
答案2
您的代码存在很多问题,其中任何一个问题都会导致 MWE 无法编译。据我所知,这些问题都与您在帖子标题中提到的事实无关,即表格使用 将两对列分组\multicolumn
。
第一条指令应该是
\documentclass
,而不是\document class
siunitx
需要booktabs
加载的软件包当需要方括号时,请输入
[
and]
,不是\[
和\]
。例如,不要写\begin{table}\[htp\]
; 而要写\begin{table}[htp]
。列的规范也是如此S
。在
\si
表达式中,使用\micro\meter
,而不是\mu m
不要忘记
&
在某些标题单元格之间插入对齐分隔线。(tabular
环境有五列,而不是三列。)
虽然不是完全错误,但仍然很重要:
第一列可以使用类型
c
;不需要更花哨的东西设置 的值时
table-format
,尽量使数字和小数位数与数据输入的实际属性相匹配我建议您将
[t]
位置说明符添加到宏tabular
包含的环境中splitcell
\\
两个调用中的第一个换行指令\splitcell
似乎是不必要的。NA
当您在列类型中偶尔输入非数字(例如)时S
,请务必将其括在花括号中使其居中。例如,写成{NA}
,而不仅仅是NA
。
\documentclass{article}
\usepackage{siunitx,booktabs}
\newcommand{\splitcell}[1]{%
\begin{tabular}[t]{@{}c@{}}\strut#1\strut\end{tabular}}
\begin{document}
\begin{table}[htp]
\centering
\caption{A table}
\medskip
\begin{tabular}{
c % Column 1
S[table-format=1.3] % Column 2
S[table-format=2.3] % Column 3
S[table-format=1.6] % Column 4
S[table-format=1.5] % Column 5
}
\toprule
Metal type\slash Metal thickness $t$ (\si{\nano\meter})
& \multicolumn{2}{c}{Akbari}
& \multicolumn{2}{c}{Naema} \\
\cmidrule(lr){2-3} \cmidrule(l){4-5}
&
{$Re(n_{\textit{eff}})$} &
{\splitcell{$\alpha$\\(\si{dB/\micro\meter})}} &
{$Re(n_{\textit{eff}})$} &
{\splitcell{$\alpha$\\(\si{dB/\micro\meter})}}\\
\midrule
Al/100nm & 3.619 & 1.041 & 3.607517& 1.04979 \\
\midrule
Au/100nm & 3.772 & 1.228 &3.762532 & 1.29734 \\
\midrule
Al/20nm & 3.72 & 2 & 3.65266 & 2.00962\\
\midrule
Au/20nm & 4.2 & 5 & 4.001033 & 3.25059\\
\midrule
Al/10nm & 5.12 & 23.5 & 3.865893 & 5.12678\\
\midrule
Au/10nm & {NA} & 33.5 & 4.809568 & 9.15694 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}