206
196

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ドキュメント作成技術Advent Calendar 2014

Day 1

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

Last updated at Posted at 2014-12-01

(更新: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-installcabal: 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時点):

Stackのインストール

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

$ stack install pandoc

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

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

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

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

おまけ2:DockerでPandocを使う

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

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

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

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

おまけ3:pandoc-crossrefのインストール

Pandoc's Markdownで相互参照を実現するにはpandoc-crossrefをインストールします。

基本的には下記の手順です。

  1. releasesのバイナリをダウンロード・展開する
  2. 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 でインストールできます。

206
196
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
206
196

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?