【问题标题】:rmarkdown: render to .pdf using existing .md files created for .htmlrmarkdown:使用为 .html 创建的现有 .md 文件呈现为 .pdf
【发布时间】:2023-03-09 18:34:01
【问题描述】:

这可能吗?目前我必须渲染我的 .Rmd 文件两次,一次用于 html,一次用于 pdf 报告。他们每个人大约需要50分钟。因此,如果我可以使用渲染后创建的 html .md 文件,那将为我节省 50 分钟。

【问题讨论】:

    标签: r r-markdown bookdown


    【解决方案1】:

    你可以用keep_md: yes保留knitr的markdown输出

    ---
    output:
      html_document:
        keep_md: yes
    ---
    

    然后,使用 pandoc,您可以从该文件生成您的 pdf;在终端(不是 R 控制台)中:

    pandoc mydoc.md -o mydoc.pdf
    

    如果你还没有安装 pandoc,你必须安装 pandoc,才能在没有 knitr 的情况下使用它。

    不过,您可能会丢失一些东西,因为 knitr 会根据最终输出调整其 md 中间文件。

    【讨论】:

    • 我认为这实际上可能是输出:html_document: keep_md: yes
    【解决方案2】:

    如果您的.md 文档已经创建,您可以简单地使用:

    library("rmarkdown")
    render("mydoc.md", output_format = "pdf_document")
    

    如果你总是需要同时生成html和pdf,那么使用J_F的方案同时渲染。

    【讨论】:

      【解决方案3】:

      可以渲染多个输出,但不能使用 RStudio 中的“编织”按钮。在 YAML 标头中写入所需的输出,然后使用 output_format = "all" 作为参数 in

      rmarkdown::render(<your-rmd-file.rmd>, output_format ="all")
      

      所以 YAML 标头看起来像:

      title: "multiple outputs"
      output:
           pdf_document: default
           html_document: default
      

      或者您想为不同的输出格式设置的任何选项。

      【讨论】:

      • 嗯,看起来这种方法会逐个渲染,每次为新格式创建 .md 文件。因此,不创建新的 .md 文件并不能真正节省时间。
      【解决方案4】:

      或者,您可以告诉编译器保留中间 .md 文件。然后,您可以轻松地将其编译成其他格式。

      转到:
      1. RStudio > 打开你的 .Rmd 文件
      2. 点击齿轮(设置)下拉菜单并选择Output Options
      3.选择Advanced
      4.查看Keep markdown source file
      5. 点击确定
      6.Knit to HTML
      7. 在编辑器中打开 .md 文件
      8. 在 Gear(设置)下拉菜单中,选择 PDF 作为输出格式,然后选择 (No Preview)
      9. 在 Preview 下拉菜单中,选择 Preview PDF 并创建一个 .pdf 文件

      作为步骤 2-5 的替代方法,编辑您的文件,使标题包含:

      ---
      title: "blah blah"
      output: 
        html_document: 
          keep_md: yes
      ---
      

      【讨论】:

        猜你喜欢
        • 2019-10-05
        • 2013-04-05
        • 1970-01-01
        • 1970-01-01
        • 2018-06-17
        • 2019-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多