Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

MarkdownからWordやPDF生成ができるようにする (またはPandoc環境の構築方法) (2014/09版)

More than 5 years have passed since last update.

ブログエントリの内容を最新情報に変更しています。改めて環境を作ったら一部パッケージ名などが変わっていたので。

Pandoc

Pandoc は「a universal markup converter」という説明のとおり、あるマークアップ言語で書かれたドキュメントを他のドキュメント形式に変換するツールです。

前提

  • Mac OS X (Marvericks)
  • Homebrew

Pandocのインストール

PandocはHaskell製のツールなのでまず、Haskellの環境の構築

$ brew install haskell-platform

同時にHaskellのパッケージマネージャのcabalもインストールされるので、cabalにPATHを通します

export PATH=$PATH:/Users/k1low/.cabal/bin

cabalを利用してpandocをインストール

$ cabal update

...
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install

$ cabal install cabal-install
$ cabal install pandoc

ここまででpandocコマンドでMarkdownファイルをWord(.docx)に変換できます。

$ pandoc input.md -o output.docx

PDF出力環境のインストール

PandocでのPDF出力はLaTeXを通して実行しているので、日本語LaTeX環境を作る必要があります。

今回は日本語LaTeX環境としてLuaTeX-jaを使うことにしました。

MacTeXの最小構成をインストール

MacにTeX環境を構築するMacTeXをそのままインストールすると相当大きいので、BasicTeXだけインストールします。

$ brew install basictex

tlmgrというTeX用のパッケージマネージャがインストールされるので、まずはPATHを通します。

export PATH=$PATH:/usr/texbin/

tlmgrで必要なパッケージをインストールします。

$ sudo tlmgr update --self
$ sudo tlmgr update --all
$ sudo tlmgr install collection-langjapanese collection-latexrecommended collection-fontsrecommended

ここまででpandocコマンドでMarkdownファイルをPDF(.pdf)に変換できます。

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

使用してみた感想

  • やはり表操作はExcelが最強。ただ、それを諦めてでも方眼紙Excelよりかはかなり気分が良い。
  • Wordは「変換したものをそのまま納品する」という夢のようなことは難しい。
    • 逆に言えば「変換したものを体裁を整える前提」なら全然あり。
    • PDF出力のほうならLaTeXのdocumentclassを作り込んだらいけるかも。

参考URL

k1LoW
pepabo
「いるだけで成長できる環境」を標榜し、エンジニアが楽しく開発できるWebサービス企業を目指しています。
https://pepabo.com
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