Код:
$$\xymatrix{{X_1}\ar[dddd]_{f_1}\ar[rddd]_(.65){f_{1\mathfrak A_1}}\ar[rdd]^{h_{11}}\ar[rrd]^{\tilde g_{1h\alpha}}\ar[rrrr]^{\phi_1}&&&&{X_2}\ar[lld]_{\tilde g_{2\alpha}}\ar[ldd]_{h_{21}}\ar[lddd]^(.65){f_{2\mathfrak A_2}}\ar[dddd]^{f_2}\\&&{\mathbb R}\\&{X'_1}\ar[ldd]_{h_{12}}\ar[d]^(.35)*\txt{\rotatebox{90}{$\supseteq$}}\ar[rr]^{\phi_0}\ar[ru]^{\bar g_{1h\alpha}}&&{X'_2}\ar[d]_(.35)*\txt{\rotatebox{90}{$\supseteq$}}\ar[rdd]^{h_{22}}\ar[lu]_{\bar g_{2\alpha}}\\&{Y_{1\mathfrak A_1}}\ar[ld]^{^{\mathfrak A_1}\pi_1}\ar[rr]^{\bar\phi}\ar[ruu]_(.35){^{\mathfrak A_1}_{h\alpha}\psi_1}&&{Y_{2\mathfrak A_2}}\ar[rd]_{^{\mathfrak A_2}\pi_2}\ar[luu]^(.35){^{\mathfrak A_2}_{\phantom h\alpha}\psi_2}\\{Y_1}\ar[rrrr]^{\phi_2}&&&&{Y_2}}$$
Код:
$\xymatrix{A\ar@{<->}[rrr]&&&B}$
Представляйте себе коммутативную диаграмму как прямоугольную матрицу. Её элементы в одной строке разделяются символами &, строки - парами символов \\.
Если некоторые ячейки матрицы пустые, то вместо них пишутся символы &. Например, во втором примере между
и
имеются две пустых ячейки, поэтому стоят три символа &. Аналогично пустые строки создаются дополнительными символами \\.
В ячейке должно быть написано обозначение узла диаграммы, а следом за обозначением узла - коды стрелок.
Код стрелки начинается с ключевого слова \ar.
Следом идёт обозначение изгиба стрелки (для прямой стрелки не нужно), которое имеет вид @/_длина/ или @/^длина/ (есть и другие конструкции). "Длина" (величина изгиба) указывается в
овских единицах (можно не указывать), направление изгиба определяется относительно направления стрелки, которая считается выходящей из того узла, в котором она закодирована ("_" - вправо, "^" - влево):
или
или
Код:
$\xymatrix{A\ar@/_10pt/@{<->}[rrr]&&&B}$ или $\xymatrix{A\ar@/^10pt/@{<->}[rrr]&&&B}$
$\xymatrix{A&&&B\ar@/_10pt/@{<->}[lll]}$ или $\xymatrix{A&&&B\ar@/^10pt/@{<->}[lll]}$
Третий элемент обозначения стрелки определяет её вид (для обычной стрелки можно опустить). Он имеет вид @{...}. У Львовского приведён ряд примеров, и сказано, что по аналогии можно придумывать другие, которые иногда работают:
Код:
$\xymatrix{A\ar@{-->}[rrr]&&&B}$ $\xymatrix{A\ar@{=>}[rrr]&&&B}$ $\xymatrix{A\ar@{.>}[rrr]&&&B}$
$\xymatrix{A\ar@{>->}[rrr]&&&B}$ $\xymatrix{A\ar@3{->}[rrr]&&&B}$ $\xymatrix{A\ar@{<->}[rrr]&&&B}$
$\xymatrix{A\ar@{->>}[rrr]&&&B}$ $\xymatrix{A\ar@{<=>}[rrr]&&&B}$ $\xymatrix{A\ar@{|->}[rrr]&&&B}$
$\xymatrix{A\ar@{^{(}->}[rrr]&&&B}$ $\xymatrix{A\ar@{-^{>}}[rrr]&&&B}$ $\xymatrix{A\ar@{-_{>}}[rrr]&&&B}$
$\xymatrix{A\ar@{-}[rrr]&&&B}$ $\xymatrix{A\ar@{=}[rrr]&&&B}$ $\xymatrix{A\ar@3{-}[rrr]&&&B}$
Четвёртый (обязательный) элемент указывает направление и длину стрелки. Он имеет вид [...], где в скобках указывается последовательность букв u (вверх), d (вниз), r (вправо), l (влево). Количество букв определяет число шагов в указанном направлении. Во всех предыдущих примерах, кроме самого первого, указаны [rrr] или [lll], что означает три шага вправо или влево.
Код:
$\xymatrix{X\ar[rd]_f\ar[rr]^{\subseteq}&&{v_fX}\ar[ld]^{f_v}\\&Y}$
Пятый (необязательный элемент) - надпись около стрелки. Этот элемент записывается как ^{текст} (слева от направления стрелки) или _{текст} (справа от направления стрелки). Надпись располагается посередине между центрами узлов. Если названия узлов сильно различаются по величине, то можно использовать конструкцию ^-{текст} или _-{текст}, тогда надпись будет посередине стрелки. Можно использовать конструкцию типа ^(0.3){текст} или _(0.3){текст}, в которой число указывает, какую долю расстояния между центрами узлов нужно оставить перед надписью (от начала стрелки).
Код:
$\xymatrix{A\ar[rrr]^{f}_-{f}&&&BBBBB}$
$\xymatrix{A\ar[rrr]^(0.3){f}_(0.7){f}&&&B}$
$\xymatrix{A\ar[rrr]^(0.3){f}_(0.7){f}&&&BBBBB}$
$\xymatrix{A&&&BBBBB\ar[lll]^{f}_-{f}}$
$\xymatrix{A&&&B\ar[lll]^(0.3){f}_(0.7){f}}$
$\xymatrix{A&&&BBBBB\ar[lll]^(0.3){f}_(0.7){f}}$
Для использования пакета
в преамбуле документа должно быть написано
\usepackage[all]{xy}
(на форуме этот пакет включается автоматически).