
我對 LaTex 的使用非常陌生,並且需要一些幫助來使用booktabs
格式製作此表格。我使用R
並且最好使用xtables
package.json 來產生它。但是,我無法處理跨列的問題。
這就是為什麼我嘗試手動插入\multicolumn
命令。
這是代碼:
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{@{\extracolsep{4pt}}llccccccc}
\toprule
{} & {} & {Observations} & \multicolumn{3}{c}{Median} & \multicolumn{3}{c}{SD}\\
\cline{3-3}
\cline{4-6}
\cline{7-9}
Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\
\hline
\multirow{2}{*}{2012}
& Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\
& Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\
\multirow{2}{*}{2016}
& Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\
& Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\
\hline
\end{tabular}
\caption{Mean by Year and Group}
\end{table}
\end{document}
但是,我認為這個表的格式不太好,不符合booktabs
標準,是嗎?如何手動製作具有相同設計但格式更好的表格?
謝謝
答案1
表格的主要問題是您沒有使用規則,而是使用標準表格規則(和)和規則( )booktabs
的混合。\hline
\cline
booktabs
\toprule
將這些規則替換為booktabs
版本(\midrule
、 \cmidrule
和\bottomrule
)可為您提供所需的良好格式。
我已經把multirow
東西拿走了。這不會為你的桌子增加任何東西;只需將年份放在該年份的行對的第一行就非常清楚了。一般來說,我會multirow
完全避免使用。它有它的用途,但通常用於諸如帶有盒裝單元格的表單之類的東西。對於標準研究表來說,它幾乎永遠不合適。
PS希望數據是編的!你的N真小…:)
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{@{\extracolsep{4pt}}llccccccc}
\toprule
{} & {} & {Observations} & \multicolumn{3}{c}{Median} & \multicolumn{3}{c}{SD}\\
\cmidrule{3-3}
\cmidrule{4-6}
\cmidrule{7-9}
Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\
\midrule
2012 & Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\
& Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\
2016 & Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\
& Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\
\bottomrule
\end{tabular}
\caption{Mean by Year and Group}
\end{table}
\end{document}
關於數值資料排版的一些評論
當您排版數位資料時,使用c
列類型實際上並不是最好的計劃。通常我們希望數字資料以某種方式對齊,這樣如果數字大小不同,它們也能正確對齊。
對於小數數據,小數點上對齊是正常的。對於非十進制數據,簡單的右對齊就可以了。
若要與小數點對齊,可以使用siunitx
套件或dcolumn
套件。siunitx
具有許多自動格式化數字資料的奇特功能,包括大數字的數字分組。它也提供了正確排版 SI 單位的方法。該dcolumn
軟體包專為小數點對齊而設計。這是一個向您展示差異的範例。
\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{siunitx}
% Shorthand for multicolumn
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\begin{tabular}{ccrD{.}{.}{2.3}S}
\toprule
Center & Center & \mc{right} & \mc{D-column} & \mc{S-column} \\
\midrule
1 & 32.6 & 1 & 32.6 & 32.6 \\
10 & 335.434 & 10 & 335.434 & 335.434 \\
100 & 0.99 & 100 & 0.99 & 0.99 \\
5 & 1 & 5 & 1 & 1 \\
\bottomrule
\end{tabular}
\end{document}
答案2
首先,您的所有規則都應該使用 完成booktabs
,因為它會為您的表格規則添加一些填充(基本乳膠中的表格行通常太緊)。
其次,表格標題應該是多於表格,因為表格可能遍佈頁面,讀者不必翻頁就知道表格的內容。為此,標題很有用,當標題位於表格上方時,基本乳膠會忘記交換和package
的值。\abovecaptionskip
\belowdisplayskip
第三,我會Observations
用縮寫代替,因為我發現一列單位數字和這麼寬的列頭很難看。
第四,我會為表格最後的兩組 3 列設定較小的列間空間。另外,(lr)
`\cmidrules 的參數在這裡很有用,可以改善表格的整體外觀。
\documentclass{article}
\usepackage{array, multirow, caption, booktabs}
\begin{document}
\begin{table}[ht]
\centering\setlength\extrarowheight{2pt}
\caption{Mean by Year and Group}
\begin{tabular}{@{\extracolsep{4pt}}llc*{2}{c@{\enspace}c@{\enspace}c}}
\toprule
{} & {} & {Obsv\textsuperscript{ns}} & \multicolumn{3}{c}{Median} & \multicolumn{3}{c}{SD}\\
\cmidrule(lr){3-3}
\cmidrule{4-6}
\cmidrule(lr){7-9}
Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\
\midrule
\multirow{2}{*}{2012}
& Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\
& Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\
\addlinespace
\multirow{2}{*}{2016}
& Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\
& Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
筆記:如果您不想縮寫`Observations,您應該考慮重新組織表格,交換行和列。