日本語のMarkdownをPDFに変換する
Markdown 形式でメモしていると,Markdown のプレビューが可能なソフトウェアを使用する必要があります.
フォーマットを自由に変更したいとき,あるいは書類として作成したいときには PDF に変換するのがおすすめです.
Pandoc
Markdown から PDF に変換するには,Pandoc というソフトウェアを利用します.
Pandoc は Markdown→PDF 以外にもさまざまな文書の変換を提供しています.
以前に,Markdown からパワーポイントや PDF でスライドを生成したときにも利用しました.
利用環境
本記事は Unix 環境を前提に説明しています.Windows 環境では本記事の通りに進められないため,ご留意ください.
また,Pandoc で PDF に変換する際に TeX の機能を利用するため,TeX の環境構築が必要です.
以下の記事や公式ドキュメントなどを参考に,予め環境を用意してください.
変換方法
文書に日本語が含まれない場合,PDF への変換は以下のコマンド一行で実行できます.
terminal
$ pandoc path/to/example.md -s -o path/to/output.pdf
オプションのうち,-s
はスタンドアローンでの起動,-o
は出力先のパス,ファイル名の指定になります.
文書に日本語が含まれる場合はフォントが対応せず,エラーが表示される場合は,TeX を利用して変換しなければならないため,--pdf-engine
を指定します.
xelatex
または lualatex
を指定するようにとコマンドで案内されますが,いずれにおいても以下のエラーが表示されることがあります.
[WARNING] Missing character: There is no は (U+306F)(U+306F) in font [lmroman10-regular]:mapping=t
この場合は,オプションでドキュメントクラスや使用するフォントを指定します.
terminal
$ pandoc path/to/example.md -s -o path/to/output.pdf --pdf-engine=lualatex -V documentclass=ltjsarticle -V luatexjapresetoptions=hiragino-pron
上記以外にもさまざまなパターンがあるようなので,詳細は以下記事をご覧ください.
参考:メモ: Pandoc+LaTeX で気軽に日本語 PDF を出力する - Qiita
(Option)コマンド化
毎回長いコマンドを打たなくても良いように,コマンドを登録します.
※予め ~/bin
のパスを通しています.
terminal
$ nano ~/bin/md2pdf
md2pdf
pandoc $1 -s -o $2.pdf --pdf-engine=lualatex -V documentclass=ltjsarticle -V luatexjapresetoptions=hiragino-pron
実行権限も追加しておきます.
terminal
$ chmod +x ~/bin/md2pdf
上記の設定を行うと,以下のように呼び出すことができます.
terminal
$ md2pdf path/to/example.md path/to/output