在没有RStudio的情况下将Rmarkdown转换为PDF

时间:2017-01-12 11:11:00

标签: r pdf knitr r-markdown pandoc

我想将*.Rmd转换为PDF格式 ,而 可用。

目前的方法

目前的方法遵循以下步骤:

  1. *.Rmd文件已传递至knitr knit(input = "report.Rmd"))
  2. 获得的md通过pandoc转换:

    # Convert
    pandoc --smart --to latex \
           --latex-engine pdflatex \
           -s report.md \
           -o report.PDF
    
  3. 问题

    这导致以下问题, Rmarkdown 文档的顶部:

    ---
    title:  "Report Title"
    author: "Person"
    output: pdf_document
    classoption: landscape
    ---
    

    并显示为:

    top document section

    所有文字都居中,而我希望它左对齐:

    no-left aligned

    可能的方法

    我想利用rmarkdown::render;但是,尽管设置了RSTUDIO_PANDOC(如所讨论的here),但命令在pandoc无法使用时失败。

    期望的结果

    我并不关心所使用的机制是否使用rmarkdown::render,我想要实现的是:

    • 所有页面的横向页面布局
    • 左对齐文字
    • 能够通过控制默认字体对文档进行最低限度的控制
    • 理想情况下,我希望尽可能多地在*.Rmd文件中执行,而无需向pandoc命令添加参数。

    更新,发表评论

    • 我正在安装Linux并且安装了pandoc,我可以执行pandoc命令传递文件并生成导出而没有任何问题。它只适用于rmarkdown::render包。
    • 关于钩子和*.Rmd文件,这是我试图理解的内容,因为我发现*.Rmd文件的第一部分被忽略了。目前的流程如下:
      • *.Rmd (其中不多,只是标题部分和虚拟文字以及呈现但错误对齐的代码)>
      • *.R 运行一行knit(input = "report.Rmd")) >
      • 的文件
      • *.sh 文件正在运行pandoc命令并生成PDF

    关于:

      

    如果一切就绪,那确实只是一个电话   rmarkdown::render(...)

    rmarkdown::render(...)失败: Error: pandoc version 1.12.3 is required and was not found ... 但是:

    >> rmarkdown::pandoc_available()
    [1] TRUE
    

    $ pandoc -v
    pandoc 1.9.4.1 (...)
    

    RSTUDIO_PANDOC指向pandoc。

2 个答案:

答案 0 :(得分:2)

一些事情:

  • "该命令在pandoc不可用时失败。" 必须安装pandoc才能叫它 - 但你没有说出你有什么操作系统。在Linux上,从包管理器安装pandoc非常简单;否则jgm会在网站上为你提供二进制文件; "应该"在OS X上类似

  • 对于不同的样式,您需要修改LaTeX代码,您可以通过多个钩子来包含宏文件;请参阅RMarkdown备忘单了解详情

  • 如果您想要进行更多控制,可以提供自己的模板;我在tint package中这样做了 (也在CRAN上)

  • 如果一切就绪,那确实只是打电话给rmarkdown::render(...)

答案 1 :(得分:0)

  

错误:需要Pandoc版本1.12.3,但找不到

我认为该错误明确说明:您需要pandoc 1.12.3,而您却需要pandoc 1.9.4.1

但是,我不知道为什么需要这样的特定版本。