如何用多行封装制作三行

如何用多行封装制作三行

在此处输入图片描述我有一段代码可以打印一个包含 2 行的表格。我想保留其格式并将 2 行更改为 3 行。

\documentclass[conference]{IEEEtran}

\usepackage{pgfplots}
\usepackage{siunitx}
\usepackage{multirow}
\begin{document}

\begin{table}[h]
\caption{Family data set results}
\label{tbl::Fam}
\centering
\begin{tabular}{|l|l|c|c|c!{\vrule width 2pt}l|l|c|c|c|}
%\noalign{\hrule height 2pt}
\hline
\textbf{Column}&\textbf{Algorithm}&\textbf{min}&\textbf{max}&\textbf{std}l&\textbf{Column}&\textbf{Algorithm}&\textbf{min}&\textbf{max}&\textbf{std}\\\hline
\multirow{2}{*}{age}&Original&9&2.8&100&\multirow{2}{*}{employer\_type}&Original&13&2&10\\ \cline{2-5} \cline{7-10}&PrivBayes&2&95&96&&PrivBayes&2&100&100\\\hline
\multirow{2}{*}{education\_level}&Original&7&2&98&\multirow{2}{*}{marital\_status}&Original&10&2&100\\ \cline{2-5} \cline{7-10}&PrivBayes&2&6&96&&PrivBayes&2&6&100\\\hline
\hline %\noalign{\hrule height 2pt}
\end{tabular}
\end{table}

\end{document}

在这张图片中,我有 2 个算法 {Original、PrivBayes}。我想将 2 个算法更改为 3 个算法,同时保留表格格式。
您能帮我做一下吗?

答案1

您的表格似乎比文本块宽得多。最简单的补救措施是将表格从 10 列结构转换为更易于管理(并且更适合读者阅读)的 5 列结构。

在您这样做的同时,您可能希望让表格看起来更“开放”,以吸引读者真正查看甚至吸收表格中提供的信息。我建议您 (a) 删除所有垂直线,(b) 使用较少但间距适当的水平线,(c) 不使用任何大胆的字体和(d)将三个数字列中的数字与其(隐式)小数标记对齐。

哦,我不会\multirow对第一列中的条目使用任何指令;它们根本就没有必要。

在此处输入图片描述

\documentclass[conference]{IEEEtran}

\usepackage{booktabs,siunitx}
\begin{document}

\begin{table}[h]
\caption{Family dataset results}
\label{tbl::Fam}
\centering
\begin{tabular}{@{} ll *{3}{S[table-format=3.0]} @{}}
\toprule
Column&Algorithm&{min}&{max}&{std.dev.}\\
\midrule
age&Original &9&28&100\\
   &PrivBayes&2&95&96\\
   &ThirdAlg &10&90&50\\
\addlinespace
education\_level&Original&7&28&98\\
                &PrivBayes&2&6&96\\
                &ThirdAlg &10&90&50\\
\addlinespace
employer\_type&Original&13&2&10\\
              &PrivBayes&2&100&100\\
              &ThirdAlg &10&90&50\\
\addlinespace
marital\_status&Original&10&20&100\\
               &PrivBayes&2&6&100\\
               &ThirdAlg &10&90&50\\
\bottomrule
\end{tabular}
\end{table}
\end{document}

答案2

以下是具体做法:

\documentclass{article}

\usepackage{pgfplots}
\usepackage{siunitx}
\usepackage{multirow}
\begin{document}

\begin{table}[h]
\caption{Family data set results}
\label{tbl::Fam}
\centering
\begin{tabular}{|l|l|c|c|c!{\vrule width 2pt}l|l|c|c|c|}
%\noalign{\hrule height 2pt}
\hline
\textbf{Column}&\textbf{Algorithm}&\textbf{min}&\textbf{max}&\textbf{std}l&\textbf{Column}&\textbf{Algorithm}&\textbf{min}&\textbf{max}&\textbf{std}\\\hline
\multirow{3}{*}{age}&Original&9&2.8&100&\multirow{3}{*}{employer\_type}&Original&13&2&10\\ \cline{2-5} \cline{7-10}
&PrivBayes&2&95&96&&PrivBayes&2&100&100\\\cline{2-5} \cline{7-10}
&ThirdAlg&100&100&100&&ThirdAlg&100&100&100\\\hline
\multirow{3}{*}{education\_level}&Original&7&2&98&\multirow{3}{*}{marital\_status}&Original&10&2&100\\ \cline{2-5} \cline{7-10}
&PrivBayes&2&6&96&&PrivBayes&2&6&100\\\cline{2-5} \cline{7-10}
&ThirdAlg&100&100&100&&ThirdAlg&100&100&100\\\hline
%\hline %\noalign{\hrule height 2pt}
\end{tabular}
\end{table}

\end{document}

将 100 更改为您的值...此外,如果您确实需要最后一个 \hline,请从 \end{tabular} 之前的行中删除 %。

结果: 在此处输入图片描述

在横向或表格宽度合适的情况下,标题的居中也是可以的。

编辑:也更改了第二部分的多行,因为我之前忘记了它们,并且因此正确的多行单元格没有居中。

相关内容