R,knitr不遵守代码块和文本的顺序

6

想象一下,我现在编写了一个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}

这是一个简单的例子,只打印了一些文本和三个表格。

奇怪的是,它没有遵守我在代码中编写的顺序。 我得到了这个(两个pdf页面的侧视图) enter image description here

但是,“Table3”文本应该出现在table3之前并在table2之后,而“just some text”文本应该出现在文档的最后。

如果我在那里写几行,它会打破这些行。

我知道如果一个表格不能适合一个地方,它必须移动到下一页,但以下文本和表格也应该这样做。

我还观察到,在其他示例中,一些表格在不适合时会被重新分配。

我如何防止knitr这样做? 我不知道这是knitr问题还是latex问题。

我正在使用Texlive 2015,Rstudio,R 3.2.3和Windows 10以及所有相关软件包的最新版本。

1个回答

1
默认情况下,print.xtable() 生成一个 LaTeX \table{...} 环境,该环境被定义为浮动对象。请参见 `?print.xtable` 并尝试使用。
<<example2,results='asis', echo=FALSE>>=
print(xtable(mydata, caption="Table2"),floating=FALSE)
@

(未测试...)

或者您可以尝试 table.placement="H";您可能需要\usepackage{float}(请参见tex.stackexchange.com上的此问题)。

(同样未测试...)


我之前尝试过,但它完全搞乱了字幕甚至表格位置。 - skan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接