Help us understand the problem. What is going on with this article?

Pandocの比較的簡単なインストール方法

(更新:2020年2月23日)

私はよくTwitterでPandocをキーワードに検索するのですが、
Pandocのインストールについて「失敗した」「難しい」という声をよく聞きます。

実際には、Pandocはなじみ深いインストーラでインストールできます。
またコマンドラインでのインストールも、思ったよりも難しくありません。

(おすすめの方法には「★」を付けています。よければ参考にしてください)

★マウスで簡単:Pandoc公式インストーラを使う

【Pandocバージョン:最新】

最も簡単な方法はこれです。
コマンドラインにあまり馴染みのない方は、インストーラを使うことをおすすめします。

まず、下記のダウンロードページに行きます。

https://github.com/jgm/pandoc/releases/latest

リストの中から、自分のOSに合ったものを選んでください。

2.x.xの部分はバージョン番号なので、その都度変わります。バージョンは最新版・一番上のものを選んでください)

  • pandoc-2.x.x-macOS.pkg
    • macOSの場合
  • pandoc-2.x.x-windows-x86_64.msi
    • Windows(64bit)の場合
  • pandoc-2.x.x-windows-i386.msi
    • 古いWindows(32bit)の場合

あとは、ダブルクリックをして、インストーラの指示に従えばPandocをインストールできます。

ただし、Pandoc本体を使う際はコマンドラインでpandocを使う必要があります。

  • macOS:ターミナル
  • Windows:コマンドプロンプト または PowerShell

インストールが完了していれば、pandoc -v コマンドで次のようにPandocのバージョンや情報が表示されるはずです。

$ pandoc -v
pandoc 2.9
Compiled with pandoc-types 1.20, texmath 0.12, skylighting 0.8.3
Default user data directory: /home/sky_y/.local/share/pandoc or /home/sky_y/.pandoc
Copyright (C) 2006-2019 John MacFarlane
Web:  http://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 https://get-ghcup.haskell.org -sSf | sh
(Enterキーを押して進める)

# ~/.cabal/bin と ~/.ghcup/bin にパスを通す
## Bashの場合 (.bashrcでsourceする)
$ . "$HOME/.ghcup/env"
$ echo '. $HOME/.ghcup/env' >> "$HOME/.bashrc"

## Fishの場合 (パスを追加する)
$ set -U fish_user_paths ~/.ghcup/bin $fish_user_paths
$ set -U fish_user_paths ~/.cabal/bin $fish_user_paths

# バージョンを確認(Cabal 3.0を使いたい)
$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library

$ cabal new-update

# Pandoc本体のインストール
$ cabal new-install pandoc

# 必要なHaskell製Pandocフィルタのインストール
$ cabal new-install pandoc-citeproc pandoc-crossref

もし cabal new-installcabal: installdir is not defined. Set it in your cabal config file or use --installdir=<path> と言われたら、次の手順で .cabal/config ファイルをアップデートしてください。

$ cabal user-config update

最後に pandoc -v でバージョンを確認してください。

ghcup/cabalを用いたアップグレード

ghcupおよびcabalを用いた場合、PandocおよびHaskell製フィルタのアップグレードは、まとめて同様にcabal new-updateおよびcabal new-installで可能です。

ただし既存のバイナリに対するシンボリックリンクを張り替える際にエラーが出るため、
アップグレードの際はcabal new-install--overwrite-policy=alwaysをつけ加えてください。

$ cabal new-update
$ cabal new-install --overwrite-policy=always pandoc pandoc-citeproc pandoc-crossref

補足:Cabalのバージョン間の違い

Cabal 3.0では古いバージョン(v1-)と新しいバージョン(new-)の2つのコマンド体系・ビルドシステムを持っています。
ghcupを使うと、Cabal 3.0以降がインストールされるはずです。

古い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時点):

Stackのインストール

Stackを用いたPandocのインストール

$ stack install pandoc

最後に pandoc -v でバージョンを確認してください。

※ 手動でソースコード (jgm/pandoc) をダウンロードしてインストールしたい場合は、公式サイトの手順を読んでください。

Pandoc - Installing pandoc

おまけ: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環境の容量小さくしたい①:インストーラプロファイルを指定する

(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 や必要な日本語フォントのインストールなどは別途必要です)

おまけ:DockerでPandocを使う

最近、Pandoc公式のリポジトリ pandoc/dockerfiles で、Pandocを簡単に利用できるDockerfileが公開されています。いずれもAlpine Linuxベースです。

ただしPDFエンジンにLaTeXを用いる場合は、このままでは日本語ファイルの扱いに難があります。

pandoc/latex ではTeX Live ()がインストールされており、tlmgrも利用できます。実際にはDockerfileを自分で書くときに、上記をイメージのベースとして、足りないTeX Liveのパッケージやフォントを追加するとよいでしょう。(別にまとめたいと思うので、しばらくお待ちください……)

また、日本人有志によるPandoc用Dockerfileもいくつか存在します。

sky_y
『Markdownライティング入門』、日本Pandocユーザ会の人。
https://note.solarsolfa.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした