![具有多个维度的表](https://linux22.com/image/263060/%E5%85%B7%E6%9C%89%E5%A4%9A%E4%B8%AA%E7%BB%B4%E5%BA%A6%E7%9A%84%E8%A1%A8.png)
我有几个维度要放在 LaTeX 的表格中,这些实际上是实验的结果。我不确定在 LaTeX 中最好的方法是什么。以下是其中一种可能性的快照:
获取这种表格的语法是什么,或者是否有更好的方法来呈现多维表格。
答案1
我认为语法可能很简单,但列的布局应该高度取决于您想要解释/展示/讲述的内容。只需直接将表格放入 LaTeX 中,使用booktabs
样式floatrow
将表格居中,然后使用代码将标题放在上方即可
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{booktabs,floatrow}
%center tables
\floatsetup[table]{objectset=centering,capposition=top}
\begin{document}
For a straight forward thingy see Table~\ref{Tab1}.
\begin{table}
\begin{tabular}{lllll}\toprule
&&\textbf{Backward} & \textbf{Forward} & \textbf{Bidirectional}\\\midrule
atis & Training & 345 & 235 & 345\\
& Test & 356 & 252 & 345\\
brown & Training & 465 & 345 & 346\\
& Test & 456 & 342 & 253\\
wsj & Training & 345 & 235 & 254\\
& Test & 4336 & 634 & 3434
\\\bottomrule
\end{tabular}
\caption{The Results}\label{Tab1}
\end{table}
\end{document}
表格结果如下
但在我看来,你想要比较某些方法的训练和测试,每个方法都应用于一个“感兴趣的对象”(artis、brown 和 wsj)——所以也许你想为每个对象花一列,并通过以下 MWE 中的“子列”之类的东西来获得更好的方法来比较这两个对象
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{booktabs,floatrow}
%center tables
\floatsetup[table]{objectset=centering,capposition=top}
\begin{document}
But maybe also the Table~\ref{Tab2} might be nice?
\begin{table}
\begin{tabular}{lrrrrrr}\toprule
&\multicolumn{2}{c}{\textbf{Backward}}&\multicolumn{2}{c}{\textbf{Forward}}&\multicolumn{2}{c}{\textbf{Bidirectional}}
\\\cmidrule(r){2-3}\cmidrule(r){4-5}\cmidrule(r){6-7}
&Training&Test&Training&Test&Training&Test\\\midrule
atis & 345 & 356
& 235 & 252
& 345 & 345\\
brown & 465& 456
& 345 & 342
& 346 & 253\\
wsj & 345 & 4336
& 235 & 634
& 254 & 3434
\\\bottomrule
\end{tabular}
\caption{The Results}\label{Tab2}
\end{table}
\end{document}
我\cmidrow
另外还对每个训练测试对进行了分组,并为\multicolumn
这两列赋予了共同的标题。结果是
但这当然取决于您的数据,我在这里假设,训练和测试属于同一个对象(例如atis),因此将它们放在一行中似乎是个好主意。
编辑:对于第一个想法,我只是将其用作l
左侧的列布局,第二个是我更喜欢的(r
右侧),但当然 egreg 的答案使用siunitx
也相当不错。
答案2
您应该加载booktabs
包和siunitx
;前者为表格提供了很好的规则,后者对于正确排版数量及其计量单位和数字表格数据至关重要。
\documentclass{article}
\usepackage{booktabs} % for better looking tables
\usepackage{siunitx} % for units of measure and data in tables
\begin{document}
\begin{tabular}{
l % left aligned column
l % left aligned column
*{3}{S[table-format=4.0]} % three columns with numeric data
}
\toprule
&&\textbf{Backward} & \textbf{Forward} & \textbf{Bidirectional}\\
\midrule
atis & Training & 345 & 235 & 345\\
& Test & 356 & 252 & 345\\
brown & Training & 465 & 345 & 346\\
& Test & 456 & 342 & 253\\
wsj & Training & 345 & 235 & 254\\
& Test & 4336 & 634 & 3434\\
\bottomrule
\end{tabular}
\end{document}
我使用4.0
这种格式是因为数字的整数部分有四位数字,没有小数部分。当然,您可以根据需要指定任意多的列,这种*{3}{...}
快捷方式可以避免多次指定。
数字列的标题自动居中。
您可能会将tabular
环境插入浮点数中table
;网站上有很多示例。