尝试将表格放入纸张宽度内

尝试将表格放入纸张宽度内

我正在尝试使表格的宽度等于或小于纸张的宽度,以便表格可以适合纸张。我在下面编写了表格的代码,但它不适合纸张,如下图所示,有什么帮助吗?

在此处输入图片描述

我的代码是:

\begin{table}[h]
\begin{tabular}{lllll}
                                & \textbf{k-generated} & \textbf{generated goal} & \textbf{male} & \textbf{female} \\
\textbf{NONgenerated}          & NO               & YES                     & YES          & NO             \\
\textbf{AUTOMATIC/generated supervising} & NO               & YES                     & YES          & YES            \\
\textbf{REAL-TIME/generated}       & NO               & NO                      & NO           & YES            \\
\textbf{generated}               & NO               & NO                      & NO           & YES            \\
\textbf{generated LOW}           & 0.9              & 0.74                    & 0.85         & 0.74           \\
\textbf{generated}             & LOW              & HIGH                    & HIGH         & LOW           
\end{tabular}
\end{table}

答案1

无需调整大小,您可以使用makecell包并旋转列标题:

\documentclass[12pt]{report}

\usepackage{array, makecell, booktabs, rotating}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadalign{lc}

    \begin{document}
Text text text text text text text text text text text text text text text text text
\begin{table}[h]
  \renewcommand\cellrotangle{35}
  \settowidth{\rotheadsize}{ HIGH }
  \centering
  \begin{tabular}{*{5}{l}@{}}
    \addlinespace[2ex]
                          & \rothead{\rlap{k-generated}} & \rothead{\rlap{generated goal}} & \rothead{\rlap{male}} & \rothead{\rlap{female}} \\
    \midrule[\heavyrulewidth]
    \thead{NONgenerated} & NO & YES & YES & NO \\
    \thead{AUTOMATIC/ & & & & \\generated supervising} & NO & YES & YES & YES \\
    \thead{REAL-TIME/ & & & & \\generated} & NO & NO & NO & YES \\
    \thead{generated} & NO & NO & NO & YES \\
    \thead{generated LOW} & 0.9 & 0.74 & 0.85 & 0.74 \\
    \thead{generated} & LOW & HIGH & HIGH & LOW \\
    \bottomrule
  \end{tabular}
\end{table}
\end{document} 

在此处输入图片描述

答案2

这是我的方法,按照偏好顺序,不减小字体大小,不旋转或缩放文本:

  1. 删除不必要的单词或者用更短的单词进行更改或重新设计表格。这在我的 MWE 中没有显示,因为我不明白示例表的含义,但可能所有/大多数单词“generated”都可以删除而不会失去任何含义。

  2. 避免使用全部大写的单词但绝对必要,原因有三:(1) 需要更多空间 (2) 普遍认为小写文本更易读。 (3) 大小写混用文本更糟糕。在我看来,看起来很丑。

  3. 避免使用粗体字体。粗体字体较大,但一两条水平线足以强调标题。

  4. 当某些单元格不可避免地包含过多文本时, 使用tabularytabularx环境与同名的包一起使用以保持在文本宽度内和/或使用一些类似p{3cm}而不是lcr列来允许多行单元格(您也可以在中使用它tabular)。 p 列的长度也可以是相对长度.5\linewidth

在我的示例中,只有两个单元格需要两行。不太好。所以重新设计表格时请再三考虑。也许您可以使用“目标”而不是“生成的目标”,并且只在“生成的”标题下使用“自动/监督”,以便只使用一行单元格。

平均能量损失

\documentclass[12pt]{article}
\usepackage{tabulary,booktabs}
\begin{document}
\begin{table}[h]
\begin{tabulary}{\linewidth}{LcCcc}
\toprule                         & k-generated  & Generated Goal  & Male        & Female\\\midrule
Non generated                   & No           & Yes     & Yes          & No\\
Automatic/generated supervising & No           & Yes     & Yes          & Yes\\
Real-time/generated             & No           & No      & No           & Yes\\
Generated                       & No           & No      & No           & Yes\\
Generated low                   & 0.9          & 0.74    & 0.85         & 0.74\\
Generated                       & Low          & High    & High         & Low\\\bottomrule     
\end{tabulary}
\end{table}
\end{document}

答案3

重要的提示:调整组件大小看起来不太好看。考虑修改表格本身以使其完全适合页面,或者将字体大小更改为\small其他合适的大小。


如果您只关心如何调整表格大小以适应页面宽度,则该graphicx软件包提供了\resizebox,它可以解决问题。以您的表格为例:

\usepackage{graphicx}  % Put in your document's preamble
\begin{table}[h]
  \resizebox{\hsize}{!}{
    \begin{tabular}{lllll}
      & \textbf{k-generated} & \textbf{generated goal} & \textbf{male} & \textbf{female} \\
      \textbf{NONgenerated}          & NO               & YES                     & YES          & NO             \\
      \textbf{AUTOMATIC/generated supervising} & NO               & YES                     & YES          & YES            \\
      \textbf{REAL-TIME/generated}       & NO               & NO                      & NO           & YES            \\
      \textbf{generated}               & NO               & NO                      & NO           & YES            \\
      \textbf{generated LOW}           & 0.9              & 0.74                    & 0.85         & 0.74           \\
      \textbf{generated}             & LOW              & HIGH                    & HIGH         & LOW           
    \end{tabular}
  }
\end{table}

第一个参数\resizebox是调整大小框的宽度——在本例中是其容器的水平尺寸。第二个参数是高度,但{!}这里只是指示它自动计算高度以保持纵横比。第三个参数当然是框的内容。

话虽如此,我必须重申:这看起来不太好。换个桌子吧。

相关内容