![如何减少表格宽度?](https://linux22.com/image/443226/%E5%A6%82%E4%BD%95%E5%87%8F%E5%B0%91%E8%A1%A8%E6%A0%BC%E5%AE%BD%E5%BA%A6%EF%BC%9F.png)
我正在尝试在我的 IEEE 论文中添加一个表格,但它的宽度太大。请帮我调整宽度以使其适合。
\documentclass[conference]{IEEEtran}
\IEEEoverridecommandlockouts
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{graphicx}
\usepackage{float}
\usepackage{tabularx}
\usepackage{textcomp}
\usepackage{xcolor}
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\begin{document}
.
.
.
.
\begin{table}[h!]
\centering
\begin{tabularx}{0.3\textwidth}{|c c c c c c|}
\hline
Feature 1 & Feature 2 & Accuracy & Precision & Recall & Specificity \\ [0.5ex]
\hline\hline
original dna size & compressed dna size & 0.999 & 0.999 & 0.999 & 0.999 \\
\hline
original dna size & compression ratio & 0.999 & 0.999 & 0.999 & 0.999 \\ [1ex]
\hline
\end{tabularx}
\caption{caption}
\label{tab:my_label}
\end{table}
.
.
.
.
\end{document}
答案1
下面对您的表进行以下更改:
使用
\linewidth
而不是0.3\textwidth
作为表格可能占用的宽度X
通过定义一个新的列类型(称为)来实际使用-type 列L
,它将是一个左对齐的X
-type 列(这样 TeX 就不会尝试将这些列的内容设置为齐平,这只会引发过满框警告,因为对于窄列来说这几乎是不可能的)对于数字数据,请使用
S
提供的 -type 列(表示数字在小数点分隔符前有 1 位数字,小数点分隔符后有 3 位数字)。siunitx
table-format=1.3
删除LaTeX内核提供的标准规则
\toprule
,改用\midrule
\bottomrule
booktabs
为了便于阅读表格,在需要多行文本的行之间放置
\addlinespace
(也由提供)。booktabs
使用 将列间距减少到 3/4
\setlength\tabcolsep{.75\tabcolsep}
。将其放在
\caption
表格上方(这就是IEEEtran
想要的,将标题的间距与您的进行比较)并将其放在\label
强制参数内\caption
(通常更为强大)。不要使用
h!
only 作为放置位置,而是使用我使用的htp!
(LaTeX 无论如何都会转向h!
,并且如果您的表格太大,大多数情况下ht!
不允许会导致问题)。如果您想要“绝对在这里,而不是其他地方”,您应该使用包提供的。p
H
float
综合起来:
\documentclass[conference]{IEEEtran}
\IEEEoverridecommandlockouts
\usepackage{tabularx}
\usepackage{siunitx}
\usepackage{booktabs}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage{duckuments}% dummy content for the text, don't use it in your document
\begin{document}
\blindduck
\begin{table}[htp!]% never use just h!
\centering
\caption{caption\label{tab:my_label}}
\setlength\tabcolsep{.75\tabcolsep}%
\begin{tabularx}{\linewidth}{L L *{4}{S[table-format=1.3]}}
\toprule
Feature 1 & Feature 2 & {Accuracy} & {Precision} & {Recall} & {Specificity} \\
\midrule
original dna size & compressed dna size & 0.999 & 0.999 & 0.999 & 0.999 \\
\addlinespace
original dna size & compression ratio & 0.999 & 0.999 & 0.999 & 0.999 \\
\bottomrule
\end{tabularx}
\end{table}
\blindduck
\end{document}
答案2
编辑: 我删除了我的第一个版本的答案,因为它是基于@Skillmon的评论,后来他将其转化为优秀的答案(+1)。所以我决定先删除我的答案。
但是现在用一个例子来更新它,如何将一个相对较新的包tabularray
用于您的表格设计:
\documentclass[conference]{IEEEtran}
\IEEEoverridecommandlockouts
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{tabularray} % <--- new, used version 2021Q
\UseTblrLibrary{booktabs, siunitx} % <--- new
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{table}[h!]
\centering
\caption{caption}
\label{tab:my_label}
\begin{tblr}{colsep=4pt,
colspec={@{} X[l] X[l] *{4}{S[table-format=1.3]} @{}},
}
\toprule
Feature 1 & Feature 2 & {{{Accuracy}}} & {{{Precision}}} &{{{ Recall}}} & {{{Specificity}}} \\
\midrule
original dna size & compressed dna size & 0.999 & 0.999 & 0.999 & 0.999 \\
original dna size & compression ratio & 0.999 & 0.999 & 0.999 & 0.999 \\
\bottomrule
\end{tblr}
\end{table}
\lipsum[2-7]
\end{document}