Guideを日本語に全訳しました。よろしければご参照ください。-)で少し紹介したPandocというツールについて、もう少し深く掘り下げて紹介したいと思います。MarkdownとかreStructuredTextとか、流行ってますよねいわゆる軽量マークアップ言語が最近流行しています。Markdownは猫も杓子もMarkdownな状態ですね。一方で、Word文書、LaTeX、PDFなどの形式が提出文書として指定される場合も多々あります。MarkdownやreSTで書いた文書を色々なフォーマットに変換できたら嬉しいですよね。電子書籍(EPUB)も流行ってますよねKindleの上陸により、電子書籍を作成する需要が高まっています。一方で、HTMLで書いた文書がしこたま溜まっていたり、(特に学術系の方は)LaTeXで作成した本や論文がいっぱいあったりして、それらを電子書籍化したい、という方も多いと思います。HTMLやLaTeXがEPUBに変換できたら嬉しいですよね。PDFなどなど)に変換出来る強力なツールです。Pandocが日本であまり知られていないのは、非常に残念に思います。ここでは、ドキュメント作成の強い味方となるPandocについて、入門編として紹介します。PandocとはPandocは、Haskell製のドキュメント変換ツールです。他にも特定のマークアップ言語用のツールが多数存在します。Pandocはこのようなツールとは大きく違う点があります。それは、対応フォーマットが恐ろしく豊富な点と、開発が活発な点です。長所とにかく対応フォーマットが豊富まずは、対応フォーマットを見て下さい。(LaTeXをインストールしている場合のみ)詳細はこちらをご覧ください。Guide開発が活発Pandocは2012年12月現在、開発が比較的活発です。2012年12月1日〜12月22日に更新されたトピック(スレッド)は33件ありました。開発が比較的容易(以下、推測ですが)開発が活発な要因としては、開発が比較的容易であることが考えられます。(Reader)などのように、うまくモジュール化されています。そのため、部分ごとの拡張が比較的容易になっています。HaskellのパーサコンビネータParsecをうまく利用しているまた、PandocはHaskellで書かれています。Haskellには、構文解析を行うためのパーサコンビネータParsecがあり、Pandocはこれを有効活用しています。Parsecは正規表現よりも強力(LL(n)文法が解析可)なため、HTMLなどタグを囲むような文法を容易に解析できます。Parsecは単なるHaskellのライブラリなので、Haskellの文法知識だけで理解できます。そのため、特別な文法を覚える必要があるyaccなどのパーサジェネレータに比べて、Parsecの方が分かりやすく簡潔に書けます。以上の理由から、Pandocは開発が容易であることが考えられます。読み込みモジュール(Reader)の開発が始まっているそうです。jgm/pandocこれが完成すれば、さらにPandocの世界が広がること間違い無しです。一方で、Pandocにも短所があります。独自の読み込み・書き込みエンジンにより処理するため、文書の仕様をカバーできていない場合があるPandocは独自の読み込み・書き込みエンジンにより処理を行っています。そのため、文書の仕様に沿っていない部分もあります。内部的にはHTMLで表現できる形式で処理されているため、その表現能力を超えるようなことはできません。この欠点は、特にLaTeX(使った事無いですが、おそらくreSTも)に影響します。Pandocのインストール下記リンクをご覧ください。Qiita基本的な使い方ここでは例としてMarkdownを入力形式とし、HTMLを出力してみます。reStructuredTextなどを入力としてもOKです。形式の明示は、ファイルを指定せずにパイプで処理する際に必要です。出力ファイル(-o)を指定しない場合は、-tオプションで指定した形式で標準出力に出してくれます(一部形式を除く)おすすめ使い方ベスト5ここからは、おすすめの使い方を紹介します。Org-mode文書、reStructuredTextに変換する出力ファイル(-o)の拡張子を変えるだけです。output.tex注意Macの場合、Emacsで開くと濁点が分離します。(MacのUnicodeが、NFDという形式を標準としているためです。NFC形式に変換する必要があります。公式サイトのSLIDESをダウンロードします。LaTeX文書をEPUBに変換するPandocを使うと(少しの手間はありますが)LaTeX文書をいとも簡単にEPUB形式の電子書籍を作れます。参照先ファイルをすべて元のTeXファイルに埋め込んでください。対応していないためです。画像ファイルは全てpng形式にしてください。EPS画像しか無い場合、ImageMagickのmogrifyコマンドで変換するのが一番楽ちんです。日本語文書をPDFで出力する方法Pandocには、LaTeXを使ってPDFを出力する機能があります。これを使えると便利ですが、日本語文書(特にMacの場合)ちょっとややこしいです。いうのも、Pandoc標準の設定では、日本語の通らないpdfTeXを使用するためです。そこで、日本語に対応し、PandocがサポートしているLuaLaTeXを使用します。2012というパッケージをインストールします。(これ以外のインストール方法は知らないです・・・。WikiTeX環境が古くなっている方は、これを機にTeX環境を一新するとよいと思います。(Mac)Macの場合は、iconvという文字コードを変換するツールをインストールしておきます。HomebrewかMacportsでインストールできると思います。reStructuredTextなどを様々な形式に変換出来る強力なツールです。パイプ処理などをうまく使ったりすると、さらに便利に使えるかもしれません。開発も進んでいるため、今後新たな可能性が広がるかもしれません。日本であまり知られておらず、非常にもったいなく思います。Pandocを試してみて下さい。惟@sky_y『Markdownライティング入門』を書いた人。日本Pandocユーザ会の人。専門学校の非常勤講師もやってます。upLoginユーザーは見つかりませんでした。