【问题标题】:knitr generates HTML figure in LaTeX Markdownknitr 在 LaTeX Markdown 中生成 HTML 图
【发布时间】:2025-12-23 11:21:31
【问题描述】:

我有一个 Rmd 文件,想使用 knitr-pandoc-latex 将其转换为 PDF。这是一个按预期工作的小例子:

---
title: "Minimal Working Example"
author: Author Psaroudakis
date: "August 27th 2018"
output: pdf_document
---

```{r boxplot, dev='pdf'}
boxplot(mtcars$disp ~ mtcars$cyl)
```

编织成:

---
title: "Minimal Working Example"
author: Author Psaroudakis
date: "August 27th 2018"
output: pdf_document
---

```r
boxplot(mtcars$disp ~ mtcars$cyl)
```
![plot of chunk boxplot](figure/boxplot-1.pdf)

使用 pandoc 可以轻松地将其转换为 PDF。但如果我想用out.width 调整绘图大小,knitr 会将其转换为 HTML 代码,但我想创建 PDF,而不是 HTML 页面!

…    
```{r boxplot, dev='pdf', out.width='50%'}
boxplot(mtcars$disp ~ mtcars$cyl)
```

被渲染到:

---
title: "Minimal Working Example"
author: Author Psaroudakis
date: "August 27th 2018"
output: pdf_document
---

```r
boxplot(mtcars$disp ~ mtcars$cyl)
```
<embed src="figure/boxplot-1.pdf" title="plot of chunk boxplot" alt="plot of chunk boxplot" width="50%" type="application/pdf" />

有人对此有解决方案吗?我试过opts_knit$set(out.format="latex");,但没有任何区别。提前谢谢!

【问题讨论】:

    标签: knitr pandoc


    【解决方案1】:

    我认为没有问题。当我创建您的测试文档并运行时

    rmarkdown::render("test.Rmd")
    

    (或单击 RStudio 中的 Knit),我得到所需宽度的图形。也许您未说明的转换为 PDF 的方法是问题所在?

    【讨论】:

    • 嗨,是的,这完全正确:当我使用 RMarkdown 执行此操作时,它工作正常,但是当我手动运行 knitr 时,会发生上述情况。我的问题旨在以手动方式进行,因为它肯定可以在没有 rmarkdown 的情况下使用 knitr。
    • 当然是。只需使用rmarkdown 将 Markdown 转换为 PDF 时使用的选项。