muse-mode でプレゼン pdf を作る (1)

第 21 回関西 Debian 勉強会で uwabami さんが発表した muse-mode でプレゼン資料を作るネタ (id:sasakyh:20090127) を真似してみる試み。

muse-mode 自体は随分前に導入済みなので、設定を見直して、思惑通りに動いてくれるようにする。したい。

思惑

  • 原稿は muse-mode でダラダラ書く
  • publish:slides で発表用勉強会資料の tex ファイルを作成
  • publish:lecture-notes で配布用勉強会資料の tex ファイルを作成

これらのファイルを勉強会資料のリポジトリにつっこんで、「後は include しておいてー」って出来れば嬉しいんだけど、チェックやら色々作りこんでいる都合でそれは無理っぽい。

tex ファイルはマージすることを考えると、単体ではコンパイルできないパーツにしておいて、手元で preview する時だけヘッダがつくようにすればいい?

試行錯誤

uwabami さんの設定と原稿ファイルをもとに、とりあえずまっとうな出力ができることを目標に、いろいろ試してみた。

;;;;;;;;;;;;
;; muse-mode
(require 'muse)
(require 'muse-colors)
(require 'muse-mode)
(require 'muse-html)
(require 'muse-latex)
(require 'muse-latex2png)
(require 'muse-texinfo)
(require 'muse-docbook)
(require 'muse-wiki)
(require 'muse-project)

(setq
      muse-xhtml-charset-default "euc-jp"
      muse-html-encoding-default 'euc-jp
      muse-html-meta-content-encoding 'euc-jp
      muse-latexcjk-encoding-default (cdr (assoc 'euc-jp-unix muse-latexcjk-encoding-map))
      muse-latex-pdf-browser "evince %s &"
      muse-latex-pdf-program "latexmk"
      muse-latex-pdf-cruft '(".aux" ".toc" ".out" ".log" ".aux.bak" ".snm" ".nav" ".dvi" ".fdb_latexmk") 
      muse-footer-date-format "%Y-%m-%d"
      muse-file-extension nil
      muse-mode-auto-p t
;      muse-latex-slides-header "~/.emacs.d/template/beamer-header.tex"

      muse-latex2png-scale-factor 1.25
      muse-latex2png-img-dest "./img"
      muse-latex2png-use-xhtml t
      )

(muse-derive-style "slides-pdf"
                   :strings
                   :header "~/.emacs.d/template/beamer-header.tex")

(add-hook 'find-file-hooks 'muse-mode-maybe)
(rplacd (assoc "\\.howm$" auto-mode-alist) 'muse-mode)

(define-key ctl-x-map "M" 'muse-project-find-file)

beamer-header.tex は、勉強会リポジトリから発表資料のヘッダを適当に流用したもの。これまでのところ、一番苦労したのは muse-latex-pdf-program で、最初はここに dvipdfmx と設定して迷走してしまった。

結局、muse が出力するのは *.tex で、dvipdfmx は dvi → pdf の変換をするので、tex → dvi のところが処理されていなかったのが原因だったようだ。muse デフォルトだとここは pdflatex になるので、日本語を使わないならこれで tex から pdf まで一気に変換してくれるらしい。

uwabami さんの設定では latexmk-pdf とされていたので、sid で aptitude install latexmk してみたけど、pdf にまつわる設定は特に見当たらなかった。多分自作のスクリプトか何かだろうなー、と思いながら本家の latexmk ページを見ると、どうも最新版では dvipdfmx に渡すオプションもあるようだ。debian のパッケージは暫く放置されているようだったので、apt-get source して無理矢理最新に追従させてみた。

これで、muse からは latexmk を呼ぶだけで、後は latexmk の設定で適当に pdf まで変換してくれるように出来た。日本語も問題なし。impressive での表示も可能。

課題

  • beamer の書式がよくわかってない
  • 勉強会リポジトリとの整合性はもうちょっと調整しないとダメ
  • lecture-note には着手できず

感想

TeX 面倒。記事書いて渡すだけなら一定の書式覚えるだけの話だけどねぇ。