我试图在使用knitr和pandoc转换为PDF时控制绘图的位置.我的Rmd文件如下所示:

# My report

Some text some text some text some text some text some text some text some text some text


```{r myplot, echo=FALSE, fig.pos="placeHere", results='hide'}

library(ggplot2)

ggplot(mtcars, aes(mpg, drat)) + geom_point()

```

Some text some text some text some text some text some text some text some text some text

\usepackage{graphicx}
\begin{figure}[placeHere]
  \centering
    \includegraphics[width=0.5\textwidth]{placeHere}
\end{figure}

Some text some text some text some text some text some text some text some text some text

我正在使用这里提供的函数转换为PDF:http://quantifyingmemory.blogspot.co.uk/2013/02/reproducible-research-with-r-knitr.html

如何在第二块和第三块文本之间放置情节?latex代码没有按目前的状态运行.

这就是我现在正在try 的.

# My report

   ```{r setup, include=FALSE}
# set global chunk options
opts_chunk$set(cache=FALSE)
library(ggplot2)
```

```{r, echo=FALSE, fig.height=3}

ggplot(mtcars, aes(disp, hp)) + geom_point()


```



Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 

Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 


Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 


Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 


```{r, echo=FALSE, fig.height=3}



ggplot(mtcars, aes(vs, am)) + geom_point()


```



Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 

Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 


Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 


```{r, echo=FALSE, fig.height=6}



ggplot(mtcars, aes(disp, cyl)) + geom_point()

```


```{r, echo=FALSE, fig.height=6}

ggplot(mtcars, aes(hp, qsec)) + geom_point()


```


Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 




```{r, echo=FALSE, fig.height=3}

ggplot(mtcars, aes(hp, wt)) + geom_point()

```



Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 



```{r, echo=FALSE, fig.height=5}

ggplot(mtcars, aes(mpg, drat)) + geom_point()

```




Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text 

推荐答案

我不知道在将markdown 文档转换为LaTeX时,pandoc可以设置数字的浮动选项.如果您 Select Markdown是因为它的简单性,那么您不应该期望它有太多的功能,即使使用像pandoc这样的强大工具.底线:Markdown is not LaTeX.它是为HTML而不是LaTeX设计的.

有两种方法:

  1. 使用Rnw语法(R+LaTeX)代替Rmd(R标记)(examples);然后,您将能够在序言中添加\usepackage{float}之后使用区块选项fig.pos='H';在这种情况下,你拥有latex 的全部力量,潘多克将不会参与其中

  2. 对pandoc生成的LaTeX文档进行黑客攻击,例如

    library(knitr)
    knit('foo.Rmd')  # gives foo.md
    pandoc('foo.md', format='latex')  # gives foo.tex
    x = readLines('foo.tex')
    # insert the float package
    x = sub('(\\\\begin\\{document\\})', '\\\\usepackage{float}\n\\1', x)
    # add the H option for all figures
    x = gsub('(\\\\begin\\{figure\\})', '\\1[H]', x)
    # write the processed tex file back
    writeLines(x, 'foo.tex')
    # compile to pdf
    tools::texi2pdf('foo.tex')  # gives foo.pdf
    

如果你不喜欢这些解决方案,在GITHUB上考虑requesting a new feature到BANDOC,然后坐下来等待.

R相关问答推荐

了解.groups的目的= dØr的摘要功能中的删除

使用ggcorrplot在相关性矩阵上标注supertitle和index标签

查找满足SpatRaster中条件的单元格位置

根据shiny 应用程序中的数字输入更改图标 colored颜色

使用ggplot将平滑线添加到条形图

检测(并替换)字符串中的数学符号

gt()从gt为相同内容的单元格 colored颜色 不同?

根据模式将一列拆分为多列,并在R中进行拆分

根据多个条件增加y轴高度以适应geom_text标签

如何使下一个按钮只出现在Rshiny 的一段时间后?""

try 将 colored颜色 编码添加到ggploly的标题中

R -使用矩阵reshape 列表

在纵向数据集中创建新行

如何在反曲线图中更改X标签

将列表中的字符串粘贴到R中for循环内的dplyr筛选器中

多元正态分布的计算

有没有办法将基于每个值中出现的两个关键字或短语的字符串向量重新编码为具有这两个值的新向量?

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?

长/纬点继续在堪萨斯-SF结束,整齐的人口普查

使用同一行中的前一个值填充R矩阵中的缺失值