Real-time document (pdf) preview in org-mode

org-modeでリアルタイムにpdf文書をプレビューする

St. Catherine’s Merchants Quay A, Dublin

いやーなんと2020年7月以来約2年ぶりの記事である.本業多忙でしばらく放置していると,ブログの書き方まで忘れてしまいすっかり億劫になり,今回この夏休みにようやく取り掛かる決心がついた.まずはリハビリも兼ねて軽めの記事を書く事にした.以前の記事(Emacsのorg-modeで論文を書く(その1:pdfとhtmlへの出力))でorg-modeで文書を書いてpdfにexportする方法をまとめた.ただ,exportする際にC-c C-e l oと打ってcompileされるのを待つのが結構面倒なのである.この部分を自動化する方法,つまり,org-mode文書を保存すれば何もしなくても自動的にpdfが更新されるようになる設定を見つけたので,それについてまとめてみた.

Table of Contents

References

Setup

$pdflatex = 'xelatex -interaction=nonstopmode -synctex=1 %O %S';
$pdf_mode = 1;
$postscript_mode = $dvi_mode = 0;
$pdf_previewer  = 'open -a Skim';
$preview_continuous_mode = 1;  # equivalent to -pvc
  • 上記の $pdf_previewer = ‘open -a Skim’; の行で,skimでpdfを開くようにしているが,
$pdf_previewer="emacsclient -e '(find-file-other-window %S)'";

とすれば,emacsのpdf-toolで見られる.

  • そして,org文書の最後に以下を追加すれば良い.
* COMMENT Local Variables
# Local Variables:
# eval: (server-start)
# eval: (add-hook 'after-save-hook 'org-latex-export-to-latex nil t)
# eval: (compile "latexmk -pdf -pvc -pdflatex='xelatex -shell-escape -interaction nonstopmode'")
# End:
  • 以上の設定が終わると,org-modeの文書を開くたびにlocal variablesを評価するかどうかを訊かれるようになる.yesと答えると(‘y’を叩けば良い),emacsclientが接続できるようにサーバーが立ち上がって保存するたびにorg-mode文書がLaTeXにexportされ,最後にバックグランドでlatexmkを用いてコンパイルされ,pdfが更新される.実に快適である.
  • なお,上記の操作の前に一度,C-c C-e loを行なってtex fileを作成しておかないとうまく動かない.1回やっておけば,あとは自動でやってくれるようになる.
  • 私は,xelatexを使用しているが,他のlatexを使用している方はそこの部分を書き換えれば使えるはずである.
  • MacBook Pro (16inch, 2019) 8コアIntel Core i9, 2.4 GHz メモリ: 64 GB (macOS Monterey 12.4)では,保存するたびに少しcompilationを待たないといけないが,MacBook Pro(16インチ、2021)Apple M1 Max コアの総数:10(パフォーマンス: 8、効率性: 2)メモリ: 64 GB (macOS Monterey 12.4)では,待ち時間が明らかに短縮されているのを実感できる.
Avatar
taipapa
本人ではありません (^^)

Related

Next
Previous
comments powered by Disqus