diff options
Diffstat (limited to 'Master/tlpkg/dviout/HYPERTEX/inputxy.tex')
-rw-r--r-- | Master/tlpkg/dviout/HYPERTEX/inputxy.tex | 930 |
1 files changed, 930 insertions, 0 deletions
diff --git a/Master/tlpkg/dviout/HYPERTEX/inputxy.tex b/Master/tlpkg/dviout/HYPERTEX/inputxy.tex new file mode 100644 index 00000000000..9e787572f60 --- /dev/null +++ b/Master/tlpkg/dviout/HYPERTEX/inputxy.tex @@ -0,0 +1,930 @@ +\documentclass[10pt]{jarticle} +%%% +\def\pdf{TF} % TT (pdf for dvipdfmx) <-> TF (dvi for dviout) +%%% +\usepackage{myhyper,amsmath,amssymb,amsfonts,amscd,alltt} +\if\pdf +\usepackage[nokeyin]{keyin} +\else +\usepackage{keyin} +\fi +\usepackage[dviout]{graphicx,color} +\AtBeginDvi{\special{dviout -hyper=144 -hyperoff=0 v0}} +% -hyper=144 : Blue letters without underline (hot spot) +% -hyperoff=0: HyperTeX is valid +% v0 : Minimal bars +% v0vs : Minimal bars + Status bar +% !3 : Copy to Editor without CTRL +\if\pdf +\AtBeginDvi{\special{papersize=5.5in,8in}} +\hoffset=-1.03cm +\voffset=-3.18cm +\paperwidth=5.6in +\paperheight=8in +\else +\AtBeginDvi{\special{papersize=4.6in,7.07in}} +\hoffset=-2.3cm +\voffset=-4.45cm +\paperwidth=4.6in +\paperheight=7in +\fi +\textwidth=4.4in +\textheight=7.0in +\renewcommand\baselinestretch{0.92} +%\paraindent=0cm +\setlength{\oddsidemargin}{0cm} +\setlength{\parindent}{0cm} +\def\BK{\texttt{\symbol{'134}}} +\def\D#1{\keyin{#1}{#1}} +\def\E#1{\keyin{\string#1}{#1}} +\def\Q#1{\keyin{\string#1}{$#1$}} +\def\R#1{\keyin{\noexpand#1}{$#1$}} +\def\F#1{\special{html:<a href="dviout:`in .5c#1">}\BK#1\special{html:</a>}} +\def\G#1{\special{html:<a href="dviout:`in .5c#1=">}\BK#1\special{html:</a>}} +\def\Goto#1#2{\goto{#1}{\colorbox{green}{\tiny\sf #2}}} +% \def\gotop#1{\makebox[0mm]{\hspace{#1}\Goto{top}{Top}}} +\def\red#1{{\color{red}#1}} +\def\blue#1{{\color{blue}#1}} +\def\green#1{{\color{green}#1}} +\def\RED#1{{\it\color{red}#1}} +\def\MGNT#1{{\it\color{magenta}#1}} +\def\GREEN#1{{\it\color{green}#1}} +\def\ops#1{\{\MGNT{#1}\}} +\def\Ops#1{[\MGNT{#1}]} +\def\opt#1{\{\RED{#1}\}} +\def\Opt#1{[\RED{#1}]} +\def\ST{\hspace{-.1em}\raisebox{-0.25em}*} +\if\pdf +\def\NEXT{\phantom{a}} +\def\BACK{\phantom{a}} +\else +\def\NEXT% +{\special{html:<a href="dviout: Je">}\colorbox{cyan}{\tiny$\Rightarrow$}\special{html:</a>}} +\def\BACK% +{\special{html:<a href="dviout: Jv">}\colorbox{cyan}{\tiny$\Leftarrow$}\special{html:</a>}} +\fi +\def\GOTO#1{ + +\vspace*{-2.7ex} +\hfill{\Goto{#1}{#1}} + +} +% +\pagestyle{empty} +%%% +\newlength{\minitwocolumn} +\newenvironment{z2col}[1][0pt]% +{\def\kaidan{\end{minipage}% + \hspace{\columnsep}% + \addtolength{\minitwocolumn}{-#1}% + \begin{minipage}[t]{\minitwocolumn}}% + \setlength{\minitwocolumn}{0.48\textwidth}% + \addtolength{\minitwocolumn}{-0.5\columnsep}% + \addtolength{\minitwocolumn}{#1}% + \begin{minipage}[t]{\minitwocolumn}}% +{\end{minipage}} +%%% +\if\pdf +\usepackage[all,ps,dvips]{xy} +\else +\usepackage[all]{xy} +\fi +\xyoption{poly} +\xyoption{arc} +\xyoption{2cell} +\xyoption{knot} +\xyoption{web} +\UseAllTwocells +%%% +\newenvironment{Alltt}{% +\renewcommand{\\}{\char`\\} +\begin{alltt}% +}{% +\end{alltt} +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\ToDef#1{\goto{#1}{\colorbox{magenta}{\tiny\sf Def}}} +\def\ToEx#1{\goto{#1}{\colorbox{magenta}{\tiny\sf Ex}}} +\def\La{\,$\leftarrow$\,} +\def\pos{\MGNT{pos}} +\def\Pos{\goto{pos}\pos} +\def\cod{\MGNT{cod}} +\def\Cod{\goto{cod}\cod} +\def\obj{\MGNT{obj}} +\def\Obj{\goto{obj}\obj} +\def\vector{\MGNT{vector}} +\def\Vector{\goto{vector}\vector} +\def\place{\MGNT{place}\/} +\def\Place{\goto{place}\place} +\def\stack{\MGNT{stack}\/} +\def\sav{\MGNT{save}} +\def\FAC{{\it\color{cyan}factor}} +\def\dr{\MGNT{direction}} +\def\dm{{\it\color{cyan}dimen}} +\def\Dm{\goto{dm}\dm} +\def\CIR{{\it\color{magenta}cir}} +\def\Cir{\goto{cir}\CIR} +\def\anchor{\MGNT{anchor}} +\def\Anchor{\goto{anchor}\anchor} +\def\DIR{{\MGNT{dir}}} +\def\Dir{\goto{dir}\DIR} +\def\TEXT{{\it\color{cyan}text}} +\def\ID{{\it\color{cyan}id}} +\def\diag{{\it\color{magenta}diag}} +\def\Diag{\goto{diag}\diag} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} +\if\pdf +\rightline{\href{http://akagi.ms.u-tokyo.ac.jp/input9.pdf}{\colorbox{cyan}{\scriptsize\sf Help \Xy-pic}} +\ \NEXT} +\else +\rightline{\href{file:input9.dvi}{\colorbox{cyan}{\scriptsize\sf Help \Xy-pic}} +\ \NEXT} +\fi +\centerline{\Large\bf\Xy-pic} + +\vspace*{-4ex} +\section{はじめに} +\AmS-\LaTeX の\texttt{CD}環境で簡単な可換図式が描けますが, +矢印の形状が限られている上,斜めの矢印が描けないなど種々の制約があります. +$\Xy$-pic はこのような制約が無く,各種の図式を描くことができます. +%簡単に可換図式を描くことができるなど, +%以下のような優れた特徴を持っています. +\begin{itemize} +\item +任意の2点間に矢印が引け,矢先,軸,矢羽を組み合わせて種々の形状が可能で, +軸の部分も自由に曲げることができる. +\item +可換図式,フローチャート,有向グラフやツリーグラフ, +カテゴリー理論のセル2つの図式,多角形や楕円などの図形や自由曲線, +格子構造の図式,結び目やリンク,などを描くための機能が備わっている. +\item +矢印や曲線などは独自のフォントによって(specialsを用いない)標準の\TeX の機能 +内で動作する.一方,出力デバイスに依存するが,tpic specials や PostScriptを使 +った軽く綺麗な出力にも対応し,タイプセットは(綺麗さを除いて)両者で同一で +ある.これを利用し,拡大してもギザギザが出ないPDFに変換できる. +\item +座標の原点の移動のみならず,$X$-軸,$Y$-軸の単位ベクトルを任意に指定できるので,斜交座標の採用や図形のアフィン変換が容易. +\item +\LaTeX, plain\TeX, \AmS-\TeX など,種々の\TeX の下で同様に動く. +\end{itemize} +\quad +\Xy-pic はいくつかのファイル群から成り立っており,必要なもののみ読み込むことができますが,当面は +\begin{quote} +\keyin{\usepackage[all]{xy} 0d 0a}{{\sf \BK usepackage[all]\{xy\}}} +\end{quote} +を\LaTeX の冒頭の{\sf \BK usepackage\{\}}の最後に追加しておくのがよいでしょう. + +\quad +以下で扱う \LaTeX や p\LaTeX の場合,\Xy-pic は,本文の中で +\begin{quote} +\keyin{\begin{xy} 0d 0a\end{xy} 0d 0a}{{\sf \BK begin\{xy\}\\ +\quad$\cdots$\\ +\BK end\{xy\}}} +\end{quote} +として使うのが基本です.\\ +\quad +なお,\href{ftp://akagi.ms.u-tokyo.ac.jp/pub/TeX/macros/xypic.zip}{ここ} +をクリックして得たパッケージを {\tt.\BK texmf} の存在するディレクトリで展開すれば \Xy-pic がインストールされます. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{矢印} + +\vspace*{-4ex} +\hfill\raisebox{2ex}{\BACK\ \NEXT}\\ +{\bf 1}. +デフォルトの座標単位はmmで,%す.\\ \quad +$(0,0)$から$(20,0)$に矢印を引くには + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + \\ar (20,0) +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{3ex} +\begin{xy} + \ar (20,0) +\end{xy} +\end{z2col} + +\medskip +とします. +{\color{red}$(20,0)$} の代わりに実寸を用いて {\color{red}\verb|<2cm,0cm>|} の +ように書くこともできます(\TeX で有効な\MGNT{長さ}を用いる). + +\quad 実際には「続けて{\color{red}\verb|\begin{xy} |}\verb|\ar (20,0)|{\color{red}\verb|\end{xy}|}と書く」と, +以下のようになります. + +\centerline{「続けて\begin{xy} \ar (20,0)\end{xy}と書く」} + +\smallskip +\quad +より短く「続けて{\color{red}\verb|\xybox{|}\verb|\ar(20,0)|{\color{red}\verb|}|}と書く」としても同じ結果です. + +\medskip +{\bf 2}. +一般に + +\centerline{\tt\{(\MGNT{a},\MGNT{b}) \BK ar \string@\{\MGNT{arrow}\} (\MGNT{c},\MGNT{d})\} または \{\BK ar \string@\{\MGNT{arrow}\} (\MGNT{a},\MGNT{b});(\MGNT{c},\MGNT{d})\}} + +\medskip +によって,{\tt(\MGNT{a},\MGNT{b})}から{\tt(\MGNT{c},\MGNT{d})}へ +\MGNT{arrow}で形状を指定した矢印が引かれます +(形状指定がないときは,上の標準の矢印): + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + \{(0,20) \\ar @\{\red{=>\}} (15,23)\}, + \{(0,15) \\ar @\{\red{|-->}\} (15,15)\}, + \{(0,15) \\ar @\{\red{~>}\} (35,5)\}, + \{(0,5) \\ar @\{\red{.}\} (15,5)\}, + \{(0,0) \\ar @\red{_}\{\red{||->>}\} (10,0)\}, + \{(20,20) \\ar @\red{/^4mm/} (35,20)\}, + \{(20,15) \\ar @\red{3}\{\red{<->}\} (35,15)\}, + \{(20,0) \\ar @\{\red{^\{(\}-_\{>\}}\} (35,0)\} +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{5ex} +\hfill +\begin{xy} + {(0,20) \ar @{=>} (15,23)}, + {(0,15) \ar @{|-->} (15,15)}, + {(0,15) \ar @{~>} (35,2)}, + {(0,5) \ar @{.} (15,5)}, + {(0,0) \ar @_{||->>} (15,0)}, + {(20,20) \ar @/^4mm/ (35,20)}, + {(20,15) \ar @3{<->} (35,15)}, + {(20,0) \ar @{^{(}-_{>}} (35,0)} +\end{xy} +\end{z2col} + +\medskip +\quad +矢印の進む向きに対し,\red{\tt\string^} は左直交方向, +\red{\tt\string_} は右直交方向を表します(左から右へ向かう矢印に対しては, +前者は「上」,後者は「下」方向). + +\quad +一般に {\color{red}\verb|/ /|} は\textbf{ずらし}を表し, +{\color{red}\verb|@/^4mm/|} は「左直交方向に4mmのずらし」となります. +矢印の始点と終点は固定されたままで,上の例では4mm上に曲がった曲線の軸を持つ\textbf{標準の形状}の矢印が引かれます. + +\quad +矢先と矢羽には \red{\tt < > ( ) | ' ` + / x o \{*\}} などが使えます. + +\quad +矢軸には \red{\tt - . \string~ = :} が使えます. + +\quad +\red{\tt@} の直後に {\tt\color{red}\verb|^ _ 2 3|} (左/右半,二/三重)のいずれかを付加できます. + +\quad +形状の\MGNT{arrow}における 上の例の{\color{red}\verb|^{(}|}は +「矢羽 \red{\tt(} の左半分」を表します. + +\medskip +{\bf 3}. +矢印のフォントはComputer ModernやEulerに変更できます: +\hfill{\BACK\ \NEXT\!\!} + +\begin{z2col} +\begin{Alltt}\\begin\{xy\} \\ar (0,10);(10,10) + \red{\\SelectTips\{cm\}\{\}} \\ar (0,5) ;(10,5) + \red{\\SelectTips\{eu\}\{\}} \\ar (10,0) \\end\{xy\} \end{Alltt} +\kaidan +\vspace*{-.5ex} +\hfill\hfill +\begin{xy} + \ar (0,10);(10,10) + \SelectTips{cm}{} \ar (0,5); (10,5) + \SelectTips{eu}{} \ar (10,0) +\end{xy} +\hfill\phantom{.} +\end{z2col} + +\smallskip +後の\red{\tt\{\ \}} の中で,ポイント(\red{10}/\red{11}/\red{12})が +指定できます. + +\medskip +{\bf 4}. +矢印には,以下のように {\color{red}\verb:^ _ |:}(挿入) によって\textbf{ラベル}を付けられます: + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + \{(0,20) \\ar @\{\red{o.x}\}(20,20)\red{\tt\string^\{}n\\to\\infty\red{\}\string_}p\}, + \{(0,15) \\ar @\red{/_/}@\{\red{\{*\}->}\} (20,10)\red{\tt\string^}A\red{\tt\string_}\\alpha\}, + \{(0,0) \\ar @\{\red{||->>}\} (20,0){\tt\color{red}|\{}\\sum_n a_n\red{\tt\}}\} +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{-1.5ex} +\hfill +\begin{xy} + {(0,15) \ar @{o.x}(20,15)^{n\to\infty}_p}, + {(0,10) \ar @/_/@{{*}->} (20,7)^A_\alpha}, + {(0,0) \ar @{||->>} (20,0)|{\sum_n a_n}} +\end{xy}\!\!\!\! +\end{z2col} +%%%%%%%%%%%%%%%%%%%%%% + +\medskip +{\bf 5}. +位置やラベルに{\tt\color{red}=\{\it{\color{cyan}id}\}} によって\textbf{名前}をつけると,後から参照できます: +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + (5,8.66)\red{="A"}, (0,0)\red{="B"}, (10,0)\red{="C"}, + \\ar@\{-\}\red{"A"};\red{"B"} \\ar@\{-\}\red{"B"};\red{"C"} \\ar@\{-\}\red{"C"};\red{"A"} +\\end\{xy\} +\\begin\{xy\} + \\ar @\{<-|\} (0,0);(10,0)^a\red{="A"} + \\ar @\{|=>\}(15,0);(25,0)^b\red{="B"} + \\ar @/^/ @\{<->\}\red{"A"};\red{"B"}^c +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{1.ex} +\hfill +\begin{xy} + (5,8.66)="A", (0,0)="B", (10,0)="C", + \ar@{-}"A";"B" \ar@{-}"B";"C" \ar@{-}"C";"A" +\end{xy} + +\vspace*{8ex} +\hfill +\begin{xy} + \ar @{<-|}(0,0);(10,0)^a="A" + \ar @{|=>}(15,0);(25,0)^b="B" + \ar @/^/ @{<->}"A";"B"^c +\end{xy} +\end{z2col} + +\medskip +{\bf 6}. +矢(羽)の\textbf{出発方向}と,終点からみた矢先の\textbf{到着方向}とは, +この順に + +\centerline{\color{red}\tt@(\MGNT{方向},\MGNT{方向})} + +で指定できます. +方向には +\red{\tt r}(右),\red{\tt rd}(右下),\red{\tt d}(下), +\red{\tt ld}(左下),\red{\tt l}(左),\red{\tt lu}(左上),\ +\red{\tt u}(上),\red{\tt ru}(右上)があります. + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + (0,0)="A", (20,0)="B", + \\ar \red{@(lu,ld)} "A";"A"|\{id\} + \\ar \red{@(d,d)} "A";"B"^f \\ar \red{@(ld,ru)} "B";"A"_g +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{-.1ex} +\hfill +\begin{xy} + (0,0)="A", (20,0)="B", + \ar @(lu,ld) "A";"A"|{id} + \ar @(d,d) "A";"B"^f + \ar @(ld,ru) "B";"A"_g +\end{xy} +\end{z2col} + +\medskip +{\bf 7}. +矢印は,指定した長さ(左方向が正)だけの平行の\textbf{ずらし}ができます: + +\centerline{\color{red}\tt@<\MGNT{長さ}>} + +\vspace*{-2ex} +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + (0,0)="A", (20,0)="B", + \\ar \red{@<1mm>} "A";"B"^\{f\} + \\ar \red{@<1mm>} "B";"A"^\{f^\{-1\}\} +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace{1ex} +\hfill +\begin{xy} + (0,0)="A", (20,0)="B", + \ar @<1mm> "A";"B"^{f} + \ar @<1mm> "B";"A"^{f^{-1}} +\end{xy} +\end{z2col} + +\newpage +\medskip +{\bf 8}. +ラベルの直前にラベルの\textbf{場所指定}を置くことができます.\hfill +\BACK\ \NEXT + +\hspace{1cm}{\tt\red{< > -\ \ \ } :矢印の末尾/先頭/中央(\red{\tt-} は \red{<>(0.5)} と同等)}\\ +\hspace{1cm}{\tt\red{(\MGNT{比})\ \ \ \ } :比で指定}\\ +\hspace{1cm}{\tt\red{/\MGNT{長さ}/\ \ } :ずらし}\\ +\hspace{1cm}{\tt\red{!\{\MGNT{位置}\}\ }} :位置で指定 + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} (0,15)="A",(0,0)="B", + \\ar "A";"B"^\red{<}a + \\ar@<6mm> "A";"B"^\red{<<<}b + \\ar@<12mm> "A";"B"^\red{>}c + \\ar@<18mm> "A";"B"^\red{(.3)}d + \\ar@<24mm> "A";"B"^\red{/3mm/}e \\end\{xy\} +\end{Alltt} +\kaidan +\vspace{1ex} +\hfill +\begin{xy} (0,15)="A", (0,0)="B", + \ar "A";"B"^<a + \ar @<6mm> "A";"B"^<<<b + \ar @<12mm> "A";"B"^>c + \ar @<18mm> "A";"B"^(.3)d + \ar @<24mm> "A";"B"^/3mm/e +\end{xy}\!\!\!\! +\end{z2col} + + +\medskip +{\bf 9}. +``A" と ``B" を結ぶ直線との交点の位置は + +\centerline{\color{red}\tt!\{"A";"B"\}} + +によって得られます. + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + (0,0)="A",(10,10)="B",(15,0)="C",(0,10)="D", + \\ar "A";"B" + \\ar "C";"D"|\red{!\{"A";"B"\}\\hole} +\\end\{xy\} +\end{Alltt} +\kaidan + +\vspace*{1ex} +\hfill +\begin{xy} + (0,0)="A",(10,10)="B",(15,0)="C",(0,10)="D", + \ar "A";"B" + \ar "C";"D"|!{"A";"B"}\hole +\end{xy} +\end{z2col} + +\medskip +``C" から ``D" への矢印に対し,``A" と ``B" を結ぶ直線との交点に空白の穴 {\color{red}\verb|\hole|} を空けたものです. + +\quad +一般に ``A" と ``B" を結ぶ直線と ``C" と ``D" を結ぶ直線の交点は\\ +\centerline{\tt\red{!\{"A";"B":"C";"D",x\}}} +によって求められます. + +\vspace*{-3ex} +\section{要素} +{\bf 1}. +図式に{\bf 要素}を配置し,それを矢印で結ぶことができます.要素は, +通常の記号や文字,さらに一般に\TeX で表現されたものとすることができます. +%要素の大きさが考慮されて矢印が引かれます. + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + (0,0) \red{*\{A\}}="A",(10,10)\red{*\{B\}}="B", + (15,0)\red{*\{C\}}="C",(0,10) \red{*\{D\}}="D", + \\ar "A";"B" + \\ar "C";"D"|!\{"A";"B"\}\\hole +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{2ex} +\hfill +\begin{xy} + (0,0) *{A}="A",(10,10)*{B}="B", + (15,0)*{C}="C",(0,10)*{D}="D", + \ar "A";"B" + \ar "C";"D"|!{"A";"B"}\hole +\end{xy} +\end{z2col} + +\smallskip +\quad +要素を配置するには,先頭に \red{\tt *} をつけて \red{\tt *\{\!要素\!\}} の +ように書きます. +%が,要素が通常の文字一つの時は \red{\tt\{\ \}} は省略できます.\\ + +\vspace{5ex} +\quad +次のようなものが要素として,先頭に \red{\tt *} を付加することで配置されます. + +\hspace{.5cm}\red{\tt \{\!テキスト\!\}} :テキストは数式モードで組まれます.\\ +\hspace{1cm}{\TeX}における通常の {\tt\BK hbox} のように組まれた\textbf{箱} +でもOKです.\\ +\hspace{.5cm}\red{\tt\BK txt<幅>\{\!テキスト\!\}} :テキストは通常の文章として組まれます.\\ +\hspace{1cm}\red{\tt<幅>} は省略可能で,テキスト中は強制改行 +記号 \red{\tt\BK\BK} が使用できます.\\ +\hspace{.5cm}\red{\tt \BK xybox\{{\rm\Xy-pic}による図式\}} + +これらの要素は,{\bf ラベル}としても使用できます.\hfill +\BACK\ \NEXT + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + \\ar (0,0) *\red{\{}\\sum_\{n=1\}^N2^{-n}\red{\}}; + (30,0) + *\red{\\txt\{}増加して\red{\\\\}1に収束\red{\}} + ^-\red{\{}N\\to\\infty\red{\}} +\\end\{xy\} +\end{Alltt} +\kaidan + +\vspace*{4ex} +\hfill +\begin{xy} + \ar (0,0) *{\sum_{n=1}^N2^{-n}}; + (30,0) *\txt{増加して\\1に収束} + ^-{N\to\infty} \end{xy}\!\!\!\!\!\! +\end{z2col} + +\medskip +{\bf 2}. +要素は{\bf 大きさ}や{\bf 位置}が調整でき,{\bf 枠}を付けることなどもできます. + +\hspace{.5cm}\MGNT{add-op}\MGNT{長さ} :大きさの調整. +\MGNT{add-op} には,\red{\tt + - = += -=} がある.\\ +\hspace{1cm}\MGNT{長さ}を指定しない場合は,デフォルト値が用いられる.\\ +\hspace{.5cm}\red{\tt !}\MGNT{ベクトル} :位置の調整(境界までのベクトル +\red{\tt R RD D} $\cdots$ なども可)\\ +\hspace{.5cm}\red{\tt[\MGNT{形}]} :様々な{\bf 形}(\red{\tt[o]}は丸に)を設定可能で,以下の{\bf 枠}もそのひとつ.\\ +\hspace{1cm}\red{\tt [F\MGNT{frame}:\MGNT{opt}]\ \,} :\red{\tt:\MGNT{opt}}は省略可. +\red{\tt F}に(空白無しで続けた)\MGNT{frame} は\\ +\hspace{1.5cm}\red{\tt .\ - =\ \ \ \ \ } :矩形の枠,\MGNT{opt}は\red{\tt<\MGNT{長さ}>}で角の丸みの半径\\ +\hspace{1.5cm}\red{\tt -- o-\ \ \ \ \ } :破線の枠,丸みを帯びた枠\\ +\hspace{1.5cm}\red{\tt , -,\ \ \ \ \ \ } :影つきの枠(\MGNT{opt}は\red{\tt<\MGNT{長さ}>}で影のサイズ)\\ +\hspace{1.5cm}\red{\tt o .o -o oo} :円形の枠,\MGNT{opt}は\red{\tt<\MGNT{長さ}>}で半径を指定\\ +\hspace{1.5cm}\red{\tt ( ) \string^) \string_(\ } :\,{\tt (} の形の括弧(左/右/上/下)\\ +\hspace{1.5cm}\red{\tt\BK\{ \BK\} \string^\{ \string_\}}:\,{\tt \{} の形の括弧(左/右/上/下) + +枠は \red{\tt*\BK frm \MGNT{opt}\{\MGNT{frame}\}} または, +\red{\tt**\BK frm \MGNT{opt}\{\MGNT{frame}\}} によっても描ける.前者は直前の +\text{要素}を囲み,後者はその前の\text{要素}も囲むものとなる. + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} +\{\\ar(0,20) *\{\\times\}*\red{+!D}\{a\};(15,20) *\{\\bigcirc\} + \\ar(0,15) *\red{=0}\{\\times\};(15,15) *\red{=0}\{\\bigcirc\} + \\ar(0,10) *\red{+[F]}\{A\}; (15,10) *\red{+[Fo]}\{B\} + \\ar *\red{++=}\{A\} \red{*\\frm\{o\}}; + (15,3) \red{*+++}=\{B\} \red{*\\frm\{oo\}} \red{**\\frm\{-\}}\}, + (8,-8) \red{*+[Fo]}\{AB\} ="A", + \\ar @(lu,ld) "A";"A" +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{.2ex} +\hfill +\begin{xy} +{\ar(0,20) *{\times}*+!D{a};(15,20) *{\bigcirc} + \ar(0,15) *=0{\times};(15,15)*=0{\bigcirc} + \ar(0,10) *+[F]{A}; (15,10) *+[Fo]{B} + \ar *++={A} *\frm{o};(15,3) *+++={B} *\frm{oo} **\frm{-}}, + (8,-8) *+[Fo]{AB} ="A", + \ar @(lu,ld) "A";"A" +\end{xy}\!\!\!\! +\end{z2col} + +\medskip +{\bf 3}. +\textbf{行列形式の図式}.\hfill{\BACK\ \NEXT}\\ +\textbf{要素}を,直接座標を指定せずに行列の\textbf{成分}として +配置します.\\ +座標を考慮する必要がなく,可換図式のような図式を描くのに便利です. + +\quad +列は \red{\tt\string&} で,行は \red{\tt\BK\BK} で区切り,以下の +ように書きます. + +{\tt +\BK xymatrix\{\\[-.2ex] +\quad \textbf{成分} \string& \textbf{成分} \string& $\cdots$ \BK\BK\\[-.4ex] +\quad \textbf{成分} \string& \textbf{成分} \string& $\cdots$ \BK\BK\\[-.7ex] +\qquad$\cdots$\quad\}} + +\quad +各\textbf{成分}には,配置された\textbf{要素}と,そこを始点と +する\textbf{矢印}の情報があり + +・ \textbf{要素}がテキストの場合,\red{\tt *} は不要.%\\ +%\phantom{・ } +先頭が \red{\tt\BK} でないなら \red{\tt\{ \}} も不要.\\ +・ 矢印の行き先は,成分の番号で指定できる:\\ +\quad \red{\tt[\MGNT{hop}]} :\MGNT{hop}は,\red{\tt r l u d} (右/左/上/下) を +いくつか並べたもの\\ +\qquad たとえば \red{\tt[rrd]} は, +その場所から2つ右で一つ下の成分を意味する.\\ +\quad \red{\tt "\MGNT{行},\MGNT{列}"} :例えば \red{\tt"1,1"} は左上 +の$(1,1)$成分 + +\smallskip +\begin{z2col} +\begin{Alltt} +\red{\\xymatrix\{} \\ar@\{\}\red{[rd]}|\{\\circlearrowright\} + X\\times_Z Y \\ar\red{[r]}_q \\ar\red{[d]}^p \red{&} Y \\ar\red{[d]}_q\red{\\\\} + X \\ar\red{[r]}^q \red{&} Z \red{\}} +\end{Alltt} +\kaidan + +\vspace*{-3ex} +\hfill +\xymatrix{ \ar@{}[rd]|{\circlearrowright} + X\times_Z Y \ar[r]_q \ar[d]^p & Y \ar[d]_p\\ + X \ar[r]^q & Z }\!\!\!\!\!\!\!\! +\end{z2col} + +\begin{z2col} +\begin{Alltt} +\red{\\xymatrix\{} + U \\ar@/_/\red{[ddr]}_y \\ar@\{.>\}\red{[dr]} + |\{x\\otimes y\} \\ar@/^/\red{[drr]}^x \red{\\\\} + \red{&} *+[F-:<3pt>]\{X \\times_Z Y\} + \\ar\red{[d]}^q \\ar\red{[r]}_p \red{&} X \\ar\red{[d]}_f \red{\\\\} + \red{&} Y \\ar\red{[r]}^g \red{&} Z \red{\}} +\end{Alltt} +\kaidan +\vspace*{-1ex} +\hfill +\xymatrix{ + U \ar@/_/[ddr]_y \ar@{.>}[dr]|{x\otimes y} \ar@/^/[drr]^x \\ + & *+[F-:<4pt>]{X \times_Z Y} \ar[d]^q \ar[r]_p & X \ar[d]_f \\ + & Y \ar[r]^g & Z }\!\!\!\! +\end{z2col} + +\vspace*{-3ex} +\section{いろいろな図式} +{\bf 1}.曲がった軸をもつ矢印\\ +円弧と線分を組み合わせて,\textbf{迂回する矢印}を描くことができる.経路は\\ +\quad\red{\tt '\MGNT{目標}} :目標までの線分\\ +\quad\red{\tt `\MGNT{方向} \MGNT{目標}} :出発\MGNT{方向}から\MGNT{目標}に向かって$\frac14$回転する.\\ +\qquad 最初の\MGNT{方向}指定がなければ,前回の方向からの回転となる(次項も). +\\ +\quad\red{\tt `\MGNT{方向} \MGNT{回転の向き} \MGNT{方向} \MGNT{目標}} :最初の\MGNT{方向}へ出発して直線的に移動し,後 + +\qquad の\MGNT{方向}で進むと\MGNT{目標}に到達できる地点で必要な回転をする.\\ +\qquad 方向には \red{\tt r rd d ld l lu u ru} がある.\\ +\qquad\MGNT{回転の向き}は,\red{\tt\string^} (反時計回り) また +は \red{\tt\string_} (時計回り) +\\ +\quad +最後は,同じ向きの矢印を引いて,最終\MGNT{目標}に到達させる. +\\ +\quad +円弧の半径は 10pt であるが \red{\tt/\MGNT{長さ}} により以降変更可能. + +\begin{z2col} +\begin{Alltt} +\\xymatrix\{ + \{\\circ\} \\ar + \red{`r[d] `[rr] `^lu/3pt[rr] [rr]} + &\{\\circ\}&\{\\circ\}\\\\ + \{\\circ\}&\{\\circ\}&\{\\circ\}\\\\ \} +\end{Alltt} +\kaidan +\vspace*{1ex} +\hfill +\xymatrix{ + {\circ} \ar + `r[d] `[rr] + `^lu/3pt[rr] [rr] + &{\circ} &{\circ}\\ + {\circ}&{\circ}&{\circ}\\ } +\end{z2col} + +\medskip +\quad +より一般に,始点と終点とを与えたとき,途中の\textbf{制御点}を指定したB\'ezier曲線 +を使って\textbf{自由曲線}が描けます. + +\centerline{\tt\red{**\BK crv\{\MGNT{制御点} \string& \MGNT{制御点} \string& $\cdots$\}}} + +・ 制御点がないときは,二点を結ぶ線分になります. + +・ 矢印のときと同様 \red{\tt\string~*\{.\}} などを入れて\textbf{線種}指定できます.\\ +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + (0,10)*[o]+\{A\};(20,0)*[o]+\{B\}="B" + \red{**\\crv\{\}} + \red{**\\crv\{~*\{.\}}(10,15)\red{\}} + \red{**\\crv\{}(10,20)\red{&}(20,20)\red{\}} ?>*\\dir\{>\}, "B" + \red{**\\crv\{}(5,10)\red{&}(10,10)\red{&}(15,-10)\red{&}(20,-5)\red{\}} +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{-1ex} +\hfill +\begin{xy} + (0,10)*[o]+{A};(20,0)*[o]+{B}="B" + **\crv{} + **\crv{~*{.}(10,15)} + **\crv{(10,20)&(20,20)} ?>*\dir{>}, "B" + **\crv{(5,10)&(10,10)&(15,-10)&(20,-5)} +\end{xy} +\end{z2col} + +\medskip +{\bf 2}.座標軸の回転\hfill{\BACK\ \NEXT}\\ +\MGNT{ベクトル\tt:} $X$軸の単位ベクトルを定める(回転+スケール変換を行う). + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} \{\\ar (8,0)\}, + (-.5,\red{\\halfrootthree})\red{:} \{\\ar(0,0);(8,0)\}, + (0,0),(-.5,\red{\\halfrootthree})\red{:} \\ar(0,0);(8,0) +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{-.5ex} +\hfill +\begin{xy} +{\ar (8,0)}, (-.5,\halfrootthree): {\ar(0,0);(8,0)}, +(0,0),(-.5,\halfrootthree): \ar(0,0);(8,0) +\end{xy} +\end{z2col} + +\medskip +%座標軸の単位ベクトルを指定することにより,自由なアフィン変換ができますが, +次に,{\tt \BK xymatrix} を使った$\frac\pi4$の整数倍の回転の例を挙げます.\\ +\quad {\tt \BK xymatrix} の直後の指定で\\ +\quad \red{\tt\ @}\MGNT{方向} :\MGNT{方向}に向けた回転をする +(\red{\tt @r}\,:回転なし)\\ +\quad \red{\tt\ @}\MGNT{\it add-op 長さ}:行と列の空きの設定 +(\red{\tt@!}\,:行と列の空きを等しくする)\\ +\quad \red{\tt@C}\MGNT{\it add-op 長さ}:列の空き +(\red{\tt@C!}\,:列の空きを等しくする)\\ +\quad \red{\tt@R}\MGNT{\it add-op 長さ}:行の空き +(\red{\tt@R!}\,:行の空きを等しくする)\\ +\quad \red{\tt@M}\MGNT{\it add-op 長さ}:要素のデフォルトの空き + +\begin{z2col} +\begin{Alltt} +\\xymatrix\red{@=0pt@M=0pt}\{X&Y\\\\Z&W\}\\qquad +\\xymatrix\red{@dr@=0pt@M=0pt}\{X&Y\\\\Z&W\} +\end{Alltt} +\vspace*{-4ex} +\begin{Alltt} +\\xymatrix\red{@dr@C=4mm}\{ + A \\ar[r]^a & B \\ar@\{.>\}[d]^b\\\\ + C \\ar[u]^c & D \\ar@\{.>\}[l]^d \} +\end{Alltt} +\kaidan +\vspace*{-.5ex} +\hfill +\xymatrix@=0pt@M=0pt{X&Y\\Z&W}\qquad +\xymatrix@dr@=0pt@M=0pt{X&Y\\Z&W} + +\vspace*{-1ex} +\hfill +\xymatrix@dr@C=4mm{ + A \ar[r]^a & B \ar@{.>}[d]^b\\ + C \ar[u]^c & D \ar@{.>}[l]^d +}\quad\phantom{.} +\end{z2col} + +\medskip +{\bf 3}.仕様と例\hfill{\BACK}\\[-4ex] +\[\begin{xy} + \ar@{=>} *++!D{\alpha_1} *\cir<4pt>{}; + (10,0) *++!D{\alpha_2} *\cir<4pt>{} +% + \ar@{-} (20,0) *++!D{\alpha_1} *\cir<4pt>{}; + (30,0) *++!D!R(0.4){\alpha_2} *\cir<4pt>{}="A", + \ar@{-} "A";(35,8.61) *++!L{\alpha_3} *\cir<4pt>{} + \ar@{-} "A";(35,-8.61) *++!L{\alpha_4} *\cir<4pt>{}, + \ar@{-} "A";(35,-8.61) *++!L{\alpha_4} *\cir<4pt>{}, +% + \ar@{-} (50,0) *++!D{\alpha_1} *\cir<4pt>{}; + (60,0) *++!D{\alpha_2} *\cir<4pt>{}="B" + \ar@{-} "B";(70,0) *++!D{\alpha_3} *\cir<4pt>{}="C" + \ar@{-} "C";(75,0) \ar@{.} (75,0);(80,0)^*!U{\cdots} + \ar@{-} (80,0);(85,0) *++!D{\alpha_n} *\cir<4pt>{} +\end{xy} +\] +\if\pdf +\begin{verbatim} +\begin{xy} + \ar@{=>} *++!D{\alpha_1} *\cir<4pt>{}; + (10,0) *++!D{\alpha_2} *\cir<4pt>{} + \ar@{-} (20,0) *++!D{\alpha_1} *\cir<4pt>{}; + (30,0) *++!D!R(0.4){\alpha_2} *\cir<4pt>{}="A", + \ar@{-} "A";(35,8.61) *++!L{\alpha_3} *\cir<4pt>{} + \ar@{-} "A";(35,-8.61) *++!L{\alpha_4} *\cir<4pt>{}, + \ar@{-} "A";(35,-8.61) *++!L{\alpha_4} *\cir<4pt>{}, + \ar@{-} (50,0) *++!D{\alpha_1} *\cir<4pt>{}; + (60,0) *++!D{\alpha_2} *\cir<4pt>{}="B" + \ar@{-} "B";(70,0) *++!D{\alpha_3} *\cir<4pt>{}="C" + \ar@{-} "C";(75,0) \ar@{.} (75,0);(80,0)^*!U{\cdots} + \ar@{-} (80,0);(85,0) *++!D{\alpha_n} *\cir<4pt>{} +\end{xy} +\end{verbatim} +\else +このDynkin図式の例( +\keyin{\begin{xy} + \ar@{=>} *++!D{\alpha_1} *\cir<4pt>{}; + (10,0) *++!D{\alpha_2} *\cir<4pt>{} +% + \ar@{-} (20,0) *++!D{\alpha_1} *\cir<4pt>{}; + (30,0) *++!D!R(0.4){\alpha_2} *\cir<4pt>{}="A", + \ar@{-} "A";(35,8.61) *++!L{\alpha_3} *\cir<4pt>{} + \ar@{-} "A";(35,-8.61) *++!L{\alpha_4} *\cir<4pt>{}, + \ar@{-} "A";(35,-8.61) *++!L{\alpha_4} *\cir<4pt>{}, +% + \ar@{-} (50,0) *++!D{\alpha_1} *\cir<4pt>{}; + (60,0) *++!D{\alpha_2} *\cir<4pt>{}="B" + \ar@{-} "B";(70,0) *++!D{\alpha_3} *\cir<4pt>{}="C" + \ar@{-} "C";(75,0) \ar@{.} (75,0);(80,0)^*!U{\cdots} + \ar@{-} (80,0);(85,0) *++!D{\alpha_n} *\cir<4pt>{} +\end{xy} +}{ここ}をクリックすると,ソースがクリップボードにコピーされます) +\fi +では,以下の\textbf{円弧}を描くコマンドを使っています. +\\ +%\begin{verbatim} +%\[\begin{xy} +% \ar@{=>} *++!D{\alpha_1} *\cir<4pt>{}; +% (10,0) *++!D{\alpha_2} *\cir<4pt>{} +%% +% \ar@{-} (20,0) *++!D{\alpha_1} *\cir<4pt>{}; +% (30,0) *++!D!R(0.4){\alpha_2} *\cir<4pt>{}="A", +% \ar@{-} "A";(35,8.61) *++!L{\alpha_3} *\cir<4pt>{} +% \ar@{-} "A";(35,-8.61) *++!L{\alpha_4} *\cir<4pt>{}, +% \ar@{-} "A";(35,-8.61) *++!L{\alpha_4} *\cir<4pt>{}, +%% +% \ar@{-} (50,0) *++!D{\alpha_1} *\cir<4pt>{}; +% (60,0) *++!D{\alpha_2} *\cir<4pt>{}="B" +% \ar@{-} "B";(70,0) *++!D{\alpha_3} *\cir<4pt>{}="C" +% \ar@{-} "C";(75,0) \ar@{.} (75,0);(80,0)^*!U{\cdots} +% \ar@{-} (80,0);(85,0) *++!D{\alpha_n} *\cir<4pt>{} +%\end{xy} +%\] +%\end{verbatim} +\quad +\red{\tt \BK cir<\MGNT{半径}>\{\!\MGNT{方向} \MGNT{回転の向き} \MGNT{方向}\!\}} + +最初の\MGNT{方向}で円周上を\MGNT{回転の向き}(\red{\tt\string^} は反時計回り, +\red{\tt\string_} は時計回り)にスタートし,後の\MGNT{方向}まで円弧を +描きます.\red{\tt\{\ \}}の中を空として,これらを指定しない場合は円を描きます. + +\begin{z2col} +\begin{Alltt} +\\begin\{xy\} + *\red{\\cir<5mm>\{l_d\}}, (10,0) *\red{\\cir<5mm>\{r^d\}}, + (22,0) *+\{M\} *\red{\\cir\{dr_ur\}} +\\end\{xy\} +\end{Alltt} +\kaidan +\vspace*{.1ex} +\hfill +\begin{xy} + *\cir<5mm>{l_d}, (10,0) *\cir<5mm>{r^d}, + (22,0) *+{M} *\cir{dr_ur} +\end{xy}\!\!\!\!\!\! +\end{z2col} + +\medskip +\quad +\Xy-pic は {\TeX} のメモリーを大量に使うため,複雑な図式を扱うと +{\tt TeX capacity exceeded} のエラーが発生することがあります. +それが解消できない場合,より軽い + +\keyin{\usepackage[all,ps,dvisp]{xy} +}{\quad{\tt\BK usepackage[all,ps,dvisp]\{xy\}}} + +としてDVIファイルを作成して下さい.その後 PS ファイルから EPS ファイル, +あるいは PDF ファイルに変換({\tt Ghostscript}+{\tt dvipsk}+{\tt ps2pdf}な +ど)することができます. + +\medskip +\quad +これまで \Xy-pic の基本的な機能をいくつか紹介してきましたが, +その他にも,楕円や多角形,各種ダイアグラムや結び目などに関する +多くの描画機能を持っています. +より詳しい仕様やこれらの機能については, +\if\pdf +dvioutに添付の +\href{http://akagi.ms.u-tokyo.ac.jp/input9.pdf}{Help}, +\else +\href{file:input9.dvi}{添付のHelp}, +\fi +あるいはそこに挙げてある文献などを参照してください. +\end{document} |