我遇到了一个问题。似乎当我尝试将超过 17 或 18 个表格输出到 PDF 文档时,其余表格会被忽略。当我将它们拆分到多个 Rnw 文件中时,加载任何一个表格都没有问题。
它没有返回任何错误,前 17 或 18 个表的输出似乎也没有任何超出预期的内容。
- Windows 7 专业版
- Miketex 2.29
- RStudio(使用 CompilePdf())
- R 版本 2.14.1
我正在使用以下软件包:
\documentclass[12pt]{report}
\usepackage[landscape]{geometry}
% PREAMBLE
\usepackage{wallpaper}
\usepackage[linktoc=Section]{hyperref}
\usepackage{fullpage}
有什么想法吗?或者有什么我可以再检查一下的吗?
答案1
正如其他人指出的那样,这与默认xtable()
使用表格放置规范有关。但是,这可以被覆盖。而不是[ht]
xtable(...)
在你的 Sweave 文件中,你可以指定
print(xtable(...), table.placement="!htp")
或任何其他规范。我经常使用"H"
来自float
包
答案2
问题似乎在于每个table
环境都传递了[h]
选项;如果可以按照此选项(或自动提供的)放置表格[ht]
,则它和所有后续表格将排队,并且在其他 17 个表格之后 LaTeX 将达到限制。
扩大队列并不是一个合适的答案,因为在那种情况下,所有表格都将打印在章节末尾。
最好的策略是修改 R 生成 LaTeX 代码的方式(我不知道如何修改);另一种可能性是让 LaTeX 忽略该[h]
选项并提供一组不同的选项:例如
\makeatletter
\renewcommand{\table}[1][]{\@float{table}[!htp]}
\makeatother
将把选项传递[!htp]
给所有table
环境(无论是否由 R 生成)。
答案3
原文作者的评论是:“\clearpage
在每个表的末尾添加一个,问题就彻底解决了”。这个方法很好,但并不能真正解决背后的问题。因此我引用了整段更多浮点数此处的软件包作为更一般的参考:
3 替代方案(某种)
如果你真的想增加(可能的)浮点数,那么这个包是正确的。另一方面,如果你遇到了太多未处理的浮点数的问题,但又接受较少的浮点数,那么还有其他一些可能性:
该命令
\clearpage
强制 LaTeX 输出该命令之前出现的任何浮动对象(并转到下一页)。\cleardoublepage
执行相同操作但确保下一页输出的是奇数页。使用不同的浮点说明符:浮点
t
顶部、b
底部、p
页面。建议 LaTeX 将对象放在原来的位置:
h
(= 此处)浮点说明符。告诉 LaTeX 请将对象放在原处:
h!
(= 此处!)浮点说明符。强制 LaTeX 将对象放在原处并关闭:浮动包提供了“此处的样式选项,为浮动环境提供了一个
[H]
选项,表示“将其放在此处”(而不是标准[h]
选项,表示“您可以将其放在此处,如果您愿意)”(截至 2001/11/08 的浮动包文档 v1.3d)。例如,更改\begin{figure}[tbp]...
为\begin{figure}[H]...
强制将图形放在此处,而不是浮动。浮动包 2001/11/08 v1.3d 可在 CTAN 获得:http://ctan.org/pkg/floatplaceins 包提供了命令
\FloatBarrier
。在 之前出现的浮动\FloatBarrier
不允许浮动到 之后的位置,在 之后出现的浮动\FloatBarrier
不允许浮动到 之前的位置\FloatBarrier
。(一个文档中可以有多个\FloatBarrier
。)同一个包还提供了一个选项,可以自动添加到节标题\FloatBarriers
。还可以使其\FloatBarriers
不那么严格(请参阅该包的文档)。placeins 包,2005/04/18 v2.2,可在 CTAN 获得:http://ctan.org/pkg/placeins
另请参阅英国网络上 TeX 常见问题列表中的以下条目:
以及 Frank Mittelbach 在“如何影响 LaTeX 中浮动环境(如图片和表格)的位置?”上的精彩文章https://tex.stackexchange.com/a/39020!