Edited at

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

More than 5 years have passed since last update.

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")

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

知らなかった...