Приложение Д. Пакет Xy-pic
Сдвинутые стрелки
Стрелки можно сдвигать параллельно себе. Для этого используется конструкция @<...>, где на месте точек стоит длина в TeX'овских единицах, указывающая величину сдвига. Если эта длина положительна, то сдвиг будет влево (если смотреть от начала к концу стрелки), если отрицательна, то вправо:
Еще об изогнутых стрелках
Кроме конструкции @/.../, изгиб стрелки можно задавать конструкцией @( направление_выхода,направление_входа), где направление_выхода и направление_входа — это буквы или пары букв, значение которых показано на следующем рисунке:
![\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}}
}](/sites/default/files/tex_cache/99bd7fe0f687ba19a9332ff96b850709.png)
Пример:
Заодно показано, как с помощью "пустого" указателя направления [] и @(...) -конструкции можно напечатать стрелку, ведущую из формулы в нее же.
Начертания стрелок
В следующей таблице собраны некоторые начертания стрелок (часть из них стрелками, строго говоря, не являются, но в диаграмме могут быть полезны), которые можно получить с помощью @{...}-конструкции.
![]() |
@{-->} |
![]() |
@{=>} |
![]() |
@{.>} |
![]() |
@{>->} |
![]() |
@3{->} |
![]() |
@{<->} |
![]() |
@{->>} |
![]() |
@{<=>} |
![]() |
@{|->} |
![]() |
@{^{(}->} |
![]() |
@{-^{>}} |
![]() |
@{-_{>}} |
![]() |
@{-} |
![]() |
@{=} |
![]() |
@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, и включать в текст полученные с ее помощью графические файлы так, как описано в приложении Б.