このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

XyJax: Xyマトリックスを使わない可換図式描画

XyJaxの基本的な使い方」で紹介した\xymatrixコマンドは、自動でレイアウトしてくれるのでとても便利です。が、\xymatrixを使わずに、手動で座標指定をしてレイアウトすることも可能です。Xy-picの基本描画命令と\arコマンドを使います。

\begin{xy}
% markers
%
(0, 0)*+[red]{+};
(60, 0)*+[red]{+};
(0, 30)*+[red]{+};
(60, 30)*+[red]{+};
% vertices
%
(0, 15)*++{\bullet}="left";
(15, 30)*+{A}="A";
(45, 30)*+{B}="B";
(15, 0)*+{C}="C";
(45, 0)*+{D}="D";
(60, 15)*++{\bullet}="right";
% arrows
%
{\ar@{->>}@/_/ "A";"left"};
{\ar@{>->}@/_/ "left";"C"};
{\ar "A";"B"};
{\ar "A";"C"};
{\ar "B";"D"};
{\ar "C";"D"};
{\ar@{->>}@/^/ "B";"right"};
{\ar@{>->}@/^/ "right";"D"};
% commutativity
%
(7, 15)*{\circlearrowleft};
(53, 15)*{\circlearrowright};
(30, 15)*{\circlearrowright};
\end{xy}


\begin{xy}
% markers
%
(0, 0)*+[red]{+};
(60, 0)*+[red]{+};
(0, 30)*+[red]{+};
(60, 30)*+[red]{+};
% vertices
%
(0, 15)*++{\bullet}="left";
(15, 30)*+{A}="A";
(45, 30)*+{B}="B";
(15, 0)*+{C}="C";
(45, 0)*+{D}="D";
(60, 15)*++{\bullet}="right";
% arrows
%
{\ar@{->>}@/_/ "A";"left"};
{\ar@{>->}@/_/ "left";"C"};
{\ar "A";"B"};
{\ar "A";"C"};
{\ar "B";"D"};
{\ar "C";"D"};
{\ar@{->>}@/^/ "B";"right"};
{\ar@{>->}@/^/ "right";"D"};
% commutativity
%
(7, 15)*{\circlearrowleft};
(53, 15)*{\circlearrowright};
(30, 15)*{\circlearrowright};
\end{xy}

この例はマトリックス・レイアウト〈グリッド・レイアウト〉ですが、変則的なレイアウトで描きたいときは座標直接指定になるでしょう。座標直接指定は手間がかかり、やりたいとは思いませんが、“最後の手段”として利用できます。