自动调整表格以适应文本边距

自动调整表格以适应文本边距

我在大学开始学习 LaTeX,我需要在文本中插入下面的表格,但它们超出了页边距。LaTeX 中是否有自动命令可以调整列和字体的大小,以便表格适合文本页边距?

我不太了解代码,实际上你看到的所有内容都是我从其他网站获取的。提前致谢。

\begin{table}[!ht]
\centering
\caption{Representação}
\begin{tabular}{c | c c c c c c c c c c c c c}
\textbf{} & \textbf{brócolis} & \textbf{com} & \textbf{comidas} & \textbf{ela} & \textbf{ele} & \textbf{fez} & \textbf{gosta} & \textbf{milho} & \textbf{palmito} & \textbf{pizza} & \textbf{salada} & \textbf{são} & \textbf{vapor} \\
\hline
$d_1$  & 1 & 0 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 \\
$d_2$  & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 \\
$d_3$  & 1 & 1 & 0 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 \\
$d_4$  & 1 & 1 & 0 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 \\
\end{tabular}
\label{tab:boolean}
\end{table}

\begin{table}[!ht]
\centering
\caption{Representação}
\begin{tabular}{c | c c c c c c c c c c c c c}
\textbf{} & \textbf{brócolis} & \textbf{com} & \textbf{comidas} & \textbf{ela} & \textbf{ele} & \textbf{fez} & \textbf{gosta} & \textbf{milho} & \textbf{palmito} & \textbf{pizza} & \textbf{salada} & \textbf{são} & \textbf{vapor} \\
\hline
$d_1$  & 0,000 & 0,000 & 0,000 & 0,301 & 0,301 & 0,000 & 0,602 & 0,000 & 0,000 & 0,602 & 0,000 & 0,000 & 0,000 \\
$d_2$  & 0,000 & 0,000 & 0,602 & 0,000 & 0,000 & 0,000 & 0,000 & 0,000 & 0,000 & 0,301 & 0,000 & 0,602 & 0,000 \\
$d_3$  & 0,000 & 0,301 & 0,000 & 0,000 & 0,301 & 1,204 & 0,000 & 0,000 & 0,602 & 0,000 & 1,806 & 0,000 & 0,000 \\
$d_4$  & 0,000 & 0,301 & 0,000 & 0,301 & 0,000 & 0,000 & 0,301 & 0,000 & 0,000 & 0,000 & 0,000 & 0,000 & 0,602 \\
\end{tabular}
\label{tab:tfidf}
\end{table}

答案1

欢迎来到 TeX.SE!

  • 即使对于经验丰富的 LaTeX 用户来说,编写表格也是一项具有挑战性的任务。

  • 对于 LaTeX 初学者来说,阅读一些关于表格编写的介绍性文字是有帮助的,例如wiki/LaTeX/表格

  • 在你的情况下看到问题,看来你的问题与它重复了。

  • 问题中显示的表格的可能解决方案还取决于页面布局。缺少这些信息很难帮助您。因此,请始终提供(如果可能)一个完整的小文档,以 开头\documentclass并以 结尾,\end{document}称为最小工作示例 (MWE),以重现您的问题。

  • 没有通用的解决方案,存在许多可能的解决方案,取决于表格内容、页面布局等。有前途的方法是使用表格,您可以规定表格宽度。

  • 基于使用的解决方案\resizebox是为了让表格适合列/页面宽度而不得已采取的最后措施。它使表格中的字体大小与文本中的字体不一致,最糟糕的情况是文本中的字体变得难以辨认。

  • 在您的具体情况下,在可能的解决方案中,看看以下内容是否可以帮助您:

\documentclass{article}
\usepackage{geometry}
%--------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%
\usepackage{lipsum}                             % for dummy text
%---------------------------------------------------------------%

\begin{document}
\begin{table}[ht]
\centering
\caption{Representação}
\small
\setlength\tabcolsep{0pt}
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}} c @{\ } | c c c c c c c c c c c c c}
\textbf{} & \textbf{brócolis} & \textbf{com} & \textbf{comidas} & \textbf{ela} & \textbf{ele} & \textbf{fez} & \textbf{gosta} & \textbf{milho} & \textbf{palmito} & \textbf{pizza} & \textbf{salada} & \textbf{são} & \textbf{vapor} \\
\hline
$d_1$  & 1 & 0 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 \\
$d_2$  & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 \\
$d_3$  & 1 & 1 & 0 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 \\
$d_4$  & 1 & 1 & 0 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 \\
\end{tabular*}
\label{tab:boolean}
\end{table}

\begin{table}[!ht]
\centering
\centering
\caption{Representação}
\small
\setlength\tabcolsep{0pt}
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}} c @{\ } | c c c c c c c c c c c c c}
\textbf{} & \textbf{brócolis} & \textbf{com} & \textbf{comidas} & \textbf{ela} & \textbf{ele} & \textbf{fez} & \textbf{gosta} & \textbf{milho} & \textbf{palmito} & \textbf{pizza} & \textbf{salada} & \textbf{são} & \textbf{vapor} \\
\hline
$d_1$  & 0,000 & 0,000 & 0,000 & 0,301 & 0,301 & 0,000 & 0,602 & 0,000 & 0,000 & 0,602 & 0,000 & 0,000 & 0,000 \\
$d_2$  & 0,000 & 0,000 & 0,602 & 0,000 & 0,000 & 0,000 & 0,000 & 0,000 & 0,000 & 0,301 & 0,000 & 0,602 & 0,000 \\
$d_3$  & 0,000 & 0,301 & 0,000 & 0,000 & 0,301 & 1,204 & 0,000 & 0,000 & 0,602 & 0,000 & 1,806 & 0,000 & 0,000 \\
$d_4$  & 0,000 & 0,301 & 0,000 & 0,301 & 0,000 & 0,000 & 0,301 & 0,000 & 0,000 & 0,000 & 0,000 & 0,000 & 0,602 \\
\end{tabular*}
\label{tab:tfidf}
\end{table}
\end{document}

在此处输入图片描述

(红线表示页面布局)

答案2

我看到两个选择:

在第一个选项中,加载包tabularx,并且由于您有居中列,因此您必须创建一个新类型的列,如下所示:

\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}

然后在表格环境中使用以下代码

\begin{tabularx}{\textwidth}{Y | Y Y Y Y Y Y Y Y Y Y Y Y Y}
<Insert Table Content here>
\end{tabularx}

另一个选项是使用\resizebox以下命令包装表格环境:

\resizebox{\textwidth}{!}{
<insert tabular enviroment here>
}

最后一个的优点是它还会尝试改变文本的高度

相关内容