PandocのインストールとPDF生成(macOS)

macOSへのPandocのインストールと日本語を含むPDFの生成。

[2018/09/18 追記]

  • 不要な-sオプションを削除
  • wkhtmltopdf を使用する例を追加

目次#

Pandocのインストール#

Homebrewでインストールしてもいい((最近はバイナリがインストールされるので遅くはないはず))と思うが、公式サイトでパッケージからの手順が紹介されているので、公式パッケージからインストール。

パッケージからインストールする。

Releases · jgm/pandoc · GitHub

拡張子が.pkgのファイルをダウンロードしてダブルクリック。あとは画面の支持に従う。
途中でパスワードを要求されるのでログインする際のパスワードを入力。

MacTex(BasicTexパッケージ)のインストール#

PDFへの変換にLuaTexが必要らしいのでMac向けのTexLiveパッケージのうち軽量版であるMacTexのBasicTexパッケージをインストールする。LuaTexでなくても変換はできるはずなので別途確認予定。

More Packages - MacTeX - TeX Users Group

環境変数PAHTに/usr/local/texlive/2018basic/bin/x86_64-darwin/を追加する。

~/.bashrcに下記を追加。

export PATH=/usr/local/texlive/2018basic/bin/x86_64-darwin/:$PATH

最新版へのアップデートと日本語用パッケージを追加。

$ sudo tlmgr update --self --all
$ sudo tlmgr paper a4
$ sudo tlmgr install collection-langjapanese collection-luatex lm-math

tlmgr updateは結構時間がかかる。他にも使用する機能によっては追加のパッケージのインストールが必要。面倒ならBasicTexではなく通常版(4GBぐらい)を
インストールする。

参考:Mac に最小限の LaTeX 環境を導入する(2018年版) - Qiita

PDF生成#

適当な内容でMarkdownのテキストを用意する

test1.md
# 見出し1

Hellow, Pandoc!

# 見出し2

## 小見出し1

MarkdownからPDFへの変換テストです。

::: 囲み領域

この領域がどう変換されるか。

:::

ここでテキスト終わり。

pandoc+luatexによるPDF変換#

PDF変換のバックエンドとしてLuaTexを指定する場合のメモ。

$ pandoc test1.md -f markdown  -o test1.pdf --pdf-engine lualatex

オプションを指定しないと日本語が表示されず、[WARNING] Missing character: There is no * (U+****) in font [lmroman12-bold]:+tlig;!という警告が表示される(*の部分は文字によって変わる)。

$ pandoc test1.md -f markdown  -o test1.pdf --pdf-engine lualatex -V documentclass=ltjarticle

生成されたPDFファイル

HTML形式にの場合にdivタグに変換されるnative_divs拡張の部分(コロン3つで囲んだ部分)は特別扱いされていない。

luatexのエラーと対処#

Error producing PDF.
! LaTeX Error: File `lualatex-math.sty' not found.

上記のエラーはlm-mathパッケージをインストールすると解決する。

Pandocのアンイストール#

公式パッケージからインストールした場合のアンイストール方法。

公式サイトからアンイストール用のPerlスクリプトを入手。

$ wget https://raw.githubusercontent.com/jgm/pandoc/master/macos/uninstall-pandoc.pl

ダウンロードしたスクリプトを実行する。パスワードを聞かれるので実行したユーザーのパスワードを入力する。

途中でアンイストールしてよいかどうか、確認メッセージが表示されるので”y”と入力。

$ perl uninstall-pandoc.pl

以下は実行ログ。

The following files will be deleted:

/usr/local/bin/pandoc
/usr/local/bin/pandoc-citeproc
/usr/local/share/man/man1/pandoc-citeproc.1
/usr/local/share/man/man1/pandoc.1

Do you want to proceed and uninstall pandoc (Y/N)?y
Password:
Deleted /usr/local/bin/pandoc
Deleted /usr/local/bin/pandoc-citeproc
Deleted /usr/local/share/man/man1/pandoc-citeproc.1
Deleted /usr/local/share/man/man1/pandoc.1
Forgot package 'net.johnmacfarlane.pandoc' on '/'.
Pandoc has been successfully uninstalled.

別解#

デフォルトではTeXを使わずにwkhtmltopdfを使う。必要なディスク容量はこちらのほうが少ない。

細かく外観をいじりたいなら、TeXを使用する方法がベター。

縦書きに対応できるかは試していない。

$ brew cask install wkhtmltopdf

実行方法#

wkhtmltopdfを呼び出したい場合は-t htmlで内部的にHTMLにする。

$ pandoc sample.md -f markdown -t html  -o test2.pdf

もしくは、明示的に--pdf-engine wkhtmltopdfとする。

$ pandoc sample.md -f markdown  -o test3.pdf --pdf-engine wkhtmltopdf

リンク#

以下参考になりそうなエントリ各種。