【问题标题】:How to force rstudio/knitr/rmarkdown to use alternative pandoc binary (scholdoc)如何强制 rstudio/knitr/rmarkdown 使用替代 pandoc 二进制文件 (scholdoc)
【发布时间】:2015-10-04 23:22:11
【问题描述】:

scholdoc(参见scholarlymarkdown.com)是pandoc 的一个分支,它有!终于!易于参考的数字/代码块等内置 - pandoc 中的一个中心缺失部分。

rstudio 中使用knitr/rmarkdown 时,是否有任何直接的方法可以强制使用scholdoc 而不是随附的pandoc 二进制文件?

当我设置.Rprofile

options(
  rstudio.markdownToHTML = function(inputFile, outputFile) {
    system(
      paste(
        "~/.cabal/bin/scholdoc",
        shQuote(inputFile),
        "-o", shQuote(outputFile)))
  })

here 所示,这似乎可行,但是,由于它缺少内部pandoc 使用的所有命令行选项,因此会产生开箱即用的HTML,这会让我陷入痛苦的境地正确使用所有 CLI 选项。

在研究了一些rmarkdown的代码后,我也尝试将环境变量RSTUDIO_PANDOC设置为包含scholdoc的路径-无济于事。

谁能指出一个使用最新的rstudio/scholdoc 安装的简单方法?

【问题讨论】:

  • 这不是你要找的,但这可以从命令行工作。 RScript -e "库(knitr); knit('test.Rmd')" && scholdoc test.md -o test.html。因此你可以调用 system(...)
  • 我还建议将RSTUDIO_PANDOC 设置为shell 变量,基于what I assume you looked at。您能否详细说明为什么这不起作用?
  • RStudio 中的 RMarkdown 控制台一直读取/usr/lib/rstudio/bin/pandoc/pandoc manuscript.utf8.md ...,而echo $RSTUDIO_PANDOC 给出~/.cabal/bin/sholdoc 就好了...
  • RSTUDIO_PANDOC 指向目录,而不是文件。 rmarkdown 假定 pandoc 可执行文件的名称始终是“pandoc”。 github.com/rstudio/rmarkdown/blob/…
  • 感谢您的观察。我已将RSTUDIO_PANDOC 设置为指向~/bin 并在其中软链接scholdoc --> pandoc。 Rstudio 现在确实在使用scholdoc,但我的下一个任务是克服rmarkdown 的版本检查......会报告回来。

标签: rstudio knitr r-markdown pandoc


【解决方案1】:

我很久以前就问过这个想法,为了完整起见,我要指出,bookdown 已进入舞台以提供rmarkdown 文档中的数字等的交叉引用。

在发出install.packages('bookdown') 之后,RStudio 可以通过在文档的YAML 标题中添加以下内容来强制使用它:

output:
  bookdown::pdf_document2:

【讨论】:

    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多