该示例将在我的笔记本电脑上而不是台式机上显示。两者都使用相同的RStudio和R版本。我试过卸载R和RStudio,更改R和RStudio版本,更改32/64位R,尝试安装各种pandoc版本,使用Sys.setenv()手动设置pandoc的路径...我有点亏了。
两台机器都具有以下内容:
> rmarkdown::pandoc_version()
[1] ‘1.19.2.1’
> version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.3
year 2017
month 11
day 30
svn rev 73796
language R
version.string R version 3.4.3 (2017-11-30)
nickname Kite-Eating Tree
这是一个最小的非有效示例。同样,它可以在笔记本电脑上运行,但不能在台式机上运行。
---
title: "Pandoc testing sandbox"
output:
html_document:
df_print: paged
number_sections: yes
toc: yes
toc_float:
collapsed: no
smooth_scroll: no
---
Here is a chunk of code to test:
```{r, results = "asis", echo = FALSE, message = FALSE}
tex2markdown <- function(texstring) {
writeLines(text = texstring,
con = myfile <- tempfile(fileext = ".tex"))
texfile <- knitr::pandoc(input = myfile, format = "html")
cat(readLines(texfile), sep = "\n")
unlink(c(myfile, texfile))
}
textable <- "
\\begin{table}[]
\\centering
\\begin{tabular}{l | c | c}
& without replacement & with replacement \\\\ \\hline
order matters & permutation: $\\frac{n!}{(n-k)!}$ & $n^k$ \\\\ \\hline
order does not matter & combination: ${n\\choose k}=\\frac{n!}{k!(n-k)!}$ & (\\textit{special case}) \\hline
\\end{tabular}
\\end{table}
"
tex2markdown(textable)
```
台式机上的错误文本为:
Line 17 Error in knitr::pandoc(input = myfile, format = "html") :
Please install pandoc first: http://pandoc.org
Calls: <Anonymous> ... withVisible -> eval -> eval ->
tex2markdown -> <Anonymous> Execution halted
任何帮助,将不胜感激!
===
编辑:我做了一些测试并运行:
rmarkdown::render("pandoctest.Rmd", "html_document")
并且有一个“使用调试重新运行”的选项,所以我做到了,并且错误发生在“ Function pandoc(namespace:knitr)”中。我认为中断发生的代码行是pandoc knitr软件包中的功能是:
...
if (Sys.which("pandoc") == "")
stop("Please install pandoc first: http://pandoc.org")
...
因此,似乎pandoc正在检查其是否已安装?抑或这是knitr软件包中的pandoc函数,该函数从其他地方调用实际的pandoc程序?因此,似乎我需要让knitr以某种方式查看我是否已安装pandoc。