想象一下,我编织了这个Rnw文件:
\documentclass{article}
\begin{document}
Table1
<<example,results='asis', echo=FALSE>>=
require(xtable)
nn <- 15
mydata <- data.frame(A=1:nn,C=nn:1, C=runif(nn), D=rnorm(nn))
xtable(mydata, caption="Table1")
@
Table2
<<example2,results='asis', echo=FALSE>>=
xtable(mydata, caption="Table2")
@
Table3
<<example3,results='asis', echo=FALSE>>=
xtable(mydata, caption="Table3")
@
\begin{obeylines}
Just some text
\end{obeylines}
\end{document}
Run Code Online (Sandbox Code Playgroud)
这是一个简单的例子,只打印一些文本和三个表.
奇怪的是,它不尊重我在代码上写的内容的顺序.我明白了(两个pdf页面的侧面视图)

但是"Table3"文本应该出现在table3本身之前和table2之后,文本"只是一些文本"应该出现在文档的最后.
如果我在那里写几行,它就会打破这些行.
我知道如果一个表不适合某个地方,它必须移动到下一页,但应该使用下面的文本和表格.
我还观察到,在其他示例中,一些表在不适合时会随机重新分配.
如何防止编织者这样做?我不知道是编织问题还是乳胶问题.
我正在使用Texlive 2015,Rstudio,R 3.2.3和Windows 10以及所涉及的所有软件包的最新版本.
默认情况下print.xtable()会生成一个 LaTeX\table{...}环境,它被定义为浮动对象。请参阅 `?print.xtable 并尝试例如
<<example2,results='asis', echo=FALSE>>=
print(xtable(mydata, caption="Table2"),floating=FALSE)
@
Run Code Online (Sandbox Code Playgroud)
(未经测试...)
或者你可以尝试table.placement="H";你可能需要\usepackage{float}(请参阅来自 tex.stackexchange.com 的这个问题)。
(也未经测试...)