天地有情

[LaTeX] Tpic --- 線画を描く4つの方法

Tpic --- 線画を描く4つの方法

§1 はじめに

tpic は,Troff 用図形プリプロセッサ pic を元にして,Tim Morgan が作り上げた
TeX 用図形プリプロセッサ および それが出力する special コマンドセットの名称です.

Tpic は TeX の special 命令を dvi ファイルに書き込むだけです.
グラフィックス機能は dvi-driver 側で準備します.

DVIOUT は Tpic をサポートしており,実線,破線,点線,spline 曲線,円,楕円,円弧が自由に描けます.
また,シェーディング(塗り潰し)や上書き機能もあります.

Tpic をサポートするツールには下記の4つが見つかりましたので,これらについて紹介します.

(1)標準Tpic による描画
(2)WinTpic による描画(堀井雅司氏作)
(3)gnuplot の出力を tpic とした描画
(4)iakaiTpic.sty による描画(赤井一郎氏作)

§2 標準Tpic による描画

DVIOUT がサポートする Tpic を LaTeX 標準の picture環境 で取り扱うには,基本単位や基準点の取り方などに
注意を払う必要があります.マニュアルは C:/dviout/GRAPHIC/TPIC/tpicdoc.dvi を参照してください.

2.1 座標系

個々のグラフィックスの要素の位置は,TeX が保持している「ページ上の現在位置」に対する相対座標で指定します.
個々の special は graph box の左上に置かれ,この点が graph の原点になります.
X軸は右が正,Y軸は下が正方向です (Y軸は picture環境 と逆方向なので注意が必要です).

tpic01.png


2.2 基本単位

"長さ"(インチ)と"角度"(ラジアン)の単位について説明します.

■ 長さの単位:経路(path)を座標位置で示し,単位は整数の "ミリインチ" です。
  破線の長さと点線の間隔は実数の "インチ" です.

■ 角度の単位:角度は +X 軸から +Y 軸への向きを正として、ラジアン単位 (0 ~ 2π) で実数で記述します.
  これは出力ページ上での「時計回り」に相当します.完全な円と楕円は、start angle = 0 と end angle ≧ 2π
  として指定します.

【度数をラジアンへ変換】Radian =(π/180.0)× n°

【mmをミリインチへ変換】ミリインチ≒ mm×40  (正確には 1000/25.4=39.37 → 整数 40 にする)

2.3 描画コマンド
(上記のマニュアル(tpicdoc.dvi)より引用して整形してある)

・\special{pn s}
線幅を s ミリインチにします.
・\special{pa x y}
点 (x,y) を path(経路)に加えます.
・\special{fp}
それまでに定義された path を,現在の線幅で描きます.
シェーディングが設定されていて,パスが閉じていれば,path 内部を実際に塗りつぶします.
path 内の点の数は,0にリセットされます.
・\special{ip}
\special{fp} と同じですが,path を描きません.
条件が満たされれば,シェーディングを行います.
・\special{da f}
\special{fp} と同じですが,path は破線で描きます.
f は実数で,ダッシュあたりの長さをインチ単位で指定します(cf. tpic specials の拡張).
・\special{dt f}
\special{fp} と同じですが,path は点線で描きます.
f は実数で,点の間隔をインチ単位で指定します.
・\special{sp d}
\special{fp} と同じですが,path は spline 曲線で描かれます.
d は実数で,曲線の種類を指定します.
- d = 0 か d が省略された場合,実線で描きます.
- d > 0 の場合,破線で描きます.d はダッシュの長さです.
- d < 0 の場合,点線で描きます.-d は点間隔です.
・\special{ar x y u v s e}
中心(x,y)の弧を描きます.
s は開始角度,e は終了角度で,ラジアン単位の実数です.
完全な円か楕円であるばあいは,u, v は,それぞれ x, y 半径を表します.
そうでない場合は,u = v であり,s から e へ弧が描かれます.
条件が満たされれば,シェーディングも行います.
・\special{ia x y u v s e}
これは,\special{ar x y u v s e}と同じですが,弧は描かず,
条件が満たされればシェーディングを行います.
・\special{sh s}
シェーディングを指定します.
このコマンドの次に定義される閉じた図形(3つ以上の pa とそれに続く fp か ip,
もしくは,ar か ia)の内部を塗りつぶします.
s は,0以上1以下の実数です.
0は白で塗りつぶすことを意味し,図形の下にあったものはテキストも含め,全て消去します.
0以外の値は灰色を意味し,図形の下にあったものを消去せずに灰色を塗り加えます.
0.5がデフォルトの値で,通常の灰色にあたり,1は黒を意味します.
s が指定されていなければ0.5の値を用います.
シェーディングは図形の内部のみに対して行い,境界線はそれとは独立に,現在の線巾を用いて行います.
・\special{wh}
\special{sh 0}と同じ.
・\special{bk}
\special{sh 1}と同じ.

2.4 簡単なサンプル

tpic02.png


【説明】
1行目:長さの単位を[ミリインチ]とする.
    当初は [mm] でメモ図を描き,後からその値を40倍して正式図は ミリインチ としたら良い.
2行目:原点の移動
その他:\special命令の末尾には空白の影響を除去するため " % " を記述する.

§3 WinTpic による描画(フリーソフト)

WinTpic Ver.4.32a ( http://aogaeru-lab.my.coocan.jp/sub1.html )は
TeXに挿入できるグラフ,図を作成するツールです.適当なディレクトリにインストールしてください.

■ サンプル

(1)インストール先の wtpic.exe をクリックして起動し,下図のサンプル図を作成します.
    WinTpic Ver.4.32a に同梱の readme.txt に機能や使い方が書かれています.

wintpic01.png


(2)作成完了したら,ファイル名 "sample.tex" として保存します.
   これを,エディタで開いて見ると下図のようなTeXファイルが生成されています.

wintpic02.png


(3)\input{sample.tex} として,LaTeX ファイルに取り込みます.コンパイルすると,次が生成されます.

wintpic03.png



§4 gnuplot の出力を tpic とした描画
(注意:すでに gnuplot はインストールされ,操作できるものとして説明します.)

gnuplot の多様な出力形式のうち,tpic 出力形式とした場合について説明します.
出力されるファイルの内容は picture 環境のため,LaTeXコマンドを付加して情報操作できます.

(1)wgnuplot.exe を起動させ, "help tpic" を実行します.

gnuplot01.png


gnuplot02.png


(2)Syntax:
    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
     set terminal tpic <point size> <linewidth> <interval>
    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

  <point size> --- ミリインチ,整数指定 default=40 (→ 1mm)

  <linewidth> ---- ミリインチ,整数指定 default=6 (→ 0.15mm)

  <interval> ----- ミリインチ,実数指定 default=0.1 (→ 0.0025mm)

■ サンプル

(1)gnuplot プログラム(gnuplot03.plt)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■
set term tpic 40 6 0.05
set output "gnu-sample.tex"
set parametric
set sample 3000
unset key
unset xtics
unset ytics
unset border
plot [t=0:2*pi] sin(7*t)*cos(t),sin(5*t)*sin(t)
reset
■■■■■■■■■■■■■■■■■■■■■■■■■■■■

(2)上記プログラム(gnuplot03.plt)を実行します.

gnuplot> load "gnuplot03.plt"

この結果,出力ファイル gnu-sample.tex が得られ,
\input{gnu-sample.tex}として 次の LaTeX ファイル(gnu-main.tex)に取り込みます.

%% gnu-main.tex
■■■■■■■■■■■■■■■■
\documentclass{jsarticle}
\begin{document}
\input{gnu-sample.tex}
\end{document}
■■■■■■■■■■■■■■■■

gnuplot03.png


§5 iakaiTpic.sty による描画

iakai210パッケージには各種のスタイルファイルが収納されています.以下からダウンロードしてください.

iakai210.lzh(http://www.vector.co.jp/soft/win31/writing/se091731.html)

この中の iakaiTpic.sty が該当し,単独でも利用できます.
インストール先は C:/w32tex/share/texmf-local/tex/latex/iAKAI210 としました.
インストール後は必要に応じて mktexlsr (あるいは texhash) を実行します.

マニュアル:同梱の iakai.pdf の 14節(37~44ページ) を参照してください.

5.1 特徴

● TeX の任意の単位系で扱える.(mm, cm, pt など)
● 文字列,直線,円,矩形,矢印などのコマンドが付加されている.

5.2 Tpic 対応のコマンド群

iakai01.png


5.3 新たに付加されたコマンド群

\TpicText(x,y)[option] text --- 文字列を描画
\TpicLine(x1,y1)-(x2,y2)[option] --- 2点間を直線で結ぶ
\TpicBox(x1,y1)-(x2,y2)[option] --- 2点間を対角線とする四角を描画
\TpicCircle(x,y)(r)[option] --- 円を描画
\TpicArrow(x1,y1)-(x2,y2)(size)[option] --- 2点間を直線で結び先端に矢印を付ける

詳細な使い方はマニュアルを参照してください.

■ サンプル

■■■■■■■■■■■■■■■■■■■■■■■■■■■■
\documentclass{jsarticle}
\usepackage{iakaiTpic}
%
\begin{document}
\begin{center}
\setlength{\unitlength}{1cm}
\begin{Tpicture}(5,4)
\TpicPA(0,0)\TpicPA(5,4)\TpicFP%
\TpicSH{0.5}%
\TpicBox(0,0)-(2.5,2)%
\TpicCircle(2.5,2)(1)%
\TpicText(2.5,2)[r]{$\alpha\beta$}%
\TpicText(3,2){$\beta\gamma$}%
\TpicIA(2.5,2,0.5,0.5,0,370)%
\TpicLine(2.5,2)-(5,0)[b0.2]%
\TpicLine(2.5,2)-(0,4)[d0.05]%
\TpicArrow(1.5,2)-(4,4)(0.2)%
\end{Tpicture}
\end{center}
\end{document}
■■■■■■■■■■■■■■■■■■■■■■■■■■■■

iakai02.png


(EOF)
スポンサーサイト
  1. 2015/07/06(月) 07:41:30|
  2. LaTeX Tools