(更新:2023年6月10日)
私はよくTwitterでPandocをキーワードに検索するのですが、
Pandocのインストールについて「失敗した」「難しい」という声をよく聞きます。
実際には、Pandocはなじみ深いインストーラでインストールできます。
またコマンドラインでのインストールも、思ったよりも難しくありません。
(おすすめの方法には「★」を付けています。よければ参考にしてください)
★マウスで簡単:Pandoc公式インストーラを使う
【Pandocバージョン:最新】
最も簡単な方法はこれです。
コマンドラインにあまり馴染みのない方は、インストーラを使うことをおすすめします。
まず、下記のダウンロードページに行きます。
リストの中から、自分のOSに合ったものを選んでください。
(3.x.x
の部分はバージョン番号なので、その都度変わります。バージョンは最新版・一番上のものを選んでください)
- pandoc-3.x.x-arm64-macOS.pkg
- macOS(最近のMac、Apple Silicon: M1/M2チップ等)の場合
- pandoc-3.x.x-x86_64-macOS.pkg
- macOS(古いMac、Intelチップ)の場合
- pandoc-3.x.x-windows-x86_64.msi
- Windows(64bit)の場合
- pandoc-3.x.x-windows-i386.msi
- 古いWindows(32bit)の場合
あとは、ダブルクリックをして、インストーラの指示に従えばPandocをインストールできます。
ただし、Pandoc本体を使う際はコマンドラインでpandoc
を使う必要があります。
- macOS:ターミナル
- Windows:コマンドプロンプト または PowerShell
インストールが完了していれば、pandoc -v
コマンドで次のようにPandocのバージョンや情報が表示されるはずです。
$ pandoc -v
pandoc 3.1.3
Features: -server +lua
Scripting engine: Lua 5.4
User data directory: /home/sky_y/.local/share/pandoc
Copyright (C) 2006-2023 John MacFarlane. Web: https://pandoc.org
This is free software; see the source for copying conditions. There is no
warranty, not even for merchantability or fitness for a particular purpose.
コマンドで簡単:OSのパッケージマネージャでインストール
その次にお手軽なのは、各OSに対応したパッケージマネージャを使う方法です。
バージョンが古い場合があることに注意すれば、コマンドラインを普段から使う人には最もおすすめです。
★Mac:Homebrew
【Pandocバージョン:比較的新しい】
macOSではHomebrewが利用できます。
Homebrew本体のインストール方法は公式サイトを参照してください。
$ brew install pandoc
最後に pandoc -v
でバージョンを確認してください。
Windows
Windows環境の場合は、次の場合分けがあります。
- Win(1) コマンドプロンプト・PowerShell
- Windowsのネイティブ環境
- Chocolateyを利用
- Win(2) WSL(Ubuntuアプリなど)
- Linux環境と同様
- 下記「パッケージマネージャでインストール」「Haskell向けパッケージマネージャでインストール」を参照
Win(1) コマンドプロンプト・PowerShell:Chocolatey
【Pandocバージョン:比較的新しい】
コマンドプロンプト・PowerShellでは、Chocolateyが利用できます。
(どちらか一方でインストールすれば、両方で使えます)
1行スクリプトをコマンドプロンプトに貼り付けて実行します。
Chorolatey本体のインストール方法
(参考:Installation - Chocolatey)
a) コマンドプロンプトを使う場合
**コマンドプロンプト(管理者権限付き)**を開きます。
(Windows 10:検索バーで「cmd」と検索→右クリックで「管理者として実行」をクリック)
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
b) PowerShellを使う場合
**PowerShell(管理者権限付き)**を開きます。
(Windows 10:検索バーで「powershell」と検索→右クリックで「管理者として実行」をクリック)
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
最後に pandoc -v
でバージョンを確認してください。
Chocolateyを使ったPandocのインストール
Chocolateyがインストールできたら、下のコマンドでPandocをインストールします。
> cinst pandoc
コマンドプロンプトでpandoc -v
を試してみて、 うまく起動できない場合は一旦ログオフして再ログオンしてみてください。
Linux / Win(2) WSL(Ubuntuアプリなど)
Linux環境(およびWindowsのWSL環境)では、次の2つの方法があります。
- a) OS側パッケージマネージャの公式リポジトリを用いる方法
- b) Pandoc公式のパッケージを用いる方法
a) OS側パッケージマネージャの公式リポジトリを用いる方法
【Pandocバージョン:古い場合が多い(注意)】
Ubuntu/Debianの場合はapt-get
、Redhat系(CentOS, Fedoraなど)はyum
を利用します。
Windows 10以降で利用できるUbuntuアプリを利用する場合も、apt-get
でインストールします。
(注意: この方法でインストールされるPandocは割と古いことが多いので、後述の方法をおすすめします)
# apt (apt-getでも可)
$ sudo apt update
$ sudo apt install pandoc
# yum
$ sudo yum update
$ sudo yum install pandoc
最後に pandoc -v
でバージョンを確認してください。
b) ★Pandoc公式のパッケージを用いる方法
【Pandocバージョン:最新】
Pandoc公式の Releases · jgm/pandoc から、最新版のパッケージを直接ダウンロードすれば、簡単かつ最新版を確実にインストールできます。
たとえばDebianやUbuntuなどでは、次のようにインストールできます。(バージョン番号は適宜読み替えてください)
$ wget https://github.com/jgm/pandoc/releases/download/2.9/pandoc-2.9-1-amd64.deb
$ sudo dpkg -i pandoc-2.9-1-amd64.deb
CentOSなどRedHat系では、alienというツールでdebファイルをrpmに変換できるようです。
(試してないのでうまくいった方はコメントお願いします)
debパッケージをrpm形式に変換する「alien」 | web net FORCE
$ sudo alien --to-rpm --scripts pandoc-2.9-1-amd64.deb
$ sudo rpm -ivh pandoc-2.9-1-amd64.rpm
一般のLinuxディストリビューション向けには、tarballの中身を /usr/local
などに展開する方法もあります。
$ wget https://github.com/jgm/pandoc/releases/download/2.9/pandoc-2.9-linux-amd64.tar.gz
$ tar xvzf pandoc-2.9-linux-amd64.tar.gz --strip-components 1 -C /usr/local
最新版を使いたい:Haskell向けパッケージマネージャでインストール
- この記事の公開初期はcabal sandboxを使った方法を紹介していました。
2018年9月現在ではStackを使った方法を推奨します。- 2019年12月現在ではghcupを使った方法を推奨します。
Pandocは比較的開発ペースが速い方のツールなので、最新機能やバグ修正がすぐに出てきます。
上記のようなパッケージマネージャのPandocはバージョンが古い場合もあります。
システム(OS)のパッケージマネージャでPandocの最新バージョンを利用できない場合は、Haskell向けパッケージマネージャを用いたインストールを推奨します。(PandocがHaskellで書かれているためです)
★ghcupを用いたインストール
【Pandocバージョン:最新】
2019年12月現在において
- 確実に最新版をインストールできる
- (コマンドラインに慣れていれば)比較的手軽である
という観点でお勧めしやすいのが、ghcupを用いた方法です。
PandocはGHCというコンパイラによってビルドされます。そのGHCおよび関連ツールチェイン(Cabalなど)を楽にインストールするべく近年に開発されたのが、ghcupです。
pandoc
コマンド、および Hackageに登録されたpandoc関連フィルタ・ライブラリ を簡単にインストール可能です。
インストール手順
$ curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
# (質問されるので、答えながら進める)
# 上記インストール中にPATHを通すかどうか聞かれる
# ①通すように設定した→ここはスキップ
# ②設定してない→手動で ~/.cabal/bin と ~/.ghcup/bin にパスを通す
## ②-1 Bashの場合 (.bashrcでsourceする)
$ echo 'source "$HOME/.ghcup/env"' >> $HOME/.bashrc
## ②-2 Fishの場合 (パスを追加する)
$ set -U fish_user_paths ~/.ghcup/bin $fish_user_paths
$ set -U fish_user_paths ~/.cabal/bin $fish_user_paths
# 下記のような表示が出たら、いったんインストーラを中止して
# 依存パッケージをインストールする
# System requirements
# Please ensure the following distro packages are installed before continuing
# (you can exit ghcup and return at any time):
# build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
# シェルを再起動する
# バージョンを確認(Cabal 3.0以降を使いたい)
$ cabal --version
cabal-install version 3.6.2.0
compiled using version 3.6.2.0 of the Cabal library
$ cabal update
# Pandoc本体のインストール
$ cabal install pandoc-cli
# 必要なHaskell製Pandocフィルタのインストール
$ cabal install pandoc-crossref
最後に pandoc -v
でバージョンを確認してください。
ghcup/cabalを用いたアップグレード
ghcupおよびcabalを用いた場合、PandocおよびHaskell製フィルタのアップグレードは、まとめて同様にcabal update
およびcabal install
で可能です。
ただし既存のバイナリに対するシンボリックリンクを張り替える際にエラーが出るため、
アップグレードの際はcabal install
に--overwrite-policy=always
をつけ加えてください。
$ cabal update
$ cabal install --overwrite-policy=always pandoc-cli pandoc-crossref
補足1:バージョンによる差異
Pandoc 2.11からpandoc-citeproc
のインストールは不要になりました。
参考: Pandocで参考文献リストを処理する扱う方法 (PandocとZoteroで参考文献:後編)
またPandoc 3.0から、Cabal(Hackage)のパッケージ名が変更されました。
- 旧:
pandoc
- 新:
pandoc-cli
補足2:cabal: installdir is not defined.
の場合
もし cabal new-install
で cabal: installdir is not defined. Set it in your cabal config file or use --installdir=<path>
と言われたら、次の手順で .cabal/config
ファイルをアップデートしてください。
$ cabal user-config update
補足3:pkg-config
がない場合
下記エラーメッセージが出るときがあります。
cabal-3.6.2.0: The program 'pkg-config' version >=0.9.0 is required but it
could not be found.
cabal: Failed to build digest-0.0.1.7 (which is required by
exe:pandoc-crossref from pandoc-crossref-0.3.16.0). See the build log above
for details.
その際は pkg-config
をOSのパッケージマネージャなどで別途インストールしてください。
Ubuntu/Debianの場合は下記の通りです。
$ sudo apt install pkg-config
補足4:Cabalのバージョン間の違い
Cabal 3.0では古いバージョン(v1-
)と新しいバージョン(new-
またはv2-
)の2つのコマンド体系・ビルドシステムを持っています。
ghcupを使うと、Cabal 3.0以降がインストールされるはずです。
Cabal 3.0以降では、デフォルトは新しいバージョンのコマンド体系です。つまり下記は同じです。
cabal install pandoc
cabal new-install pandoc
cabal v2-install pandoc
古いCabalだと、うまくインストールできないかもしれません(別の方法でインストールしたCabalがパスに入ってるかもしれません)。
バージョンを cabal --version
で確かめてください。
参考: cabal コマンドとの対応表
Stackを用いたインストール
【Pandocバージョン:比較的新しい(最新ではないので注意)】
StackはHaskellを用いた開発でよく用いられるビルドツールです。このStackを使って直接、最新版のPandocをインストールすることも可能です。「HaskellライブラリとしてのPandoc」を呼びだす際にも使えるので、自前でHaskell製のPandocフィルタを開発するパワーユーザにとっては便利でしょう。
※ 2019年12月現在において、筆者は「一般ユーザ向けにStackによるインストールは推奨しない」という判断をしました。
StackはStackageというパッケージリポジトリによってHaskellライブラリ間の互換性を保持しています。これは開発においてメリットとなりますが、安定リリース版(LTS Haskell)のPandocバージョンがPandoc公式の最新バージョンよりもやや遅れる傾向があります。
Stackを用いる方法はghcupとそんなに手間が変わらない割にメリットが薄いため、あくまでも「HaskellでPandoc関連のプログラムを書く」つもりがある場合のみ推奨します。(StackでPandocの最新版を利用したい場合は、Stackage Nightlyを用いる方法もあります)
例(2019-12-20時点):
- Pandoc公式最新版: Pandoc 2.9(2019-12-12リリース)
- Stack (Stackage / lts-14.17): Pandoc 2.7.2(2019-04-06リリース)
Stackのインストール
- macOS(Homebrew)
$ brew install stack
- Windows
- インストーラーをダウンロードしてインストール
- その他のインストール方法は下記参照
Stackを用いたPandocのインストール
$ stack install pandoc
最後に pandoc -v
でバージョンを確認してください。
※ 手動でソースコード (jgm/pandoc) をダウンロードしてインストールしたい場合は、公式サイトの手順を読んでください。
おまけ1:PandocでPDFを出力するためのインストール手順
Pandocだけでは、PDFを直接出力できません。他のソフトの力を借りることになります。
Pandocを用いて日本語文書から直接PDFに変換するためには、次の方法があります。
- wkhtmltopdf
- 内部でHTMLに変換してからPDFに出力する
- 手っ取り早い(HTML/CSSで調整は可能)
- そのままでは印刷所に入稿できない?(実例求む)
- LuaLaTeX または XeLaTeX
- 組版の高度なカスタマイズができる
- 同人印刷所への入稿も可能
- 欧文TeX環境として有名なpdfLaTeX(Pandocのデフォルト設定)は、日本語組版をうまくできない
- 日本語圏で有名なpLaTeXは、Pandocのサポート対象外
※ 「Word(-t docx
)またはLibreOffice Writer(-t odt
)に出力して、Word/WriterでPDFに変換する」方法もあります。
wkhtmltopdfを使う場合のコマンド例(どちらでもOK)
$ pandoc hoge.md -s -o hoge.pdf -t html5
$ pandoc hoge.md -s -o hoge.pdf --pdf-engine=wkhtmltopdf
LuaLaTeXを使う場合のコマンド例(ltjsarticle
という、LuaTeX-jaによる日本語文書向けドキュメントクラスを使用)
pandoc hoge.md -o hoge.pdf -V documentclass=ltjsarticle --pdf-engine=lualatex
こちらも参照: メモ: Pandoc+LaTeXで気軽に日本語PDFを出力する - Qiita
wkhtmltopdfのインストール
wkhtmltopdfのダウンロードページから、自分に合ったOSのものをダウンロードしてください。
- Windows(最新バージョンの場合): MSVC win64
- macOS(最新バージョンの場合): Cocoa 64-bit
あるいは、上記の各種パッケージマネージャでもインストールできるはずです(割愛します)。
TeX環境のインストール
最も手っ取り早くTeX環境をインストールするには、TeXLive(scheme-full)を利用するのが無難です。
全部入りなので、パッケージが足りなくてトラブルになることが少ないからです。
ただし、TeXLiveのscheme-fullは非常に巨大(数GB)なので、ディスク容量に余裕を持たせてからインストールを実行しましょう。
Windowsの場合は「TeXインストーラ 3」がお手軽かつ容量少なめのようです。
LuaLaTeX/XeLaTeXも含まれているので、通常の用途で困ることはあまりないでしょう。
以下、インストール方法はTeX Wikiの説明に譲ります。
- TeX Live - TeX Wiki
- Windows
- 簡単:TeXインストーラ 3
- 詳細は W32TeX - TeX Wiki を参照
- 全部入り:TeX Live/Windows - TeX Wiki
- 簡単:TeXインストーラ 3
- macOS
TeX環境の容量小さくしたい①:インストーラプロファイルを指定する
(2019-12-20:BasicTeXを用いた方法を削除しました)
Tex Live公式インストーラ install-tl
に、インストーラプロファイルというファイルを指定することで、インストールしたいもの・したくないものを指定できます。インストール容量を小さくしたい方は検討してみてください。
詳細はmunepiさんの インストーラープロファイルを用いてTeX Liveをインストールしよう - Qiita をご覧ください。
munepiさんによるプロファイルの例:review-tl18current.profile
-
scheme-minimal
をベースにする - 下記のcollectionに属するパッケージをインストール
collection-binextra
collection-langjapanese
collection-latexextra
collection-xetex
collection-luatex
collection-fontsrecommended
- ドキュメント (
option_doc
) とソースコード (option_src
) をインストールしない
なお、上記で足りない場合は tlmgr install
を使って適宜パッケージをインストールすることも可能です。
なお tlmgr install
で指定する名前については、 \usepackage
で指定する名前と異なる場合があるので注意が必要です。
TeX環境の容量小さくしたい②:TinyTeX
統計処理のための環境 R にまつわるエコシステムでは、R Markdownやknitrのようなドキュメントシステムが充実しており、バックエンドでPandocが用いられているようです。
TinyTeXは、R (RStudio)で使うことを想定したTeX Live派生のTeXディストリビューションです。Rユーザが最低限使うもののみを選んでいるため軽量であることが特徴で、RユーザはこれをR側からインストールできますし、Rを使わず直接インストールも可能です。
(この場合でも collection-langjapanese
や必要な日本語フォントのインストールなどは別途必要です)
- TinyTeXを使って10分で(R向けの)LaTeX環境を整える - Qiita
- ノート: R Markdown: pdf編
- TinyTeXのインストール & RmarkdownでPDF on Ubuntu 18.04 LTS - 備忘録@かすみがおか
おまけ2:DockerでPandocを使う
最近、Pandoc公式のリポジトリ pandoc/dockerfiles で、Pandocを簡単に利用できるDockerfileが公開されています。いずれもAlpine Linuxベースです。
- Core image: pandoc/core
- Latex image: pandoc/latex
ただしPDFエンジンにLaTeXを用いる場合は、このままでは日本語ファイルの扱いに難があります。
pandoc/latex ではTeX Liveがインストールされており、tlmgr
も利用できます。実際にはDockerfileを自分で書くときに、上記をイメージのベースとして、足りないTeX Liveのパッケージやフォントを追加するとよいでしょう。(別にまとめたいと思うので、しばらくお待ちください……)
また、日本人有志によるPandoc用Dockerfileもいくつか存在します。
- K4ZUKIさん
- 吉村 優さん
- kojix2さん
-
楽にDockerで日本語Pandocする - Qiita
- Pandoc公式イメージpandoc/latexに
make
とtlmgr install collection-langjapanese
を入れたもの
- Pandoc公式イメージpandoc/latexに
-
楽にDockerで日本語Pandocする - Qiita
おまけ3:pandoc-crossrefのインストール
Pandoc's Markdownで相互参照を実現するにはpandoc-crossrefをインストールします。
基本的には下記の手順です。
- releasesのバイナリをダウンロード・展開する
- PATHが通ったディレクトリ(
/usr/local/bin
など)か、Pandocのユーザデータディレクトリのfilter
以下にバイナリを置く
ユーザデータディレクトリの場所はpandoc -v
で出てきます。
$ pandoc -v
pandoc 3.1.3
Features: -server +lua
Scripting engine: Lua 5.4
User data directory: /home/sky_y/.local/share/pandoc
Copyright (C) 2006-2023 John MacFarlane. Web: https://pandoc.org
This is free software; see the source for copying conditions. There is no
warranty, not even for merchantability or fitness for a particular purpose.
上記の場合、フィルタを置くべき場所は
/home/sky_y/.local/share/pandoc/filter
# つまり
$HOME/.local/share/pandoc/filter
です。
ghcupを用いる場合は、すでに示した通り cabal install pandoc-crossref
でインストールできます。