気になることメモ

日常の気になることを、とにかくメモしていきます。

【小ネタ】PandocでMarkdownからPDF変換

1. PandocでMarkdownをPDFに変換

ネットで調べると、PandocというHaskell製のドキュメント変換ツールでMarkdownからPDFを生成できるらしいです。ということで、Pandoc環境をつくろう!となったのですが、なんか苦労したのでメモです。

対象環境は、以下の通りです。
- Ubuntu 14.04 Desktop
- LaTeXはインストール済み

Ubuntuに対してLaTeX(日本語環境)をインストールするには、下記のコマンドを実行します。

# apt-get install texlive-lang-cjk

参考サイト
1. 多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう
2. Font OT1/ptm/m/n/9=ptmr7t at 9.0pt not loadable: Metric (TFM) file not found
3. lualatex query

2. Pandocをインストール

PandocをUbuntuへインストールのは、おなじみapt-getでインストールOKです。

# apt-get install pandoc

この状態で変換を掛けてみます。

$ pandoc -t beamer target.md -o target.pdf

するとエラーが出ました。

pandoc: Error producing PDF from TeX source.
! Font \T1/cmr/m/n/10=ecrm1000 at 10pt not loadable: metric data not found or bad.
<to be read again> 
relax 
l.100 \fontencoding\encodingdefault\selectfont

変換されるのをワクワク待っていたので、地味に凹みました。
ネット(参考サイト2.)を見ると、fontsを入れろとのことです。

# apt-get install texlive-fonts-recommended

無事にインストールが終わった後、再度実行してもエラーです。ちなみに実行時、参考サイト1を見ると、下記のオプションで変換するようでした。そのため、これ以後、下記のオプションでPandocを実行します。

$ pandoc input.md -o output.pdf -V documentclass=ltjarticle --latex-engine=lualatex  

下記は実行時のエラーです。

pandoc: Error producing PDF from TeX source.
! Package fontenc Error: Encoding file `eu2enc.def' not found.
(fontenc)                You might have misspelt the name of the encoding.

See the fontenc package documentation for explanation.
Type  H <return>  for immediate help.
...                                              

l.99 \ProcessOptions*

参考サイトの3を見ると、「eneuc」パッケージをインストールしろとの事でした。「apt-cache search eneuc」で検索すると、texlive-xetexパッケージに含まれているようです。texlive-xetexをインストールします。

# apt-get install texlive-xetex

さて、これで再度、Pandocを実行します。下記のオプションで実行します。(再掲)

$ pandoc input.md -o output.pdf -V documentclass=ltjarticle --latex-engine=lualatex

無事にPDFに変換出来ました!

どうも書式がおかしいですが、なんとか、日本語のMarkdownをPDFに変換する事ができました。お疲れ様でした。