knit2pdf格式不正确,产生警告

时间:2017-04-13 21:14:07

标签: r knitr

我一直在使用knitr来生成一些非常复杂的PDF。在我的一台机器上,knit2pdf开始引起我的问​​题,我无法弄清楚原因。 knit2pdf继续在我的其他机器上工作。

我的典型设置是:

test.Rnw

\documentclass{article}
\begin{document}
This is a test
\end{document}

R命令

knit2pdf(input = "latex/test.Rnw", output = 'latex/knit2pdf', clean = TRUE)

但是,我收到以下错误消息:

  

knit2pdf(input =“latex / test2.Rnw”,output ='latex / knit2pdf',clean = TRUE)

     

处理文件:latex / test2.Rnw
  | ................................................. ................ |   没有R代码的100%普通文本

     

输出文件:latex / knit2pdf

     

[1]“latex / knit2pdf.pdf”警告信息:运行命令   '“C:\ PROGRA~1 \ MIKTEX~1.9 \ miktex \ bin \ x64 \ texify.exe”--quiet --pdf   “knit2pdf” - max-iterations = 20 -I   “C:/PROGRA~1/R/R-33~1.2/share/texmf/tex/latex” - 我   “C:/PROGRA~1/R/R-33~1.2/share/texmf/bibtex/bst”'状态为1

并且knit2pdf.pdf的内容是:

  

article [] graphicx [] color fgcolorrgb0.345,0.345,0.345   [1] [RGB] 0.686,0.059,0.5691 [1] [RGB] 0.192,0.494,0.81 [1] [RGB] 0.678,0.584,0.6861 [1] [RGB] 0,0,01 [1] [RGB] 0.345,0.345,0.3451 [1] [RGB] 0.1framed   kframetotalleftmargin @setminipage @ end @ of @ kframe shadecolorrgb.97,   .97,.97 messagecolorrgb0,0,0 warningcolorrgb1,0,1 errorcolorrgb1,   0,0 knitrout alltt upquote.styupquote文件这是一个测试

我已经设法获得了我需要的输出(使用How to create multiple PDFs with different content from a single data frame?中的示例),但工作量远远超过调用knit2pdf。

filename <- "texi2pdf"
f_tex <- paste0("latex/", filename, ".tex")
f_pdf <- paste0("latex/", filename, ".pdf")

knit("latex/test.Rnw", output = f_tex)
tools::texi2pdf(file = f_tex, clean = TRUE, quiet = FALSE)
file.rename(from = paste0(filename, ".pdf"), to = f_pdf)

在这种情况下,PDF输出(texi2pdf.pdf)简单,正确,

  

这是一个测试

我正在运行R 3.3.2并且所有软件包都是最新的。

1 个答案:

答案 0 :(得分:1)

Yihui Xie static pattern rule概述的解决方案是使用'.tex'附加输出文件

knit2pdf(input = "latex/test.Rnw", output = 'latex/knit2pdf.tex', clean = TRUE)

我正在运行knitr v1.11,它不需要这个,但是后来的版本会这样做。