【问题标题】:creating accompanying slides for bookdown project为 bookdown 项目创建随附的幻灯片
【发布时间】:2019-02-25 01:12:28
【问题描述】:

在 Rstudio 中,我创建了一个新项目并使用 bookdown 选择图书项目。内置示例按预期完美运行,我可以编译 4 本书 - gitbook、html、epub 和 pdf。太好了。

下一个明显的步骤是希望同时拥有幻灯片,这与beamer package 所做的非常一致,同时允许beamer modearticle mode。因此,我尝试在 _output.yml 代码中添加另一个输出:bookdown::pdf_document2。根据文档,我知道我应该能够将base_format 定义为使用rmarkdown::beamerThe package author told me I was almost right, see this link for the discussion。 Punchline:我将这个修改后的_output.yml 用于默认项目:

bookdown::gitbook:
  css: style.css
  config:
    toc:
      before: |
        <li><a href="./">A Minimal Book Example</a></li>
      after: |
        <li><a href="https://github.com/rstudio/bookdown" target="blank">Published with bookdown</a></li>
    download: ["pdf", "epub"]
bookdown::pdf_book:
  base_format: rmarkdown::beamer_presentation
  includes:
    in_header: preamble.tex
  latex_engine: xelatex
  citation_package: natbib
  keep_tex: yes
bookdown::epub_book: default
bookdown::pdf_document2:
  includes:
    in_header: preamble.tex
  latex_engine: xelatex
  citation_package: natbib
  keep_tex: yes

这正是谢一辉好心的建议。但是,当需要构建 pdf_book 时,我遇到了编译失败:

Output created: _book/index.html
Error in base_format(toc = toc, number_sections = number_sections, fig_caption = fig_caption,  : 
  unused argument (number_sections = number_sections)
Calls: <Anonymous> ... <Anonymous> -> create_output_format -> do.call -> <Anonymous>
Execution halted

Exited with status 1.

我迷路了 - 我花了几个小时寻找解决方案,但没有成功。任何人都可以帮助我吗?很抱歉,我无法弄清楚这一点。 XieYihui 一直非常支持他,他的 cmets 认为这是提出此类问题的合适场所。非常感谢。托马斯

【问题讨论】:

    标签: r yaml r-markdown bookdown beamer


    【解决方案1】:

    错误是因为rmarkdown::beamer_presentation() 没有参数number_sections (您不能在投影仪中对部分进行编号;至少 Pandoc 似乎不支持它)。

    要解决此问题,您可以使用以下 hack,它基本上定义了丢弃 number_sections 参数的基本格式:

    ---
    title: "Using bookdown with Beamer"
    output:
      bookdown::pdf_book:
        base_format: "function(..., number_sections) rmarkdown::beamer_presentation(...)"
        number_sections: false
    ---
    
    ## Plot
    
    See Figure \@ref(fig:foo).
    
    ```{r, foo, fig.cap='Hi there', fig.height=4}
    plot(1:10)
    ```
    

    【讨论】:

    • 这行得通 - 非常感谢!我只需要了解如何更改文件名 - 因为 bookdown::pdf_bookbookdown::pdf_document2 输出到同一个文件 - 因此会被覆盖!我知道如何使用 _bookdown.yml 一次更改所有文件的文件名和位置,但我不知道如何为单个文件执行此操作....我将在网上搜索更多内容,但到目前为止没有看到任何内容 - 我是如果我找不到任何东西,需要为此发布另一个问题吗?非常感谢,托马斯
    • 无法在任何地方找到有关如何自定义单个图书文件名的答案...抱歉。
    • 很遗憾,您无法通过任何 YAML 选项自定义输出文件名。
    • 非常感谢您的及时回复。非常感谢。有没有办法抛出一些 pandoc 命令?所以你说如果我想一次编译所有的书,当我运行第二个bookdown::pdf_document2时,我注定要覆盖用第一个bookdown::pdf_book构建的pdf??非常感谢,托马斯
    • 所以......我想如果是这样的话,唯一的选择是希望未来版本的 bookdown 允许一些额外的选项,例如bookdown::slides? ;-p
    猜你喜欢
    • 2016-05-04
    • 1970-01-01
    • 2013-08-16
    • 2022-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2011-12-30
    相关资源
    最近更新 更多