我有一个.Rnw文件,可以使用RStudio中的“编译PDF”按钮(或Command + Shift + k)将其编译为PDF。 但是,当我使用knit2pdf时,不会创建图形,也不会创建完整的PDF。为什么会这样?您如何具体设置图像的存储位置,以便pdflatex可以找到它们?

这是一个例子。我知道几天前发布的this问题也有类似的例子,但是在我看来,这是两个不同的问题。

如果单击“编译”,此文件将运行良好并生成PDF。我没有任何错误,该图是在/figure目录中生成的,一切都很好。

%test.Rnw
\documentclass{article}
\usepackage[margin=.5in, landscape]{geometry}
\begin{document}

This is some test text!

<<setup, include=FALSE, results='hide', cache=FALSE>>=
opts_chunk$set(echo=FALSE, warning = FALSE, message = FALSE,
 cache = FALSE, error = FALSE)
library(ggplot2)
@

<<printplotscreen, results='asis'>>=
ggplot(diamonds) +
  geom_bar(aes(x = color, stat = "bin"))
@

\end{document}

但是,当我运行此脚本的目的是与单击“编译”(是吗?)完全相同时,将不会创建该图形,并且在下面出现了无法找到错误的错误消息。
#test.R
library("knitr")

knit2pdf(input = "~/Desktop/thing/test.Rnw",
         output=paste0('~/Desktop/thing/test','.tex'))

Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  :
  Running 'texi2dvi' on 'test.tex' failed.
LaTeX errors:
! LaTeX Error: File `figure/printplotscreen-1' not found.

注意:如果您想重现此内容(并感谢!),请确保先运行knit2pdf脚本,以查看它不会创建图形。如果您首先点击“编译”,则这些数字将在此处供knit2pdf使用,但不能准确表示情况。

最佳答案

解决方案:在使用knit2pdf之前,请确保将工作目录设置为项目目录,然后将“输入”路径缩短为.Rnw文件。因此...

test.R
library("knitr")
diamonds = diamonds[diamonds$cut != "Very Good",]

setwd("/Users/me/Desktop/thing")
knit2pdf(input = "test.Rnw", output = "test.tex")

关于r - "Compile PDF"和knit2之间的区别pdf,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33555002/

10-12 17:39