我使用longtable
一些很长的表格来显示评估结果。它们看起来还不错,但我有两个问题:
- 出于某种我不明白的原因,表格似乎太宽了。当我把所有
p
值加起来时,我得到了0.98/textwidth
。那么为什么这个应该更宽呢/textwidth
? - LaTeX 只能在右边距上书写。有什么方法可以让它同时在两边距上书写以使表格居中吗?我尝试了这里,但它什么也不做。
以下是 MWE:
\documentclass{scrartcl}
\usepackage{longtable}
\begin{document}
\begin{longtable}[c]{|p{0.26\textwidth}|p{0.12\textwidth}|p{0.12\textwidth}|p{0.12\textwidth}|p{0.12\textwidth}|p{0.12\textwidth}|p{0.12\textwidth}|}
\hline
\textbf{settings} & \textbf{micro-average precision} & \textbf{micro-average recall} & \textbf{micro-average f-score} & \textbf{macro-average precision} & \textbf{macro-average recall} & \textbf{macro-average f-score} \\ \hline
\end{longtable}
\end{document}
答案1
如果不是绝对必要,我不建议超出边距。这看起来不一致,因此印刷起来很难看(我有点夸张)。只需将每列的宽度缩小两边两个分隔符的宽度,就可以了。我扩大了宽度,以便您可以使用最大宽度。如果你缩小一点,它将[c]
为你完成居中。
% arara: pdflatex
\documentclass{scrartcl}
\usepackage{longtable}
\usepackage{calc}
\usepackage{booktabs}
\usepackage{showframe} % just for demo
\begin{document}
\begin{longtable}[c]{p{0.28\textwidth-2\tabcolsep}*{6}{p{0.12\textwidth-2\tabcolsep}}}
\toprule
\textbf{settings} & \textbf{micro-average precision} & \textbf{micro-average recall} & \textbf{micro-average f-score} & \textbf{macro-average precision} & \textbf{macro-average recall} & \textbf{macro-average f-score} \\
\bottomrule
\end{longtable}
\end{document}
答案2
这是个人品味问题,但我喜欢ltxtable (Longtable 与 tabularx 合并)。这种用法可能看起来很别扭,但是当你想将 的宽度设置longtable
为固定值时,它就能很好地完成工作,就像 一样\textwidth
。
\documentclass{scrartcl}
\usepackage{array,longtable,ltxtable,filecontents}
\usepackage[showframe]{geometry}
\begin{document}
\begin{filecontents}{long.tex}
\begin{longtable}[c]{|p{0.26\textwidth}|*{6}{X|}}
\hline
\textbf{settings}
& \textbf{micro-average precision}
& \textbf{micro-average recall} & \textbf{micro-average f-score}
& \textbf{macro-average precision} & \textbf{macro-average recall}
& \textbf{macro-average f-score} \\ \hline
\end{longtable}
\end{filecontents}
\LTXtable{1.0\linewidth}{long.tex}
\end{document}