search
LoginSignup
171
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

プログラマの文書作成術:Markdown, LaTeXなどの文書からWord文書を生成する

ドキュメント変換ツールPandocを用いてMarkdownやLaTeX文書などからWord文書を作成する方法を紹介します。
以下の手順はターミナル(コマンドプロンプト)の操作ができることを前提とします。

PandocはMarkdown, LaTeXの他にもreStructuredText, HTMLなども入力できます。
詳細は Pandocユーザーズガイド日本語版 をご覧ください。

1. Pandocをインストールする

Windows/Macの場合は以下からインストーラをダウンロードできます:

Linuxの場合は、Debian/Ubuntuの場合は下記でインストールできるようです(ただしバージョンが古いです):

sudo apt-get install pandoc

その他の場合は、Haskell Platformに含まれるcabalというパッケージマネージャを使ってインストールできます。詳細は下記をご覧ください:

2. テンプレートを用意する

PandocにおけるWord文書用デフォルトテンプレートはヘッダに色が付いていて使いにくいので、テンプレートを変えます。

本来は自分でテンプレートを作る必要がありますが、3分クッキングよろしく予め用意したテンプレートを使いましょう。
(このテンプレートは、デフォルトテンプレートのヘッダの色を黒にしただけのものです。)

下記からテンプレートreference_simple.docxを直接ダウンロードできるので、保存します(以下、~/Downloadsフォルダに入れたとします)。

これを、

  • Mac/Linuxの場合は~/.pandoc
  • Windows7/8の場合はC:\Users\USERNAME\AppData\Roaming\pandoc

入れ、reference.docxにリネームする必要があります。以下、Macの場合を例にしてコマンドを示します。

mkdir ~/.pandoc  # まだ作っていない場合
mv ~/Downloads/reference_simple.docx ~/.pandoc/reference.docx

以上で、準備が整いました。

14.04.27 追記

自分で作成する場合は、

  1. 下記のコマンドを実行してreference.docxを取得する

    pandoc --print-default-data-file reference.docx > reference.docx
    
  2. Word上でreference.docxを編集する

という手順でreference.docxを得ます。

3. Markdown/LaTeX文書を作成する

お好きなMarkdown/LaTeX文書を作成します。

ここでは、例として、Pandocユーザーズガイド日本語版の元となっているMarkdown文書をダウンロードします。

curl -O https://github.com/sky-y/pandoc/raw/master/doc-jp/README-JP.md

ついでに、後の例のためにLaTeX文書をここで生成しておきます(注意:-sオプションを付けないと、完全なLaTeX文書が生成されません)。

pandoc -s README-JP.md -o README-JP.tex

4. Markdown/LaTeX文書を変換する

いよいよ、Pandocを用いて文書を変換します。

Markdownの場合

pandoc README-JP.md -o README-JP.docx

LaTeXの場合

pandoc README-JP.tex -o README-JP.docx

以上です。簡単ですね。

仕上がりを画像で示します。

Screenshot_word.png

なかなか良い仕上がりですね。日本語も正しく変換されているようです。

まとめ

Pandocを使ってMarkdownやLaTeXなどの文書をWord文書に変換する方法を見てきました。
他にPandocで何ができるかを知りたいは、以下のリンクを参照してみてください。

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
What you can do with signing up
171
Help us understand the problem. What are the problem?