N=1

主にコンピュータ技術関連のことを投稿。 / 投稿は個人の意見であり所属団体の立場を代表するものではありません。

ブロック図作成

要件

  • 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を通せばできる。