広告/統計/アニメ/映画 等に関するブログ

広告/統計/アニメ/映画 等に関するブログ

【備忘録】pandocでMarkdownを特定のフォントと配色のワードファイルに変換

最近急にMarkdown記法って凄いんじゃないか?と思い始めて、勉強する気になってきました。

きっかけ はJupyterNotebook

先般の記事 yyhhyy.hatenablog.com の通り、JupyterはただPythonに対応したIPythonから、より普遍的なツールへと進化し始めているようです。

その中で、PDFにするためにpandocが必要になったため、*1。これまで余り気にもしていなかったpandocについて、ちょっと調べてみました。

すると、このpandocというやつは、docxファイルにもできるではありませんか!!

これは画期的なことで、メモ帳でメモした書類を「ワードでくれ!」と言われた時にもサッと対応できるということです。

Pandocの導入

公式サイトPandoc - Installingからインストーラーをダウンロードして、好きなフォルダへインストール。

Pandocでワードにする。

基本的な使い方はこちらを参照。 qiita.com ワードに変換するだけなら、ファイルのあるディレクトリまでコマンドプロンプトで移動し、

pandoc text.md -o test.docx

とするだけでOKです。

例えば、

f:id:yyhhyy:20160612140200j:plain

と記入したMarkdownファイル「test.md」があったとると、このようなワードファイルが出来上がります。

f:id:yyhhyy:20160612135845j:plain

とはいえ、デフォルトのワードがなんだか気持ち悪いので、スタイルを決めたいとは思います。

ワードファイルのスタイルの変更

こちらを参照 nenono.hatenablog.com

先ず、ワードのスタイルファイルを吐き出します。

pandoc --print-default-data-file reference.docx > reference2.docx

次に、そうしてカレントディレクトリに吐き出されたワードファイルのスタイルを変更しオリジナルのスタイルファイルを作ります。

スタイルは、「ホーム」から「スタイルの変更」で出来ます。 個人的には配色を自分のものに変え、フォントも変えます。 この2つを変えるだけでも文書のイメージは変わるものです。

f:id:yyhhyy:20160612140701j:plain

スタイルの基準となるワードファイルを参照しながらワードに変換するときのコマンドは以下。

pandoc text.md --reference-docx=reference2.docx -o test.docx

勿論「reference2.docx」はスタイルが指定されているファイルであれば何でもよいですが、カレントディレクトリに入れて作業するのが良いと思います。

するとこんな感じのファイルになります

f:id:yyhhyy:20160612141202j:plain

しかし行送りの高さとか段落周りのスタイルも固定化したいのですが、どうするのでしょう?

Markdown記法について

Markdown記法自体がこちらを参照。

kojika17.com

qiita.com

qiita.com

Markdown記法のメリット

普段仕事の議事録などは全部メモ帳に記載しています。

ワードで最初から書く、という手もあるのですが、正直動きが思いのと時々クラッシュする、という面倒さがあるため、できるだけ動作の軽いテキストエディタを使っています。

最近は、もう少し見易いものはないかと、

Emacs GNU Emacs - GNU ProjectSublime www.sublimetext.com を試しています。

Markdown記法の良さは、そこからpandocでワードにすることもできれば、LaTeXにすることもできる汎用性です。 LaTeXにして出力したければ、LaTeXにすればいいですし、ワードで他人と共有する必要が出てきたらワードにすればいいのです。

PandocでLaTeX

こちらを参照

qiita.com

単純にLaTeXにするのは、先ほどと同じです

pandoc test.md -o test.tex

でこのようなTeXの本文部分が出来ます。

f:id:yyhhyy:20160612142928j:plain

好きなLaTeXのスタイルのヘッダーと「begin{dociment}」の下くらいにこれをコピペしてしまえば、それで充分です。

形式をある程度決めたTeXにしたり、そのままPDFにすることもできます

pandoc -f markdown test.md -s -o test.pdf --latex-engine=lualatex -V documentclass=ltjarticle

pandoc -f markdown test.md -s -o test.tex --latex-engine=lualatex -V documentclass=ltjarticle

f:id:yyhhyy:20160612143640j:plain

いずれにしてもここまでできれば、後は幾らでも何とでもなりそうです。

*1:というか結局日本語を使うんであればnbcinvertでTeXにする方が楽なので、pandocいらない説がありますね。。