« ^ »

EmacsのOrg-modeのドキュメントをLaTeXを使用してPDFに変換する

所要時間: 約 2分

TL;DR

  • 契約書をOrg-modeで作成しPDFとして生成する環境を整えた。
  • PDFの生成にはMacTeXを用い、platex、dvipdfmxを用いてPDFを生成した。
  • Org-modeからPDF生成を一気通貫するためのコマンドを実装した。


仕事で契約書を作成する必要が出てきたが契約書の元データ自体はOrg-modeで記述したい。そこで今回はOrg-modeのファイルをLaTeXを経由してPDFに生成する。

MacTeXをインストールする

macOSでTeXを使えるようにするためにMacTeXをインストールする。 GUIツールは不要なためmactex-no-guiというHomebrewのFomulaを指定してインストールする。

brew install --cask mactex-no-gui

インストールにはそこそこ時間がかかる。インストールが終ったらパスを通しておく。

Bashの場合は次のように設定する。

export PATH=/usr/local/texlive/2021/bin/universal-darwin:$PATH
Bashの例

Emacsから使う場合は次のように設定する。パスはそれぞれの環境でことなる。

(add-to-list 'exec-path "/usr/local/texlive/2021/bin/universal-darwin")  ;; TexLive
(setenv "PATH" (string-join exec-path ":"))
Emacsの例

TeXファイルを生成する

orgファイルをEmacsで開き M-x org-latex-export-to-latex を実行する。 成功すると.texという拡張子のファイルが生成されている。

TeXファイルをDVIファイルに変換する

platexコマンドを使ってTeXファイルをDVIファイルに変換する。 以下の例ではtesting.texというTeXファイルを変換する。

platex testing.tex

成功するとtesting.dviというファイルが生成される。

DVIファイルをPDFファイルに変換する

dvipdfmxコマンドを使ってDVIファイルをPDFファイルに変換する。以下の例ではtesting.dviというTeXファイルを変換する。

dvipdfmx testing.dvi

成功するとtesting.pdfというファイルが生成される。

PDF生成までをEmacsで行う

org-latex-export-to-pdfが定義されているが、文字コード関連で動作しなかった。 そのためコマンドを直接起動する形で独自に実装した。 https://github.com/TakesxiSximada/emacs.d/commit/9cf402c7729136e8dde9f9ae14b12750163ac3b1

環境

OSmacOS Big Sur
Homebrew3.3.8-53-gb0d3644
Homebrew/homebrew-core(git revision 2bea919d87e; last commit 2021-12-04)
Homebrew/homebrew-cask(git revision 1ded80af36; last commit 2021-12-17)