Quantcast
Channel: takuchalleの記事 - Qiita
Viewing all articles
Browse latest Browse all 7

Markdown から tex を出力し、PDF を生成してみた

$
0
0

はじめに

前にWord でレポートを書いていたけど、目に見えない機能というか挙動にイライラしてた。。Markdown だったら全て明示的にマークアップできるので思い通りに書けるのではないかと思いやってみた。

事前準備

下記ツールのインストールする。僕は以下のバージョンで試した。

  • rake, version 10.0.3
  • ImageMagick 6.6.9-7
  • pandoc 1.9.1.1

テンプレート

github にテンプレートをアップした。
https://github.com/takuyaohashi/report_template

Rakefile の部分だけ抜粋すると、以下のようになる。
枠組みだけ、report.tex で作って、その中の section を Markdown で記述して、PDF 化している。
画像も PNG から EPS ファイルに変換して挿入している。

Rakefile
##
## Rakefile for Building Report from Rakefile
##
require 'rake/clean'

REPORT_FILE = "report.pdf"
MD_FILES = FileList["src/*.md"].exclude("README.md")
TEX_FILES = MD_FILES.ext(".tex")

CLOBBER.include("*.pdf")
CLEAN.include(TEX_FILES)
CLEAN.include("*.dvi", "*.log", "*.aux")

task :default => [:dvi2pdf]

task :dvi2pdf => [:tex2dvi] do
  sh "dvipdfmx", REPORT_FILE.ext(".dvi")
end

task :tex2dvi => [:md2tex] do
  sh "platex", REPORT_FILE.ext(".tex")
  sh "platex", REPORT_FILE.ext(".tex")
end

task :md2tex => TEX_FILES

# *.md -> *.tex 変換ルール
rule ".tex" => ".md" do |t|
  sh "pandoc", "-o", t.name, t.source
end

良かったこと

文章の記述に集中できる

Word だといろいろ装飾が邪魔してイライラしていたけど、Markdown なら簡単にマークアップしていくだけで見やすく、構造の変更がしやすい。
デザインと文章が分かれているので、後からでもデザインが変更できる。

思い通りに行かなかったこと

画像の挿入

下記の記述方法で画像が挿入できるけど、これ以上の細かい指定ができず、右詰めとかサイズ変更ができない。

変換前
![hoge](hoge.eps)
変換後
\begin{figure}[htbp]
\centering
\includegraphics{hoge.eps}
\caption{hoge}
\end{figure}

画像へのリンク

tex では、label と ref でリンクが張れるが、Markdown にそのような記述がないからリンクが張れない。
文章中で画像を参照したいときに Markdwon 内で簡潔しない。変換後の tex を修正するしかない。

テーブルの作成

テーブルを使おうと思ったが、うまくtexがコンパイルできなかった。下のページを参考にしてみたが、うまくいかなかった。
仕方なく tex をそのまま書いた。
pandocでmarkdownをtexに変換するとtableがおかしくなる件

おわりに

Word よりイライラは少ないが、画像周りの処理がうまくもっと行けば快適にレポートがかけると思う。
もし記事内で僕ができなかったことで、やり方を知っている人は教えてください・・・


Viewing all articles
Browse latest Browse all 7

Trending Articles