如何减少表格宽度?

如何减少表格宽度?

我正在尝试在我的 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 位数字)。siunitxtable-format=1.3

  • 删除LaTeX内核提供的标准规则\toprule,改用\midrule\bottomrulebooktabs

  • 为了便于阅读表格,在需要多行文本的行之间放置\addlinespace(也由提供)。booktabs

  • 使用 将列间距减少到 3/4 \setlength\tabcolsep{.75\tabcolsep}

  • 将其放在\caption表格上方(这就是IEEEtran想要的,将标题的间距与您的进行比较)并将其放在\label强制参数内\caption(通常更为强大)。

  • 不要使用h!only 作为放置位置,而是使用我使用的htp!(LaTeX 无论如何都会转向h!,并且如果您的表格太大,大多数情况下ht!不允许会导致问题)。如果您想要“绝对在这里,而不是其他地方”,您应该使用包提供的。pHfloat

综合起来:

\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}

在此处输入图片描述

相关内容