org-mode 8.0で変わった変数など

  • 21
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

GWは気づいたらorgmodeで遊んでた...
org-modeを久しぶりに更新したらいくつか動かなくなったのでメモ。

exportまわりが変わりましたね。ファイル名が、ox-*.elという名前空間になったようです。
(例: org-latex.el -> ox-latex.el)
C-c C-eしたときに出てくるバッファもめっちゃ変わりました。DocBookとかOpenDocument出力とか無くなってるんだけど需要ないのかな...?

他にも変わっているかもしれませんが、とりあえず気づいた部分だけ。

org-latex-pdf-process

org-modeからLaTeX経由でPDFにするプロセスを指定する
7.xまでは、org-latex-to-pdf-process でしたが、8になってからは、org-latex-pdf-processという変数になったようです。

例えば、LaTeXからPDFにするときpdflatexを呼び出すとき、init.elに

(setq org-latex-pdf-process
      '("pdflatex %f" "pdflatex %f" "pdflatex %f"))

と記述すればよいみたいです。(ちなみにpdflatexだと日本語を含んだ文書のタイプセットはできない)

org-latex-classes

org-modeでいろんな文書のタイプ(LaTeXでクラスファイルjsarticleやjsbookを指定したり、その他styファイルをインクルードする)を指定するとき
7.xまでは、org-export-latex-classes でしたが、8になってからは、org-latex-classesという変数になったようです。

例えば、jsarticleとjsbookを変数に登録する場合、init.elに

(setq org-latex-classes '(("jsarticle"
            "\\documentclass{jsarticle}
\\usepackage[dvipdfmx]{graphicx}
\\usepackage{url}
\\usepackage{atbegshi}
\\AtBeginShipoutFirst{\\special{pdf:tounicode EUC-UCS2}}
\\usepackage[dvipdfmx,setpagesize=false]{hyperref}
 [NO-DEFAULT-PACKAGES]
 [PACKAGES]
 [EXTRA]"
            ("\\section{%s}" . "\\section*{%s}")
            ("\\subsection{%s}" . "\\subsection*{%s}")
            ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
            ("\\paragraph{%s}" . "\\paragraph*{%s}")
            ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
               ("jsbook"
            "\\documentclass{jsbook}
\\usepackage[dvipdfmx]{graphicx}
\\usepackage{url}
\\usepackage{atbegshi}
\\AtBeginShipoutFirst{\\special{pdf:tounicode EUC-UCS2}}
\\usepackage[dvipdfmx,setpagesize=false]{hyperref}
 [NO-DEFAULT-PACKAGES]
 [PACKAGES]
 [EXTRA]"
            ("\\chapter{%s}" . "\\chapter*{%s}")
            ("\\section{%s}" . "\\section*{%s}")
            ("\\subsection{%s}" . "\\subsection*{%s}")
            ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
            ("\\paragraph{%s}" . "\\paragraph*{%s}")
            ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
               ))

みたいな感じに書くようです。
(ここら辺の内部について詳しくは調べてないのでソースコードなりヘルプを出して見るべし)

デフォルトクラス

多分7.xでもあると思うので余談になりますが、#+LATEX_CLASSを書かないと標準では、articleクラスが選ばれます。
こいつは日本語用のクラスではないので、今まで毎回クラスを指定していました。
調べていたついでに、org-latex-default-classという変数を発見しました。
どうやらクラスを指定しないと、この変数の値が自動的に使われるようです。

上記の例で、jsarticleをデフォルトにするには、

(setq org-latex-default-class "jsarticle")

とすれば良いらしいです。

知らなかった...