我使用 tabular 创建了一个宽表。虽然它在 pdf 上显示正常,但当我在 A4 上打印时,表的右侧被截断了。知道为什么会发生这种情况吗?我知道我可以用 tabular 简单地减小列宽,但直到打印时我才知道文本是否超出了边距。
\documentclass[12pt, oneside, landspace, leqno]{report}
\usepackage[doublespacing]{setspace}
\usepackage[top=.8in, left=0.5in]{geometry}%bottom=.8in,left=1in,right=2.54cm]{geometry} % customized margins
\geometry{headsep = 25pt}
\usepackage{apacite}
\usepackage{tabularx}
\usepackage{tikz}
\usepackage{float}
\usepackage{booktabs}
\newgeometry{left=0.5cm,bottom=0.3cm,top=0.2cm}
\begin{document}
\begin{center}
\begin{table}[H]
{\footnotesize
\begin{tabular}{ p{4cm} p{4cm} p{4cm} p{7cm}}
\toprule
Part 1&Part 2&Part 3&Part 4\\ \midrule
Bei et al., 2006 & E2 - Positive NB; PELL - classifiers SVM, NB, C4.5 & LingSpam ;PU1 & E2 94.20\% accuracy, PDB 90.10\%, PERL 88.29\% \\
Yus \& Xuin, 2005 & NB; NMN; SVM; RVM &Spam Ensemble; Babletext & SVM - 92\%, 94.5\%; NN 81.3\%, 82.7\%; NB - 93.7\%, 95.8\% \\
\bottomrule
\end{tabular}
\caption{demo table}
}
\end{table}
\end{center}
\end{document}
答案1
我猜,您实际上喜欢将文档设置为纵向,而只将非常大的表格设置为横向。您展示的示例中的表格实际上并没有那么大(在我看来是必要的)。
根据您的序言,您计划使用tabularx
表格。有了它,您已经可以在推入的表格中使用它,以确保它不会在右侧突出文本宽度:
\documentclass[12pt, oneside, a4paper, leqno]{report}
\usepackage[doublespacing]{setspace}
\usepackage[margin=1in,showframe]{geometry}% <-- changed to usual margins
\geometry{headsep = 25pt}
\usepackage{booktabs, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash
\let\\\newline}X}
\usepackage{siunitx}% <-- added for units
\begin{document}
\begin{table}[h]
\footnotesize
\begin{tabularx}{\textwidth}{lLLL}
\toprule
Part 1 & Part 2 & Part 3 & Part 4
\tabularnewline\midrule
Bei et al., 2006
& E2 - Positive NB; \\
PELL - classifiers SVM, NB, C4.5
& LingSpam; PU1
& E2 \SI{94.20}{\%} accuracy,\\
PDB \SI{90.10}{\%}, \\
PERL \SI{88.29}{\%}
\tabularnewline\addlinespace
Yus \& Xuin, 2005
& NB; NMN; SVM; RVM
& Spam Ensemble; Babletext
& SVM - \SI{92}{\%}, \SI{94.5}{\%}; \\
NN - \SI{81.3}{\%}, \SI{82.7}{\%}; \\
NB - \SI{93.7}{\%}, \SI{95.8}{\%}
\tabularnewline\bottomrule
\end{tabularx}
\caption{demo table}
\end{table}
\end{document}
这使:
如果您确实需要宽表,那么您可以将表方向更改为横向。例如,也可以使用rotating
包及其sidewaystable
环境来完成此操作:
\documentclass[12pt, oneside, a4paper, leqno]{report}
\usepackage[doublespacing]{setspace}
\usepackage[margin=1in,show frame]{geometry}
\geometry{headsep = 25pt}
\usepackage{booktabs, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash
\let\\\newline}X}
\usepackage{siunitx}
\usepackage{rotating}
\begin{document}
\begin{sidewaystable}
\footnotesize
\begin{tabularx}{\textwidth}{lLLL}
\toprule
Part 1 & Part 2 & Part 3 & Part 4
\tabularnewline\midrule
Bei et al., 2006
& E2 - Positive NB; \\
PELL - classifiers SVM, NB, C4.5
& LingSpam; PU1
& E2 \SI{94.20}{\%} accuracy,\\
PDB \SI{90.10}{\%}, \\
PERL \SI{88.29}{\%}
\tabularnewline\addlinespace
Yus \& Xuin, 2005
& NB; NMN; SVM; RVM
& Spam Ensemble; Babletext
& SVM - \SI{92}{\%}, \SI{94.5}{\%}; \\
NN - \SI{81.3}{\%}, \SI{82.7}{\%}; \\
NB - \SI{93.7}{\%}, \SI{95.8}{\%}
\tabularnewline\bottomrule
\end{tabularx}
\caption{demo table}
\end{sidewaystable}
\end{document}
这使:
在这两个例子中,我删除了 MWE 序言中与表设计无关的所有包。对于列类型,我将其用于l
第一列,并L
用于其他列。L
在序言中定义。
希望这个答案可以为您提供一些关于如何设计表格的额外想法。
答案2
默认布局为美国信纸,与 A4 不匹配。为确保获得 A4,请添加a4paper
到课程选项或选项中几何学我会使用:
\documentclass[12pt, oneside, a4paper, landscape, leqno]{report}
在这里,我landscape
也纠正了拼写错误。请注意,编译时检查控制台输出有时会告诉您有用的信息,例如“全局选项”landspace
被忽略了。
正如 David 所说,将浮点数放入环境中是没有意义的center
。(table
和figure
是浮点数的例子。)您可能希望\centering
在环境内部使用。
\documentclass[12pt, oneside, a4paper, landscape, leqno]{report}
\usepackage[doublespacing]{setspace}
\usepackage[top=.8in, left=0.5in]{geometry}%bottom=.8in,left=1in,right=2.54cm]{geometry} % customized margins
\geometry{headsep = 25pt}
\usepackage{apacite}
\usepackage{tabularx}
\usepackage{tikz}
\usepackage{float}
\usepackage{booktabs}
\newgeometry{left=0.5cm,bottom=0.3cm,top=0.2cm}
\begin{document}
\begin{table}[H]
\centering
\footnotesize
\begin{tabular}{ p{4cm} p{4cm} p{4cm} p{7cm}}
\toprule
Part 1&Part 2&Part 3&Part 4\\ \midrule
once upon a time in biblical times the Romans were &there were a few & green apples & and crazy apes\\
once upon a time &there were a few & green apples & and crazy apes filled the Amazonian forests\\
\bottomrule
\end{tabular}
\caption{demo table}
\end{table}
\end{document}
这确实使用了横向 A4,但您的布局仍然存在一些令人困惑的地方。您有:
\usepackage[top=.8in, left=0.5in]{geometry}%bottom=.8in,left=1in,right=2.54cm]{geometry} % 自定义边距 \geometry{headsep = 25pt} ... \newgeometry{left=0.5cm,bottom=0.3cm,top=0.2cm}
但您到底想要什么?有时在文档开始后更改页面布局是有意义的,但在文档开始之前更改它有什么意义呢?原始设置(大部分,但有些变化和不可预测)会被覆盖,只有(成功的)新设置才会产生任何效果。
我还想说,这些是非常小边距。我认为我可以使用的任何打印机都无法适应这些。结果是,即使理论上内容适合纸张,打印时也会被切断。
以下是上面的结果
增加showframe
我们提供的选项几何学,我们可以看到布局:
这可能不是您想要的......