我在大学开始学习 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>
}
最后一个的优点是它还会尝试改变文本的高度