你好,我正在写论文,想找到一种最好的方式呈现表格数据。我没有太多经验LaTex
,因此,我想寻找一些关于如何做到这一点的想法和技巧。
公平地说,我既没有处理过非常复杂的表格,我的工作中也没有很多这样的表格;然而,有时它们会出现一定程度的嵌套,而依靠它们来了解这\diagbox
两个索引所代表的含义通常会有所帮助。
和代码
\documentclass[12pt]{report}
\usepackage[letterpaper,margin=1in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{subcaption}
\usepackage{caption}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{float}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{diagbox}
\begin{document}
\begin{longtable}{lcccccccccc}
\caption[\textbf{Some caption}]{\textbf{Some caption.}} \\
\toprule
\multicolumn{1}{l}{\diagbox{stats}{IDs}} &
\multicolumn{2}{c}{HG002} &
\multicolumn{2}{c}{HG00514} &
\multicolumn{2}{c}{HG00733} &
\multicolumn{2}{c}{HG03492} &
\multicolumn{2}{c}{NA19240} \\
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
\cmidrule(lr){6-7}
\cmidrule(lr){8-9}
\cmidrule(lr){10-11}
&
\multicolumn{1}{c}{hap1} &
\multicolumn{1}{c}{hap2} &
\multicolumn{1}{c}{hap1} &
\multicolumn{1}{c}{hap2} &
\multicolumn{1}{c}{hap1} &
\multicolumn{1}{c}{hap2} &
\multicolumn{1}{c}{hap1} &
\multicolumn{1}{c}{hap2} &
\multicolumn{1}{c}{hap1} &
\multicolumn{1}{c}{hap2} \\
\midrule
N50 & 45.94 & 45.02 & 20.35 & 20.12 & 45.73 & 43.81 & 17.85 & 20.16 & 12.15 & 13.00 \\
L50 & 20 & 18 & 41 & 44 & 23 & 23 & 50 & 45 & 77 & 64 \\
NG50\makebox[0pt][l]{$^{\ast}$} & 50.15 & 44.90 & 21.58 & 20.12 & 47.79 & 45.83 & 17.89 & 19.97 & 12.98 & 13.03 \\
\midrule[\heavyrulewidth]
\multicolumn{11}{l}{\footnotesize$^*$ NG50 metric is calculated considering a genome size of 3Gbp} \\
\bottomrule
\label{table:assemblies}
\end{longtable}
\end{document}
现在,我了解到的情况是:
- 简单就是最好,避免垂直线
- 使用适当的函数来绘制表格项并
- 尽可能坚持使用更传统的方法来绘制表格
基于此,我对输出非常满意,如果不是因为\diagbox
在不连接用 绘制的水平线时看起来不那么“好” ,并且可能样本 ID之间和下方的\cmidrule
间隙非常大,我猜由于 ,这在某种程度上是不可避免的。\toprule
\cmidrule
\diagbox
如果有人有其他方式来呈现这些数据和其他类似的数据,任何帮助都将不胜感激。当然,我有点喜欢能够通过页面拆分表格的选项例如 \longtable
类似地,我喜欢在第一个单元格中使用的想法,\diagbox
只要它看起来不错 — 我也对这方面的其他选择感兴趣。最后但并非最不重要的是,如果有任何形式的虚线积分就好了,因为我注意到\longtable
它对此类编辑的弹性不大。
答案1
我建议您不要使用\diagbox
;而是只需将标签“ID”放在 10 个数据列上方的一行中。
\documentclass[12pt]{report}
\usepackage[letterpaper,margin=1in]{geometry}
%% \usepackage[utf8]{inputenc} % that's the default nowadays
\usepackage[T1]{fontenc}
\usepackage{longtable,booktabs,siunitx}
\usepackage{caption}
\begin{document}
\begingroup
\setlength{\tabcolsep}{0pt}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\captionsetup{textfont=bf, skip=0.333\baselineskip}
\begin{longtable}{@{\extracolsep{\fill}} l *{10}{S[table-format=2.2]} }
\caption[Some caption]{Some caption.}
\label{table:assemblies} \\
\toprule
Stats & \multicolumn{10}{c}{IDs} \\
\cmidrule{2-11}
& \multicolumn{2}{c}{HG002}
& \multicolumn{2}{c}{HG00514}
& \multicolumn{2}{c}{HG00733}
& \multicolumn{2}{c}{HG03492}
& \multicolumn{2}{c}{NA19240} \\
\cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-7} \cmidrule{8-9} \cmidrule{10-11}
& {hap1} & {hap2} & {hap1} & {hap2} & {hap1} & {hap2} & {hap1} & {hap2} & {hap1} & {hap2} \\
\midrule
N50 & 45.94 & 45.02 & 20.35 & 20.12 & 45.73 & 43.81 & 17.85 & 20.16 & 12.15 & 13.00 \\
L50 & 20 & 18 & 41 & 44 & 23 & 23 & 50 & 45 & 77 & 64 \\
NG50$^*$
& 50.15 & 44.90 & 21.58 & 20.12 & 47.79 & 45.83 & 17.89 & 19.97 & 12.98 & 13.03 \\
\midrule[\heavyrulewidth]
\multicolumn{11}{l}{\footnotesize$^*$ NG50 metric is calculated considering a genome size of 3Gbp.} \\
\end{longtable}
\endgroup
\end{document}