原稿の中でいちばん危険な図は、三つ前の改訂で手作業で作った図です。解析が変わっても PNG が変わらなければ、論文は静かに嘘をつきます。解決策:コードを原稿の中に置き、コンパイルのたびにデータからプロットを再生成させること——Quarto が実行し、Folio Writer が取りまとめます。
Folio Writer の文書のどこにでも、画像を貼り付ける代わりに実行可能なセルを書きます。
```{python}
#| label: fig-eos
#| fig-cap: "Third-order Birch–Murnaghan fit to the P–V data."
import pandas as pd, matplotlib.pyplot as plt
d = pd.read_csv("Research/pv-data.csv")
plt.plot(d.V, d.P, "o"); plt.plot(d.V, fit(d.V))
plt.xlabel("V (ų)"); plt.ylabel("P (GPa)")
```
レンダラー = Quarto でコンパイルするとセルが実行されます:CSV が読み込まれ、当てはめが描かれ、完成した図が PDF に——あるいは Word ファイルや HTML に——収まります。番号とキャプションが付き、他の図と同じく @fig-eos で参照できます。R もまったく同じように動きます。
```{r}
#| label: fig-spectra
#| fig-cap: "Raman spectra by pressure step."
library(ggplot2)
ggplot(read.csv("Research/spectra.csv"),
aes(shift, intensity, color = factor(P))) + geom_line()
```
データファイルを更新して再コンパイルすれば、すべての図が最新になります。書き出しの手順も、「図 3 はどのスクリプトで作った?」も、古いプロットもありません——原稿そのものがパイプラインなのです。
brew install quarto)、無料の Folio Helper も入れます。これで、サンドボックス化された App Store 版アプリからローカルのツールチェーンを実行できます。pip install jupyter matplotlib pandas)。Folio Writer は Quarto を Jupyter 対応のインタプリタへ自動的に向けるので、セルは実際にそれを実行できる Python で実行されます——PATH の先頭にたまたまある python3 ではなく。knitr と rmarkdown をインストールします。Quarto のセルオプションは #| のコメント行として添えます。原稿に必要なことは、ほぼ次の五つでまかなえます。
```{python}
#| label: fig-eos # cite it as @fig-eos
#| fig-cap: "Compression curve with third-order fit."
#| echo: false # figure in the paper, code not
#| fig-width: 6.5 # inches, match the journal column
#| warning: false # keep library chatter out of the PDF
...
```
コードを一切出力したくない原稿全体には、セルごとではなく「メタデータ」文書で一度だけ設定します。
execute: echo: false warning: false
#| cache: true を追加すると、Quarto はセルのコードが変わったときだけ再実行します——文章を編集した後に再コンパイルしても、モデルを当てはめ直すことはありません。
ほとんどの場合、原因は三つのどれかです。レンダラーが違う:コードが実行されるのは、コンパイルシートのレンダラーが Quarto のときだけです——pandoc や Typst では、セルはそのままのコードブロックとして渡されます(意図的な仕様です。これらのパイプラインは何も実行しません)。エンジンがない:コンパイル ▸ 外部ツールを設定… でツールチェーンを確認できます。Python セルにはインタプリタに Jupyter(pip install
jupyter)が、R には knitr + rmarkdown が必要です。パスの前提:セルはプロジェクトを作業ディレクトリとして実行されるので、データは別のマシンの絶対パスではなく Research/pv-data.csv として読み込んでください——パスをプロジェクトからの相対パスにしておくことは、共著者にとって原稿を再現可能に保つことでもあります。
実行可能なセルと通常の図は共存できます。写真や手描きの模式図は普通の Markdown 画像のままで、データから導いたプロットがセルになります。Folio Writer の原稿チェックは静的な図も見張っていて、それを描くスクリプトより古い図に印を付けます——どちらの経路の図でも、知らないうちに古くなることはありません。
Quarto レンダラーは学術誌フォーマットを支えるものと同じなので、動的な図は出版社のテンプレートでも機能します。学術誌の拡張(AGU、Elsevier、Copernicus…)を追加し、メタデータに quarto-to: を設定すれば、コンパイルされた投稿原稿には生きた解析から生成された図が入ります——プロジェクト内のプレーンファイルから、誰でも、コマンド一つで再現できます。