ブロック図作成

要件

  • eps等、TeXで扱える形式に変換できること
  • UNIX系OSで動き、メンテナンスされていること。Windowsにしかないフリーソフトとかダメ
  • 今作りたい図(チャート的なもの)がかけること。読者には伝わらない要件である

候補

  • Graphviz 有向グラフが得意
  • blockdiag ブロック図特化

Graphvizにしてみよう。

Graphviz

install

epsを扱うために必要かもしれないのでUSEにpostscriptを追加してみた。

# USE="postscript" emrege graphviz

DOT言語

Graphviz チュートリアル

digraph flow {
  rtl [shape = box, label = "RTL Design"];
  syn [shape = box, label = "Synthesis"];
  par [shape = box, label = "Place and Route"];
  post_sim [shape = box, label = "Post P&R Simulation"];

  rtl -> syn -> par -> post_sim;
}

compile

$ dot -Tgtk design-flow.dot
(GUIで確認できたりする)
$ dot -Teps design-flow.dot -o design_flow.eps

出力形式一覧: Output Formats
f:id:ishn:20140306180509p:plain

TeXに組み込む

このままTeXで扱おうとしたらうまくいかなかった。
最近だと、pdfを最終形にしたい場合は、画像もepsではなくpdfで生成しておくほうがいいらしい。

$ dot -Tpdf design_flow.dot -o design_flow.pdf
\documentclass[a4j]{jarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}
\includegraphics[width=5cm]{design-flow.pdf}
\end{document}

また、ツールの設定も必要。
Linux Mint の TeX Live で画像挿入するノウハウ - 余白の書きなぐり
/usr/share/texmf-dist/web2c/texmf.cnfを上記サイトと同様に編集する。

これでplatexを通せばできる。