2016-11-26 1 views
5

Bookdownには多くの設定オプションがあります。オプションが存在するかどうかを知る方法や、これらのオプションが記載されているロジックを理解するのは難しいです。R Bookdown _bookdown.yml

具体的に、私はそれは難しいオプションの種類は、オプションを記述するための、少なくとも二つの他の場所があることを考えれば_bookdown.ymlに行くかを説明するために見つけることしています:呼び出しを機能させる_output.yml

  • は、
  • 引数bookdown::render_bookなどです。

bookdown::render_bookのような機能に_bookdown.ymlと引数の間に1対1のマッピングの任意の並べ替えがありますように私には表示されませんので、_bookdown.ymlは、呼び出しを機能させるオプションを記録するだけで別の方法ではないようです。

ソースコードでは、「_bookdown.yml」がconfig optionsの一部を制御していますが、すべてではないことがわかります。

質問を言い換えると、なぜ_bookdown.ymlは別の設定ファイルですか、そして/ whatはそれが含まれるべきものの定義ですか?

chapter_nameオプションがあり、_bookdown.ymlで使用できます。私は、次の質問を持っている:

我々はそれがドキュメント hereに、あるいは例 hereで参照されていないことを考えると、これはオプションであることを知ることになっている方法
  1. それが存在することがわかったら、どのような効果があるかをどのようにして知ることができますか?これらのオプションはすべて他のパッケージに渡されますか(pandoc、rmarkdownなど)? chapter_nameへの参照が見つかる唯一の場所は、bookdownのCRANソースコードであり、実際にはどのように使用されているか把握できません。

_bookdown.ymlの議論は、著者がhereですが、まだ完全には分かりません。ここで

答えて

7

は、コードベースの調査のいくつかの結果は以下のとおりです。

我々はbookdown::render_bookの「設定」変数がutils.Rで見つけることができますload_configと呼ばれる機能によって、_bookdown.ymlhereから移入されていることがわかります。

load_configは、2つのことを行うようだ - それはconfigはただ一つの要素となっているoptsと呼ばれるマスター・オプション・リスト内configの内容を保存し、そのconfig要素を返します。

optsは、最初にhereと定義されています。 hereであるknitr:::new_defaultsから作成されます。

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ファイルからロードしようとします。

configは、bookdown::render_book内の引数として多く渡されます。たとえば、source_files関数で使用されていることがわかります(utils.R)。

私たちは何を結論づけますか? _bookdown.ymlを使用すると、bookdownパッケージのグローバルオプションのリストを入力できます。あなたはコードベースを使用している(リストがある)configを見るたびに、あなたは私が_bookdown.ymlが、1つに指定できるオプションの包括的なリストを見つけることができなかった_bookdown.yml

を取り込むことで、このリストの要素を設定することができます可能なことを簡単に見つける方法はsearch for examples on Githubです。

+0

最後のリンクは機能しません。 「この検索を実行できませんでした」 少なくとも1人のユーザー、組織、またはリポジトリを含める必要があります – Jfly

+0

ログインする必要がありますか?それは私の最後に働く.... – RobinL

+0

私はログインし、同じmsgを持っています。奇妙な.. – Jfly

関連する問題