Ubuntu 16.04 LTS 上で Pandoc を使って markdown から PDF を生成する

Ubuntu 16.04 LTS 上で Pandoc を使って markdown から PDF を生成させる方法です.

インストール

apt を使って pandoc をインストールしてもいいのですが,ここでは最新版(1.17.0.2)をインストールします.

Pandoc のウェブページ(http://pandoc.org/)より,pandoc-1.17.0.2-1-amd64.deb をダウンロードします.
次に,dpkg を使って以下のようにインストールします.

$ sudo dpkg -i pandoc-1.17.0.2-1-amd64.deb

pandoc でmarkdown から PDF を生成するために TeX 環境が必要ですので, apt を使って TeXLive 等をインストールします.

$ sudo apt install texlive texlive-lang-cjk texlive-luatex texlive-xetex

以上でインストールは完了です.

PDF の生成

以下の markdown を test.md というファイル名で保存します.

% テスト
% コタ

これはテストデータです.
日本語でも PDF ファイルを生成できます.

- test1
- test2
- test3

PDF の生成は以下のようにします.

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

Pandoc の使い方などは他のページ等でたくさん紹介されていますので,ここでは割愛します.

ハマリポイント

TeXLive 環境が不充分だといろいろエラーが出ます.

最初,texlive と texlive-lang-cjk しかインストールしていなくて,上のように PDF を生成させてみたところ,

! LaTeX Error: File `luatexbase.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name: 
! Emergency stop.
<read *> 
   
l.77   \RequirePackage

pandoc: Error producing PDF

というエラーが出ました.
これは texlive-luatex をインストールすることで解決できます.

しかし,以下のように別のエラーが出るようになります.

! LaTeX Error: File `filehook.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name: 
! Emergency stop.
<read *> 
   
l.21 \newif

pandoc: Error producing PDF

これは texlive-xetex をインストールすることで解決できます.

したがって,TeXLive 環境として,texlive,texlive-lang-cjk,texlive-luatex,texlive-xetex をインストールしないといけないのです.

今日はここまで.

コメント

このブログの人気の投稿

第1回 ラムダ抽象と関数適用

パソコンの Arch Linux に Emacs をインストール

パソコンの Arch Linux に Chrome をインストール