我想创建一个如下的表格:
我当前的代码如下:
\documentclass[journal]{IEEEtran}
\begin{document}
\label{tab:table_computational_time}
\noindent\begin{tabularx}{\linewidth} { |
l |
>{\raggedright\arraybackslash}X |
c |
}
\hline
\textbf{wafer flow} & \textbf{MIP II model} & \textbf{MRT sequence} \\
\hline
$[2]$ & 198 & 0.11 \\
\hline
$[3]$ & 204 & 0.11 \\
\hline
$[1,2]$ & 375 & 0.12\\
\hline
$[1,3]$ & 367 & 0.13\\
\hline
$[1,2,1]$ & 756 & 0.13\\
\hline
$[1,2,2]$ & 861 & 0.14\\
\hline
$[1,3,1]$ & 732 & 0.13\\
\hline
$[1,2,1,1]$ & 1288 & 0.13\\
\hline
$[1,3,1,1]$ & 1314 & 0.13\\
\hline
$[1,2,1,2]$ & 1538 & 0.15\\
\hline
$[1,2,2,1]$ & 1450 & 0.14\\
\hline
$[1,2,2,2]$ & 1444 & 0.14\\
\hline
$[1,3,2,1]$ & 1387 & 0.15\\
\hline
$[1,2,1,1,1]$ & 2381 & 0.13\\
\hline
\end{tabularx}
\end{document}
但是目前的结果如下。
有人可以建议如何调整代码以便:
(a)合并“晶圆流”单元格并将“计算时间(秒)”添加到表标题中?
(b)使所有数字在每个单元格内居中对齐。
谢谢。
答案1
使用包的解决方案tabularray
。我认为代码是不言自明的:
\documentclass[journal]{IEEEtran}
\usepackage{lipsum} % only for dummy text
\usepackage{tabularray}
\UseTblrLibrary{siunitx}
\begin{document}
\lipsum[1][1-3]
\begin{table}[ht]\centering
\caption{One option}
\begin{tblr}
{
colspec={cS[table-format=4] % 4 integer digits
S[table-format=1.2]}, % 1 integer and 2 decimal digits
hlines,vlines,
row{1,2}={font=\bfseries},
cell{3-Z}{1}={preto={$[},appto={]$}}, % adding '$[' at the beginning and ']$' at the end of these cells
cell{1}{2}={c=2}{}, % cell in row 1 and column 2 expands to 2 (c)olumns
cell{1}{1}={r=2}{} % cell in row 1 and column 1 expands to 2 (r)ows
}
wafer flow & {{{Computational time (seconds)}}} \\
& {{{MIP II model}}} & {{{MRT sequence}}}\\
2 & 198 & 0.11\\
3 & 204 & 0.11\\
1,2 & 375 & 0.12\\
1,3 & 367 & 0.13\\
1,2,1 & 756 & 0.13\\
1,2,2 & 861 & 0.14\\
1,3,1 & 732 & 0.13\\
1,2,1,1 & 1288 & 0.13\\
1,3,1,1 & 1314 & 0.13\\
1,2,1,2 & 1538 & 0.15\\
1,2,2,1 & 1450 & 0.14\\
1,2,2,2 & 1444 & 0.14\\
1,3,2,1 & 1387 & 0.15\\
1,2,1,1,1 & 2381 & 0.13
\end{tblr}
\end{table}
\lipsum[2]
\begin{table}[ht]\centering
\caption{Another one}
\begin{tblr}
{
colspec={cS[table-format=4]S[table-format=1.2]},
row{1,2}={font=\bfseries},
cell{3-Z}{1}={preto={$[},appto={]$}},
cell{1}{2}={c=2}{},
hline{1,Z}={0.8pt}, % first and last horizontal lines
hline{3}={0.4pt}, % third horizontal line
}
wafer flow & {{{Computational time (seconds)}}} \\
& {{{MIP II model}}} & {{{MRT sequence}}}\\
2 & 198 & 0.11\\
3 & 204 & 0.11\\
1,2 & 375 & 0.12\\
1,3 & 367 & 0.13\\
1,2,1 & 756 & 0.13\\
1,2,2 & 861 & 0.14\\
1,3,1 & 732 & 0.13\\
1,2,1,1 & 1288 & 0.13\\
1,3,1,1 & 1314 & 0.13\\
1,2,1,2 & 1538 & 0.15\\
1,2,2,1 & 1450 & 0.14\\
1,2,2,2 & 1444 & 0.14\\
1,3,2,1 & 1387 & 0.15\\
1,2,1,1,1 & 2381 & 0.13
\end{tblr}
\end{table}
\lipsum[3]
\end{document}
答案2
这是一个基本的解决方案:
(a)对于行合并,加载multirow
包并使用相应的命令。 (b)对于对齐。在序言中将 更改l
为c
,并将\raggedright
更改为。\flushright
tabularx
顺便一提,
- 为什么
tabularx
在基础功能tabular
似乎就足够的情况下还要使用? - 这样做,为了避免输入数百个,在表格序言中
$
使用array
或加载包替换:通过或array
| l |
|>{$}l<{$}|
|>{$}c<{$}|
MWE 结合了所有这些成分:
\documentclass[journal]{IEEEtran}
\usepackage{array,multirow,bigstrut}\begin{document}
% \label{tab:computational_time}
\begin{center}
\begin{tabular}{*{3}{|>{$}c<{$}}|}
% the construct *{3}{...} means repeat 3 times the format ...\hline
\multirow{2}[t 3]*{\textbf{wafer flow}}
& \multicolumn{2}{c|}{\textbf{computational time (s)}}\\
\cline{2-3}
& \textbf{MIP II model} & \textbf{MRT sequence} \\
\hline
[2] & 198 & 0.11 \\
\hline
[3] & 204 & 0.11 \\
\hline
[1,2] & 375 & 0.12\\
\hline
[1,3] & 367 & 0.13\\
\hline
[1,3,1,1] & 1314 & 0.13\\
\hline
\end{tabular}
\end{center
\end{document}
注意:此处,{center}
环境确保在当前列中居中。要获得带有标题和标签的编号表,请将其插入浮动{table}
(或全页宽度居中)中,并用中的命令{table*}
替换环境。(禁用)仅在这样的情况下才有意义{center}
\centering
table
\label
编号环境。
编辑@juan 的答案是一个不太基本但功能更强大的解决方案。我使用它并推荐它用于复杂的设计,但可能不适用于 OP 提出的相当简单的问题。
答案3
与。{NiceTabular}
nicematrix
\documentclass[journal]{IEEEtran}
\usepackage{nicematrix,siunitx}
\begin{document}
\sisetup{table-format=4.0}
\label{tab:table_computational_time}
\noindent\begin{NiceTabular}{c X[S] c}[hvlines,cell-space-limits=3pt]
\RowStyle[nb-rows=2]{\bfseries}
\Block{2-1}{wafer flow} & {\Block{1-2}{Computational time (seconds)}} \\
& {MIP II model} & MRT sequence \\
$[2]$ & 198 & 0.11 \\
$[3]$ & 204 & 0.11 \\
$[1,2]$ & 375 & 0.12\\
$[1,3]$ & 367 & 0.13\\
$[1,2,1]$ & 756 & 0.13\\
$[1,2,2]$ & 861 & 0.14\\
$[1,3,1]$ & 732 & 0.13\\
$[1,2,1,1]$ & 1288 & 0.13\\
$[1,3,1,1]$ & 1314 & 0.13\\
$[1,2,1,2]$ & 1538 & 0.15\\
$[1,2,2,1]$ & 1450 & 0.14\\
$[1,2,2,2]$ & 1444 & 0.14\\
$[1,3,2,1]$ & 1387 & 0.15\\
$[1,2,1,1,1]$ & 2381 & 0.13\\
\end{NiceTabular}
\end{document}