gpt4 book ai didi

R Bookdown _bookdown.yml

转载 作者:行者123 更新时间:2023-12-04 01:03:41 26 4
gpt4 key购买 nike

Bookdown 有很多配置选项,我发现很难理解如何知道一个选项是否存在,以及这些选项背后的逻辑。

具体来说,我发现很难描述 _bookdown.yml 中的选项类型。鉴于至少还有两个其他地方可以说明选项:

  • _output.yml ,
  • 函数调用的参数,例如 bookdown::render_book .

  • 在我看来, _bookdown.yml 之间没有任何类型的 1 对 1 映射。和函数的参数,如 bookdown::render_book ,所以 _bookdown.yml似乎不仅仅是记录函数调用选项的不同方式。

    我们可以在源代码中看到 `_bookdown.yml' 控制着一些 config options但不是全部。

    所以 - 重新表述这个问题 - 为什么是 _bookdown.yml一个单独的配置文件以及它应该包含的内容的定义在哪里/什么是?

    举一个有代表性的例子,有一个 chapter_name可以在 _bookdown.yml 中使用的选项.我有以下问题:
  • 鉴于文档 here 中没有引用它,我们怎么知道这是一个选项?甚至在示例中 here .
  • 一旦我们知道它存在,我如何知道它有什么影响?所有这些选项是否都会传递给其他包(例如 pandoc、rmarkdown)?我唯一能找到引用的地方 chapter_name位于 bookdown 的 CRAN 源代码中,即使在那里我也无法弄清楚它是如何使用的。

  • 注意, _bookdown.yml的讨论作者是 here ,但我仍然没有完全理解。

    最佳答案

    以下是对代码库的一些调查结果:

    我们可以看到 bookdown::render_book 中的 'config' 变量来自 _bookdown.yml here , 通过一个名为 load_config 的函数可以在 utils.R 中找到.
    load_config似乎做了两件事 - 它存储了 config 的内容在名为 opts 的主选项列表中,其中config只是一个元素,然后返回 config元素。

    请注意 opts最初定义 here .它是从 knitr:::new_defaults 创建的可以找到 here .
    config变量然后出现在代码库的多个部分中。

    following code有代表性:

      if (is.na(new_session)) {
    new_session = FALSE
    if (is.logical(config[['new_session']])) new_session = config[['new_session']]
    }

    所以我们可以看到,如果 new_session直接传递给 bookdown::render_book作为函数参数,它被使用。否则会尝试从 _bookdown.yml 加载它。文件。
    configbookdown::render_book 中作为参数传递了很多.例如,我们可以看到它被用于 source_files 函数在 utils.R .

    我们得出什么结论? _bookdown.yml允许您填充 bookdown 的全局选项列表包。每当你看到 config (这是一个列表)正在使用代码库,您可以通过填充 _bookdown.yml 来设置此列表的元素

    我还没有找到可以在 _bookdown.yml 中指定的选项的完整列表。但一种轻松找出可能性的方法是 search for examples on Github .

    关于R Bookdown _bookdown.yml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40819213/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com