Опубликован: 07.02.2007 | Доступ: свободный | Студентов: 3719 / 1147 | Оценка: 4.56 / 3.95 | Длительность: 23:09:00
Специальности: Художник
Дополнительный материал 5:

Приложение Д. Пакет Xy-pic

Сдвинутые стрелки

Стрелки можно сдвигать параллельно себе. Для этого используется конструкция @<...>, где на месте точек стоит длина в TeX'овских единицах, указывающая величину сдвига. Если эта длина положительна, то сдвиг будет влево (если смотреть от начала к концу стрелки), если отрицательна, то вправо:

$
\xymatrix{
A\ar@<1ex>[dr]^f
\ar@<-1ex>[dr]_g\\
&B
}
$
$\xymatrix{
A\ar@<1ex>[dr]^f
\ar@<-1ex>[dr]_g\\
&B
}$

Еще об изогнутых стрелках

Кроме конструкции @/.../, изгиб стрелки можно задавать конструкцией @( направление_выхода,направление_входа), где направление_выхода и направление_входа — это буквы или пары букв, значение которых показано на следующем рисунке:

\xymatrix{
{\mbox{\tt ul}} & {\mbox{\tt u}} & {\mbox{\tt ur}}\\
{\mbox{\tt l}}  & {\phantom x}
\ar@{-}[ul]\ar@{-}[u]\ar@{-}[ur]\ar@{-}[l]\ar@{-}[r]\ar@{-}[dl]\ar@{-}[d]\ar@{-}[dr] & {\mbox{\tt r}}\\
{\mbox{\tt dl}} & {\mbox{\tt l}} &{\mbox{\tt dr}}
}

Пример:

\xymatrix{
A\ar@(ul,dl)[]_f\ar[r]^g&B
}
$\xymatrix{
A\ar@(ul,dl)[]_f\ar[r]^g&B
}$

Заодно показано, как с помощью "пустого" указателя направления [] и @(...) -конструкции можно напечатать стрелку, ведущую из формулы в нее же.

Начертания стрелок

В следующей таблице собраны некоторые начертания стрелок (часть из них стрелками, строго говоря, не являются, но в диаграмме могут быть полезны), которые можно получить с помощью @{...}-конструкции.

{\xymatrix{{}\ar@{-->}[r]&{}}} @{-->}
{\xymatrix{{}\ar@{=>}[r]&{}}} @{=>}
{\xymatrix{{}\ar@{.>}[r]&{}}} @{.>}
{\xymatrix{{}\ar@{>->}[r]&{}}} @{>->}
{\xymatrix{{}\ar@3{->}[r]&{}}} @3{->}
{\xymatrix{{}\ar@{<->}[r]&{}}} @{<->}
${\xymatrix{{}\ar@{->>}[r]&{}}}$
@{->>}
{\xymatrix{{}\ar@{<=>}[r]&{}}} @{<=>}
{\xymatrix{{}\ar@{|->}[r]&{}}} @{|->}
{\xymatrix{{}\ar@{^{(}->}[r]&{}}} @{^{(}->}
{\xymatrix{{}\ar@{-^{>}}[r]&{}}} @{-^{>}}
{\xymatrix{{}\ar@{-_{>}}[r]&{}}} @{-_{>}}
{\xymatrix{{}\ar@{-}[r]&{}}} @{-}
{\xymatrix{{}\ar@{=}[r]&{}}} @{=}
{\xymatrix{{}\ar@3{-}[r]&{}}} @3{-}

Если того, что приведено в таблице, недостаточно, читатель может попробовать скомпоновать еще что-нибудь в этом роде по аналогии (вероятность, что это сработает, отлична от нуля) или обратиться к документации.

Оптимизация и предупреждение ошибок

Пакет Xy-pic заставляет TeX работать буквально на пределе возможностей; файлы, в которых используются Xy-pic'овские конструкции, обрабатываются довольно медленно. Для ускорения работы полезно включить в преамбулу команду \CompileMatrices: в этом случае при первом запуске LaTeX'а информация о ваших \xymatrix будет записана в специальные файлы, а при последующих запусках обрабатываться будут именно они, что сэкономит TeX'у время на развертывание (части из) чудовищного количества макроопределений.

Иногда синтаксис Xy-pic'а вступает в конфликт с синтаксисом других LaTeX'овских команд, что приводит к весьма загадочным сообщениям об ошибках. Чтобы избежать этого, при пользовании Xy-pic'ом полезно применять следующие меры предосторожности:

  • в аргументе команды \xymatrix каждую из формул, соединяемых стрелками, и каждую надпись при стрелке стоит заключать в фигурные скобки (автор поленился это сделать в вышеприведенных примерах, но в них формулы были очень просты, что снижает шанс нарваться на неприятность);
  • если в вашей формуле присутствует что-то еще, кроме одной-единственной команды \xymatrix, возьмите, от греха подальше, всю эту команду в фигурные скобки, вот так:
    {\xymatrix{....}}
  • не пытайтесь определять собственные сокращенные обозначения для того, что может быть в аргументе команды \xymatrix: по \tex'ническим причинам эти макросы могут не сработать.

Еще одно замечание: пакет Xy-pic (как и подавляющее большинство LaTeX'овских стилевых пакетов) распространяется бесплатно; тем не менее, если вы пользуетесь им в своем документе, то авторы этого пакета очень просят вас отразить это обстоятельство в сноске к статье или в выходных данных книги.

Будем надеяться, что описанные выше возможности Xy-pic'а достаточны для набора ваших диаграмм. Как мы уже отмечали, этот пакет предоставляет гораздо большие графические возможности, но если нужна сложная графика, разумнее освоить программу metapost, подготавливающую рисунки в формате PostScript, и включать в текст полученные с ее помощью графические файлы так, как описано в приложении Б.

Василий Майоров
Василий Майоров
Даврон Юсупалиев
Даврон Юсупалиев
Алексей Башинов
Алексей Башинов
Россия, Нижний Новгород, ННГУ им. Н.И. Лобачевского, 2014