平衡点


2022/04/30

_ org-babel で tikz, pgfplots を用いた作図

最近, 講義資料(beamerのスライド)はほぼ全てEmacsのorg-modeで書く様になってます. これまではBeamerへのexport時にTikZ/PGFPlotsもそのままTeXファイルにexportしてPDFを作成していました.

…が, まあ当たり前ですけれど一度作った画像&グラフを毎回再生成するのも無駄なので これらはorg-babelで先に作成しておいて…ということを目論んだわけです.

org-babelでの評価時に生成される中間ファイルは /tmp/babel-XXXXXX といったディレクトリに出力されます. このディレクトリ名は org-babel-temporary-directory に入っています. 何故こんな事を気にするか, というと

  1. TikZ/PGFPlots から gnuplot を呼んで絵を描こうとする
  2. TeX での処理時には -shell-escape で gnuplot が呼ばれ, 中間ファイル が出力される
  3. 中間ファイルを含めて最終的にtypesetされてPDFができる

わけですが, 中間ファイルが /tmp/babel-XXXXXX に出力されていることをTeX処理系に教えないといけません.

というわけでジタバタ.

結論から言えば, org-babel の #+begin_src latex

#+begin_src latex :var babel_temp_directory=(format "%s" org-babel-temporary-directory)
\pgfkeys{/pgf/plot/gnuplot call={cd babel_temp_directory && gnuplot}}
#+end_src

とでもしておくと良い, ということの様です. つまりは org-latex-pdf-process での処理に -output-directory が指定されているので, これを PGFPlots に教えてあげましょう, ということですね.

とりあえずは上手く動いたんですけれど, もっと良い方法がありそうな気もしています.


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲