xy環境の基礎

今まで描いてきたのは,\xymatrixや\xygraphなどを用いてでした.これらではなく,最も原始的なレベルで図を描けるのがタイトルにあるxy環境です(多分).\xymatrixや\xygraphよりも,更に豊かな絵が描けます. ここでは,とりあえずそんなxy環境を少し触ってみたいと思います.

\[
    \begin{xy}
    (0,0)*{0}, +/d1cm/*{1} ,<1cm,1cm>*{2},
    (3,4)="3"*{3},"3"+(2,0)*{4},"3"+/l1cm/*{5}
    \end{xy}
\]

まずは簡単なソースから始めましょう.上のソースの出力結果は以下の通り.

簡単なxy環境の図

xy環境という名の通り,\begin{xy}と\end{xy}で囲みます.ちなみに,例ではディスプレイ数式モードにしてますが,別に数式環境出なくても使えます.

ここでやってることは,ただ単にいくつかの文字を配置しただけです.場所を指定し,そこにものをおいていくことができます.(場所指定)*{おきたいもの}というのが基本的なパターンになります. 場所の指定は様々です.(0,0)は座標です.これが最も基本になります. 次の+/d1cm/は前回の場所から下に1cmという指定になります. 三番目の<1cm,1cm>も座標ですが,長さをcmで指定しています. 四番目の(3,4)="3"は,(3,4)を座標で指定しているわけですが,更にこの座標に"3"という名前をつけています. この名前は次で参照しています."3"+(2,0)は"3"の位置を基点に(2,0)の場所ということです. また,その次の"3"+/l1cm/は"3"の位置から左1cmということになります.

このままではあまりにも素っ気なすぎるので,矢印をつけてみます.

\[
    \begin{xy}
    (0,0)="A"*{A},+/r1cm/="B"*{B},
    "A"+<1.5cm,1cm>="C"*{C}
    \ar "A";"B"
    \ar@/^/ "A";"C"
    \end{xy}
\]

出力は次の通り

矢印サンプル

矢印を引くには\xymatrixなどでもおなじみの\arを使います(尚,\arは少し高レベルの命令です.).但し,使い方は大分ちがいます.基本的な形は\ar (開始位置);(終了位置)になります.サンプルでは,開始位置や終了位置をラベルで指定しています.二つ目の\arの@/^/は矢印を装飾する役割を持ちます.これに関してはまた項を改めて書きたいと思います.

さて,上の出力はAと矢印が重なっていたりして不格好です.少し調整した方がいいでしょう.

\[
    \begin{xy}
    (0,0)="A"*{A},+/r1cm/="B"*{B},
    "A"+<1.5cm,1cm>="C"*{C}
    \ar "A"+/r.2cm/;"B"+/l.2cm/
    \ar@/^/ "A"+<.2cm,.2cm>;"C"+/l.2cm/
    \end{xy}
\]
ちょっと整えた矢印サンプル

大分ましになりました(書いてから思いましたが,AからのCの矢印は,Aの真上から出発した方がいいかもしれませんね.).

戻る