lyx_mirror/lib/examples/ru/Graphics_and_Insets/XY-Pic.lyx
2024-10-09 17:35:55 +02:00

4275 lines
82 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#LyX 2.4 created this file. For more info see https://www.lyx.org/
\lyxformat 620
\begin_document
\begin_header
\save_transient_properties true
\origin /systemlyxdir/examples/ru/Graphics_and_Insets/
\textclass scrartcl
\begin_preamble
% DO NOT ALTER THIS PREAMBLE!!!
%
% This preamble is designed to ensure that the file prints
% out as advertised. If you mess with this preamble,
% parts of this document may not print out as expected. If you
% have problems LaTeXing this file, please contact
% the documentation team
% email: lyx-docs@lists.lyx.org
\usepackage[all]{xy}
% define new commands used in sec. 5.1
\newcommand{\xyR}[1]{
\xydef@\xymatrixrowsep@{#1}}
\newcommand{\xyC}[1]{
\xydef@\xymatrixcolsep@{#1}}
\newdir{|>}{!/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}}
% a pdf-bookmark for the TOC is added
\let\myTOC\tableofcontents
\renewcommand\tableofcontents{%
\pdfbookmark[1]{\contentsname}{}
\myTOC }
% redefine the \LyX macro for PDF bookmarks
\def\LyX{\texorpdfstring{%
L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
{LyX}}
% Use serif font
\addtokomafont{disposition}{\rmfamily}
\addtokomafont{descriptionlabel}{\rmfamily}
\end_preamble
\options BCOR7.5mm
\use_default_options false
\maintain_unincluded_children no
\language russian
\language_package \usepackage[russian,shorthands=off]{babel}
\inputencoding utf8
\fontencoding auto
\font_roman "default" "DejaVu Serif"
\font_sans "default" "DejaVu Sans"
\font_typewriter "default" "DejaVu Sans Mono"
\font_math "auto" "auto"
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_roman_osf false
\font_sans_osf false
\font_typewriter_osf false
\font_sf_scale 100 100
\font_tt_scale 100 100
\use_microtype true
\use_dash_ligatures false
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\float_placement class
\float_alignment class
\paperfontsize 12
\spacing single
\use_hyperref true
\pdf_title "Использование XY-pc в LyX"
\pdf_author "H. Peter Gumm"
\pdf_subject "Руководство LyX по XY-pic"
\pdf_keywords "LyX"
\pdf_bookmarks true
\pdf_bookmarksnumbered true
\pdf_bookmarksopen true
\pdf_bookmarksopenlevel 2
\pdf_breaklinks false
\pdf_pdfborder false
\pdf_colorlinks true
\pdf_backref false
\pdf_pdfusetitle false
\pdf_quoted_options "linkcolor=black, citecolor=black, urlcolor=blue, filecolor=blue,pdfpagelayout=OneColumn, pdfnewwindow=true,pdfstartview=XYZ, plainpages=false"
\papersize a4
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 1
\use_package mathtools 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date true
\justification true
\use_refstyle 0
\use_minted 0
\use_lineno 0
\notefontcolor #0000ff
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip halfline
\is_math_indent 0
\math_numbering_side default
\quotes_style russian
\dynamic_quotes 0
\papercolumns 1
\papersides 2
\paperpagestyle default
\tablestyle default
\tracking_changes false
\output_changes false
\change_bars false
\postpone_fragile_content false
\html_math_output 0
\html_css_as_file 0
\html_be_strict true
\docbook_table_output 0
\docbook_mathml_prefix 1
\end_header
\begin_body
\begin_layout Title
Использование
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic в \SpecialChar LyX
\end_layout
\begin_layout Author
автор:
H.
Peter Gumm
\begin_inset Foot
status collapsed
\begin_layout Plain Layout
Перевод:
Геннадий Чернышев,
редактирование:
Юрий Скалько.
\end_layout
\end_inset
\end_layout
\begin_layout Abstract
В последних версиях \SpecialChar LyX
при установленном пакете
\series bold
preview
\series default
в системе \SpecialChar LaTeX
стало удобно использовать пакет создания диаграмм
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic.
Появилась возможность редактировать и отображать диаграммы в главном окне \SpecialChar LyX
.
Здесь мы покажем,
как использовать команду
\family typewriter
\backslash
xymatrix
\family default
из пакета
\series bold
xypic
\series default
в \SpecialChar LyX
для создания,
редактирования и предварительного просмотра диаграмм,
которые обычно используются в теории категорий,
алгебре и смежных областях.
\end_layout
\begin_layout Abstract
\begin_inset CommandInset toc
LatexCommand tableofcontents
\end_inset
\end_layout
\begin_layout Section
Введение
\end_layout
\begin_layout Standard
Пакет
\series bold
xypic
\series default
долгое время служил в качестве удобного инструмента для построения графов и диаграмм в \SpecialChar LaTeX
.
К сожалению,
его использование в \SpecialChar LyX
долгое время было ограничено печально известным рамочным кодом \SpecialChar TeX
,
а это означает,
что редактор \SpecialChar LyX
мог отображать только исходный код \SpecialChar LaTeX
,
а не готовую диаграмму.
Новый пакет
\series bold
preview
\series default
для \SpecialChar LaTeX
,
который является частью проекта AUC\SpecialChar TeX
\begin_inset CommandInset citation
LatexCommand cite
key "AUCTeX"
literal "true"
\end_inset
,
наконец-то дает возможность построения,
интерактивного редактирования и отображения
\series bold
xypic
\series default
-диаграмм в \SpecialChar LyX
.
\end_layout
\begin_layout Standard
\begin_inset VSpace defskip
\end_inset
\end_layout
\begin_layout Standard
\align center
\begin_inset Graphics
filename xyfigure.png
lyxscale 75
width 75col%
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace defskip
\end_inset
\end_layout
\begin_layout Standard
В этом руководстве мы расскажем,
как можно использовать
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic в \SpecialChar LyX
,
как можно создавать и редактировать диаграммы.
\end_layout
\begin_layout Standard
Существуют два режима работы:
для начала,
и для некоторых первых тестов,
может быть легче всего ввести код
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic в окне \SpecialChar LyX
,
выделить его и преобразовать далее в графическое представление,
нажав
\family sans
Ctrl+M
\family default
или
\family sans
Ctrl+Shift+M
\family default
.
Если же вы используете
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic регулярно,
или если желаете изменить исходную диаграмму,
вам нужно будет менять ее с помощью редактора формул \SpecialChar LyX
.
\end_layout
\begin_layout Standard
Как только курсор попадает в область диаграммы,
то она отображается в виде совокупности узлов и команд для стрелок.
Они могут быть изменены в интерактивном режиме.
Когда курсор покидает область редактирования,
диаграмма появляется вновь.
\end_layout
\begin_layout Standard
Далее,
в первых двух разделах объясняется,
как использовать \SpecialChar LyX
в первом упомянутом режиме,
вводятся все функции
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic,
которые могут быть использованы для построения коммутативных диаграмм,
графов или конечных автоматов.
В разделе
\begin_inset CommandInset ref
LatexCommand ref
reference "sec:math-editor"
nolink "false"
\end_inset
объясняется,
как использовать команды
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic в области математического редактирования.
\end_layout
\begin_layout Standard
В наши намерения не входит написание еще одного введения в
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic.
Мы хотим показать,
как наиболее важные команды пакета работают в \SpecialChar LyX
,
так как использование клавиш,
описанное в руководстве по
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic
\begin_inset CommandInset citation
LatexCommand cite
key "xypic manual"
literal "true"
\end_inset
,
не всегда будет правильным в \SpecialChar LyX
.
\end_layout
\begin_layout Section
Начальная подготовка
\end_layout
\begin_layout Standard
Последующие действия предполагают,
что в системе \SpecialChar LaTeX
установлены пакеты
\series bold
xypic
\series default
и
\series bold
preview
\series default
.
Они доступны на CTAN,
см.
в
\begin_inset CommandInset citation
LatexCommand cite
key "xypic"
literal "true"
\end_inset
и
\begin_inset CommandInset citation
LatexCommand cite
key "instant-preview"
literal "true"
\end_inset
.
После их установки может понадобиться выполнить
\family sans
Инструменты\SpecialChar menuseparator
Обновить конфигурацию
\family default
из главного меню \SpecialChar LyX
.
Действия для набора первой диаграммы в \SpecialChar LyX
следующие:
\end_layout
\begin_layout Enumerate
Активация и тестирование
\series bold
preview
\end_layout
\begin_deeper
\begin_layout Enumerate
Запустите \SpecialChar LyX
,
выберите
\family sans
Инструменты\SpecialChar menuseparator
Настройки\SpecialChar menuseparator
Вид
\begin_inset space \space{}
\end_inset
и
\begin_inset space \space{}
\end_inset
поведение\SpecialChar menuseparator
Вид
\family default
и установите для
\family sans
Мгновенный предпросмотр
\family default
значение
\shape italic
Вкл.
\end_layout
\begin_layout Enumerate
Протестируйте режим предварительного просмотра,
создав документ \SpecialChar LyX
(с помощью меню
\family sans
Файл\SpecialChar menuseparator
Создать
\family default
или сочетания клавиш
\family sans
Ctrl+N
\family default
) и введя какую-нибудь математическую формулу,
например
\begin_inset Formula $a+b=c$
\end_inset
.
\end_layout
\begin_layout Enumerate
Установите курсор вне формулы и убедитесь в изменении внешнего вида формулы,
которая должна выглядеть как в DVI- или PDF-документе.
\end_layout
\end_deeper
\begin_layout Enumerate
Активация и тестирование
\series bold
xypic
\family typewriter
\series default
:
\end_layout
\begin_deeper
\begin_layout Enumerate
Введите следующую последовательность символов в документ \SpecialChar LyX
:
\family typewriter
\begin_inset Newline newline
\end_inset
\backslash
xymatrix{A
\backslash
ar[r] & B}
\family default
.
\end_layout
\begin_layout Enumerate
Выделите введенный текст и выберите
\family sans
Вставка\SpecialChar menuseparator
Математика\SpecialChar menuseparator
Формула
\family default
,
или используйте сочетание клавиш
\family sans
Ctrl+M
\family default
.
\end_layout
\begin_layout Enumerate
Установите курсор вне области редактирования и подождите немного,
чтобы увидеть появление стрелки:
\begin_inset Formula $\xymatrix{A\ar[r] & B}
$
\end_inset
.
\end_layout
\end_deeper
\begin_layout Section
Коммутативные диаграммы
\end_layout
\begin_layout Standard
Следующая диаграмма,
которая заимствована из документации по
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic
\begin_inset CommandInset citation
LatexCommand cite
key "xypic manual"
literal "true"
\end_inset
,
предоставляет пример многих возможностей,
доступных в этом пакете.
Ее исходный код:
\end_layout
\begin_layout LyX-Code
\backslash
xymatrix{
\begin_inset Newline newline
\end_inset
U
\backslash
ar@/_{1pc}/[ddr]_
\backslash
psi
\backslash
ar@/^{1pc}/[drr]^
\backslash
varphi
\begin_inset Newline newline
\end_inset
\backslash
ar@{.>}[dr]|-{(x,y)}
\backslash
\backslash
\begin_inset Newline newline
\end_inset
& X
\backslash
times_Z Y
\backslash
ar[d]^q
\backslash
ar[r]_p & X
\backslash
ar[d]_f
\backslash
\backslash
\begin_inset Newline newline
\end_inset
& Y
\backslash
ar[r]^g & Z }
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout Standard
Опять же,
чтобы перевести этот код в графический вид,
выделите все,
начиная с
\family typewriter
\backslash
xymatrix{
\family default
\SpecialChar ldots
до закрывающей скобки \SpecialChar ldots
\family typewriter
}
\family default
и превратите его в формулу,
как описано выше.
После покидания курсором математической области,
вы должны увидеть диаграмму в ее полном графическом великолепии:
\end_layout
\begin_layout Standard
\begin_inset Formula $\xymatrix{U\ar@/_{1pc}/[ddr]_{\psi}\ar@/{}^{1pc}/[drr]^{\varphi}\ar@{.>}[dr]|-{(x,y)}\\
& X\times_{Z}Y\ar[d]^{q}\ar[r]_{p} & X\ar[d]_{f}\\
& Y\ar[r]^{g} & Z
}
$
\end_inset
\end_layout
\begin_layout Subsection
Структура матрицы для диаграмм
\end_layout
\begin_layout Standard
\family typewriter
\backslash
xymatrix
\family default
использует матрицу,
чтобы задать расположение вершин диаграммы.
Для примера,
приведенного выше,
необходима матрица
\begin_inset Formula $3\times3$
\end_inset
,
в которой 5 элементов используются для вершин
\begin_inset Formula $U$
\end_inset
,
\begin_inset Formula $X\times_{Z}Y$
\end_inset
,
\begin_inset Formula $X$
\end_inset
,
\begin_inset Formula $Y$
\end_inset
,
\begin_inset Formula $Z$
\end_inset
,
другие позиции остаются пустыми.
В этом случае,
следующая матрица определяет структуру:
\end_layout
\begin_layout LyX-Code
\backslash
xymatrix{
\begin_inset Newline newline
\end_inset
U
\backslash
\backslash
\begin_inset Newline newline
\end_inset
& X
\backslash
times_Z Y & X
\backslash
\backslash
\begin_inset Newline newline
\end_inset
& Y & Z }
\end_layout
\begin_layout Standard
Этот шаблон должен быть совместим с \SpecialChar LaTeX
:
имеются три строки,
первые две оканчиваются маркером конца строки
\family typewriter
\backslash
\backslash
\family default
.
Каждая строка состоит из значений,
разделенных амперсандом
\family typewriter
&
\family default
.
\end_layout
\begin_layout Subsection
Стрелки
\end_layout
\begin_layout Standard
Введя вершины,
можно добавить стрелки между ними.
Основной
\series bold
xypic
\series default
-командой для создания стрелки является
\family typewriter
\backslash
ar
\family default
,
она заносится в ячейку матрицы,
где должна начинаться стрелка.
Цель стрелки определяется командами направления:
\family typewriter
u
\family default
(up —
вверх),
\family typewriter
d
\family default
(down —
вниз),
\family typewriter
l
\family default
(left —
влево) либо
\family typewriter
r
\family default
(right —
вправо).
Они могут быть скомпонованы в путь и заключаются в квадратные скобки.
Так,
например,
стрелки из вершины
\begin_inset Formula $U$
\end_inset
в верхнем левом углу вниз и вправо к вершинам
\begin_inset Formula $X\times_{Z}Y$
\end_inset
,
\begin_inset Formula $Y$
\end_inset
и
\begin_inset Formula $X$
\end_inset
,
определяются,
соответственно,
как
\family typewriter
\backslash
ar[dr]
\family default
,
\family typewriter
\backslash
ar[ddr]
\family default
и
\family typewriter
\backslash
ar[drr]
\family default
.
Таким образом,
определенная выше диаграмма со всеми добавленными стрелками,
превращается в:
\end_layout
\begin_layout LyX-Code
\backslash
xymatrix{
\begin_inset Newline newline
\end_inset
U
\backslash
ar[ddr]
\backslash
ar[drr]
\backslash
ar[dr]
\backslash
\backslash
\begin_inset Newline newline
\end_inset
& X
\backslash
times_Z Y
\backslash
ar[d]
\backslash
ar[r]& X
\backslash
ar[d]
\backslash
\backslash
\begin_inset Newline newline
\end_inset
& Y
\backslash
ar[r] & Z }
\end_layout
\begin_layout LyX-Code
\begin_inset Formula $\xymatrix{U\ar[ddr]\ar[drr]\ar[dr]\\
& X\times_{Z}Y\ar[d]\ar[r] & X\ar[d]\\
& Y\ar[r] & Z
}
$
\end_inset
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout Subsection
Метки
\end_layout
\begin_layout Standard
Метки прикрепляют к стрелкам,
путем задания их в качестве верхнего или нижнего индексов
\family typewriter
\backslash
ar
\family default
-команд.
Так,
\family typewriter
\backslash
ar[drr]^
\backslash
varphi
\family default
определяет стрелку,
идущую к ячейке,
отстоящей от текущей на одну позицию вниз и две позиции вправо,
и имеющую метку
\begin_inset Formula $\varphi$
\end_inset
,
расположенную над этой стрелкой.
Чтобы расположить метку под стрелкой,
укажите ее в нижнем индексе,
как в
\family typewriter
\backslash
ar[ddr]_
\backslash
psi
\family default
.
Это объяснение верно лишь для стрелок,
направленных вправо.
А точнее,
представьте себе,
что вы смотрите по стрелке в направлении,
в котором она указывает.
Тогда верхний индекс располагает метку слева,
а нижний индекс —
справа.
Так,
стрелка,
указывающая справа налево,
например,
\family typewriter
\backslash
ar[l]^
\backslash
alpha_
\backslash
beta
\family default
,
будет помечена символом
\begin_inset Formula $\alpha$
\end_inset
под стрелкой и символом
\begin_inset Formula $\beta$
\end_inset
над стрелкой,
т.е.
\begin_inset space \space{}
\end_inset
\begin_inset Formula $\xymatrix{\ & \ \ar[l]_{\beta}^{\alpha}}
$
\end_inset
\begin_inset space \space{}
\end_inset
.
Использование символа
\family typewriter
|
\family default
вместо
\family typewriter
^
\family default
или
\family typewriter
_
\family default
позволяет даже поместить метку прямо на стрелке (частично перекрывая ее).
\end_layout
\begin_layout Standard
Как правило,
метка располагается посередине между началом стрелки и целевыми объектами.
На первой диаграмме центральная стрелка начинается с
\begin_inset Formula $U$
\end_inset
имеет метку
\begin_inset Formula $(x,y)$
\end_inset
в середине стрелки,
а не посередине между двумя объектами,
которые она соединяет.
Это достигается с помощью знака минус перед текстом метки,
то есть:
\family typewriter
\backslash
ar[dr]|-{(x,y)}
\family default
.
\end_layout
\begin_layout LyX-Code
\backslash
xymatrix{
\begin_inset Newline newline
\end_inset
U
\backslash
ar[ddr]_
\backslash
psi
\backslash
ar[drr]^
\backslash
varphi
\backslash
ar[dr]|-{(x,y)}
\backslash
\backslash
\begin_inset Newline newline
\end_inset
& X
\backslash
times_Z Y
\backslash
ar[d]^q
\backslash
ar[r]_p& X
\backslash
ar[d]_f
\backslash
\backslash
\begin_inset Newline newline
\end_inset
& Y
\backslash
ar[r]^g & Z }
\end_layout
\begin_layout LyX-Code
\begin_inset Formula $\xymatrix{U\ar[ddr]_{\psi}\ar[drr]^{\varphi}\ar[dr]|-{(x,y)}\\
& X\times_{Z}Y\ar[d]^{q}\ar[r]_{p} & X\ar[d]_{f}\\
& Y\ar[r]^{g} & Z
}
$
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic обычно позволяет смещать метки к концу или началу стрелки с помощью префикса метки с отношением,
как,
например,
\family typewriter
(.3)
\family default
.
В \SpecialChar LyX
это работает только для меток,
которые размещены внутри стрелки,
например,
\family typewriter
\backslash
ar[r]|(0.3){
\backslash
phi}
\family default
.
\end_layout
\begin_layout Standard
Для меток,
расположенных снизу или сверху стрелки,
это не работает.
Соответствующий
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic код,
такой как
\family typewriter
\backslash
ar[r]^(.3)
\backslash
phi
\family default
или
\family typewriter
\backslash
ar[r]_(.3)
\backslash
psi
\family default
неправильно интерпретируется редактором формул \SpecialChar LyX
.
Для достижения желаемого эффекта в последнем разделе настоящего руководства предлагаются два обходных пути.
\end_layout
\begin_layout Subsection
Видоизменение стрелок
\end_layout
\begin_layout Standard
Изменение вида,
формы или расположения стрелок производится с использованием символа
\family typewriter
@
\family default
.
Далее следует пара согласованных скобок,
где вариант скобочной пары:
\family typewriter
{}
\family default
,
\family typewriter
<>
\family default
или
\family typewriter
//
\family default
,
указывает,
хотим мы изменить вид или кривизну стрелки.
Различные модификации могут быть применены к одной и той же стрелке одновременно.
\end_layout
\begin_layout Subsubsection
Варианты стрелок
\end_layout
\begin_layout Standard
Для линии стрелки применимы различные шаблоны,
такие как
\emph on
сплошной
\emph default
,
\emph on
пунктирный
\emph default
,
\emph on
штриховой
\emph default
или
\emph on
двойной
\emph default
.
Их можно комбинировать с различными видами начала и конца стрелок.
В целом,
внешний вид стрелок описывается командой
\family typewriter
\backslash
ar
\family default
,
за которой следуют знак
\family typewriter
@
\family default
и фигурные скобки
\family typewriter
{
\family default
\SpecialChar ldots
\family typewriter
}
\family default
,
содержащие символы,
описывающие вид начала,
линии и конца стрелки.
Эти символы были выбраны так,
чтобы придать текстовому представлению сходство с реальным изображением.
Например,
\family typewriter
\backslash
ar@{>..>\SpecialChar ligaturebreak
>}
\family default
кодирует стрелку с разветвленным началом,
пунктирной линией и двойным наконечником.
Ряд других вариантов для стрелок приведен в таблице ниже.
Обратите внимание,
что начала стрелок,
указывающих вложения,
например,
\begin_inset Formula $\xymatrix{A\ar@{^{(}->}[r] & B}
$
\end_inset
,
описываются помещением открывающей (закрывающей) скобки в верхний (нижний) индекс,
например,
как в
\family typewriter
\backslash
ar@{^(->}[r]
\family default
.
\end_layout
\begin_layout Standard
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="11" columns="2">
<features tabularvalignment="middle">
<column alignment="center" valignment="top" width="0pt">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Результат
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Исходный код в \SpecialChar LyX
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{-->}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{-->}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{..>}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{..>}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{~>}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{~>}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{->>}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{->\SpecialChar ligaturebreak
>}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{-->>}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{-->\SpecialChar ligaturebreak
>}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{>->>}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{>->\SpecialChar ligaturebreak
>}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{_{(}->}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{_(->}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{^{(}->}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{^(->}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{|-|}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{|-|}
\end_layout
\end_inset
</cell>
</row>
</lyxtabular>
\end_inset
\end_layout
\begin_layout Standard
\noindent
Размещая за знаком
\family typewriter
@
\family default
один из символов:
\family typewriter
2
\family default
,
\family typewriter
3
\family default
,
\family typewriter
_
\family default
либо
\family typewriter
^
\family default
,
можно создавать стрелки,
соответственно с двойной,
тройной линией,
без верхней\SpecialChar breakableslash
нижней части начала или конца стрелки;
стрелки также не обязательно могут иметь наконечники.
Вот некоторые примеры подобных ситуаций:
\end_layout
\begin_layout Standard
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="8" columns="2">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Результат
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Исходный код в \SpecialChar LyX
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@2[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@2
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@3[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@3
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@_{->}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@_{->}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@^{->}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@^{->}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@^{>>->>}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@^{>\SpecialChar ligaturebreak
>->\SpecialChar ligaturebreak
>}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@{^{<}-_{>}}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@{^<-_>}
\end_layout
\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\begin_inset Formula $\xymatrix{\ \ar@2{--}[r] & \ }
$
\end_inset
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
\backslash
ar@2{--}
\end_layout
\end_inset
</cell>
</row>
</lyxtabular>
\end_inset
\end_layout
\begin_layout Subsubsection
Конструирование собственных стрелок
\end_layout
\begin_layout Standard
С определенными ограничениями существует даже способ разработать собственные стрелки.
Используя некоторые символы (из числа
\family typewriter
><|ox+/()[
\family default
) можно даже создать собственные наконечники для стрелок с помощью команды
\family typewriter
\backslash
newdir
\family default
,
заданной в преамбуле.
За деталями мы отсылаем к руководству по
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic,
из которого было взято в качестве примера:
\end_layout
\begin_layout LyX-Code
\family typewriter
\backslash
newdir{|>}{!/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}}
\family default
.
\end_layout
\begin_layout Standard
\noindent
Эта команда определяет новый наконечник стрелки,
на который ссылаются в виде
\family typewriter
|>
\family default
,
например,
в
\family typewriter
\backslash
ar@{-|>}[r]
\family default
,
и который корректно отображается в \SpecialChar LyX
следующим образом:
\begin_inset Formula
\[
\xymatrix{A\ar@{-|>}[r] & \ \ B}
\]
\end_inset
\end_layout
\begin_layout Subsection
Позиционирование стрелок
\end_layout
\begin_layout Standard
Стрелки можно смещать по вертикали,
используя модификатор
\family typewriter
@<
\begin_inset Formula $\ldots$
\end_inset
>
\family default
,
где многоточие заменяется положительной или отрицательной величиной.
Например,
для изображения пары взаимно противоположных стрелок между двумя вершинами,
мы смещаем их,
чтобы видеть их раздельно.
Обратите внимание,
что направление сдвига (положительное) находится слева,
если смотреть по стрелке.
Так
\end_layout
\begin_layout LyX-Code
\family typewriter
\backslash
xymatrix{
\backslash
circ
\backslash
ar@<1ex>[r]&
\backslash
circ
\backslash
ar@<1ex>[l]}
\end_layout
\begin_layout Standard
\noindent
порождает
\begin_inset Formula
\[
\xymatrix{\circ\ar@<1ex>[r] & \circ\ar@<1ex>[l]}
\]
\end_inset
\end_layout
\begin_layout Subsubsection
Внутритекстовые или центрированные диаграммы
\end_layout
\begin_layout Standard
Стрелки и диаграммы могут использоваться внутри текста,
как в этом случае:
\begin_inset Formula $\xymatrix{\circ\ar@<1ex>[r] & \circ\ar@<1ex>[l]}
$
\end_inset
.
Когда их код записан в \SpecialChar LyX
,
как приведено выше,
выделите его и выполните,
либо
\family sans
Ctrl+M —
\family default
для обычной формулы,
либо
\family sans
Ctrl+Shift+M —
\family default
для выделенной формулы.
Диаграммы,
созданные для размещения внутри строки,
в дальнейшем могут быть расположены отдельно по центру,
или,
наоборот,
центрированные диаграммы могут быть переведены во внутритекстовый формат,
используя
\family sans
Правка\SpecialChar menuseparator
Математика\SpecialChar menuseparator
Изменить вид формулы
\family default
.
\end_layout
\begin_layout Subsection
Изгибающиеся стрелки
\end_layout
\begin_layout Standard
Существуют два простых способа сделать стрелки изгибающимися.
В первом задается явное значение,
на которое должна сместиться середина стрелки,
в другом методе внимание уделяется направлениям начала и конца стрелки.
Необходимый при этом изгиб стрелки определяется автоматически.
Опишем оба метода.
\end_layout
\begin_layout Subsubsection
Смещение оси
\end_layout
\begin_layout Standard
Для задания изгиба стрелок используется модификатор
\family typewriter
@/
\family default
\begin_inset Formula $\ldots$
\end_inset
\family typewriter
/
\family default
.
Многоточие означает величину изгиба,
которая должна быть введена в нижний или верхний индекс.
В качестве примера ниже приведен код для получения двух противоположных стрелок между
\family typewriter
A
\family default
и
\family typewriter
B
\family default
,
каждая с изгибом на 0,5
\begin_inset space \thinspace{}
\end_inset
pc:
\end_layout
\begin_layout LyX-Code
\family typewriter
\backslash
xymatrix{A
\backslash
ar@/_{.5pc}/[r] & B
\backslash
ar@/_{.5pc}/[l]}
\end_layout
\begin_layout Standard
\begin_inset Formula
\[
\xymatrix{A\ar@/{}_{.5pc}/[r] & B\ar@/{}_{.5pc}/[l]}
\]
\end_inset
\end_layout
\begin_layout Subsubsection
Указание направлений
\end_layout
\begin_layout Standard
Альтернативой для указания изгиба стрелок является указание их
\begin_inset Quotes rld
\end_inset
азимутальных углов
\begin_inset Quotes rrd
\end_inset
,
под которыми они покидают вершины-источники,
и их направления к вершинам-целям.
Но,
вместо использования терминов
\begin_inset Quotes rld
\end_inset
север
\begin_inset Quotes rrd
\end_inset
,
\begin_inset Quotes rld
\end_inset
северо-восток
\begin_inset Quotes rrd
\end_inset
,
\begin_inset Quotes rld
\end_inset
восток
\begin_inset Quotes rrd
\end_inset
и т.
\begin_inset space \thinspace{}
\end_inset
д.,
направления названы
\family typewriter
u
\family default
,
\family typewriter
ur
\family default
,
\family typewriter
r
\family default
,
\family typewriter
dr
\family default
,
\family typewriter
d
\family default
,
\family typewriter
dl
\family default
,
\family typewriter
l
\family default
,
\family typewriter
ul
\family default
,
обозначающие,
соответственно,
вверх,
вверх-вправо,
вправо,
вниз-вправо,
и т.
\begin_inset space \thinspace{}
\end_inset
д.
Направление задается как
\family typewriter
@(
\family default
\emph on
out
\emph default
,
\emph on
in
\family typewriter
\emph default
)
\family default
,
где
\emph on
out
\emph default
задает направление выхода из первого объекта,
а
\emph on
in
\emph default
обозначает направление входа в целевой объект.
В качестве примера,
показаны некоторые изгибы стрелок и отдельная замыкающаяся стрелка,
которая получается,
когда для стрелки не указывается цель,
а только ее входящее и исходящее направления:
\end_layout
\begin_layout Standard
\begin_inset Formula
\[
\xymatrix{A\ar@(dr,dl)[r]\ar@(dr,dl)[rr] & B\ar@(d,r)[dl] & C\\
E\ar@(ul,ur)
}
\]
\end_inset
\end_layout
\begin_layout LyX-Code
\backslash
xymatrix{A
\backslash
ar@(dr,dl)[r]
\backslash
ar@(dr,dl)[rr]
\begin_inset Newline newline
\end_inset
&B
\backslash
ar@(d,r)[dl] &C
\backslash
\backslash
\begin_inset Newline newline
\end_inset
E
\backslash
ar@(ul,ur)}
\end_layout
\begin_layout Subsection
Изменение вершин диаграммы
\end_layout
\begin_layout Standard
Приведенный выше пример напоминает диаграмму конечного автомата,
за исключением того,
что в такой диаграмме состояния будут заключаться в небольшие окружности,
а двойными окружностями будут обозначаться конечные состояния.
\end_layout
\begin_layout Subsubsection
Обрамление объектов
\end_layout
\begin_layout Standard
С использованием
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic элементы диаграммы могут быть заключены в одиночные или двойные рамки,
такие как
\begin_inset Formula $\xymatrix{*+[F]{A}}
$
\end_inset
или
\begin_inset Formula $\xymatrix{*+[F=]{B}}
$
\end_inset
,
указанием префикса вида
\family typewriter
*[F-]
\family default
или
\family typewriter
*[F=]
\family default
перед элементом.
Сам элемент заключается в фигурные скобки \SpecialChar LyX
.
Обычно рамка очень плотно охватывает элемент,
поэтому,
для увеличения пространства внутри рамки в префиксе может использоваться символ
\family typewriter
+
\family default
или символы
\family typewriter
++
\family default
.
Круговые рамки,
такие как
\begin_inset Formula $\xymatrix{*++[o][F]{A}}
$
\end_inset
и
\begin_inset Formula $\xymatrix{*++[o][F=]{B}}
$
\end_inset
,
получаются указанием дополнительной спецификации
\family typewriter
[o]
\family default
.
Так,
последний элемент был описан как
\family typewriter
*++[o][F=]{B}
\family default
.
Таким образом,
для изображения автомата
\end_layout
\begin_layout Standard
\begin_inset Formula
\[
\xymatrix{\txt{start}\ar[r] & *++[o][F]{1}\ar[r] & *++[o][F=]{2}\ar@(ur,dr)\ar@(ur,ul)[l]}
\]
\end_inset
\end_layout
\begin_layout Standard
\noindent
можно использовать следующий код
\end_layout
\begin_layout LyX-Code
\backslash
xymatrix{
\backslash
txt{start}
\backslash
ar[r]
\end_layout
\begin_layout LyX-Code
& *++[o][F]{1}
\backslash
ar[r]
\end_layout
\begin_layout LyX-Code
& *++[o][F=]{2}
\backslash
ar@(ur,dr)
\backslash
ar@(ur,ul)[l]
\end_layout
\begin_layout LyX-Code
}.
\end_layout
\begin_layout Standard
\SpecialChar LaTeX
-команда
\family typewriter
\backslash
entrymodifiers={
\family default
\SpecialChar ldots
\family typewriter
}
\family default
задает определенный стиль оформления элемента стилем по умолчанию,
что,
конечно,
может быть отменено для отдельных элементов.
Таким образом,
после
\family typewriter
\backslash
entrymodifiers={++[o][F-]}
\family default
,
все последующие элементы внутри
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-матриц будут заключены в круговые рамки.
\end_layout
\begin_layout Subsubsection
Обрамление прямоугольниками
\end_layout
\begin_layout Standard
Обрамление прямоугольником нескольких элементов матрицы внутри
\family typewriter
\backslash
xymatrix
\family default
задается с помощью связанной пары макросов
\family typewriter
\backslash
save...
\backslash
restore
\family default
.
Размерность прямоугольника указывается точечной парой
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula $P_{0}.P_{1}$
\end_inset
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
значений,
обозначающих верхний левый и нижний правый углы прямоугольника.
Каждая точка,
в свою очередь,
определяется двумя значениями,
разделенными запятой и в кавычках "
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula $x,y$
\end_inset
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
",
с указанием строки
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula $x$
\end_inset
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
и столбца
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula $y$
\end_inset
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
.
За ними следуют команды обрамления для создания диаграмм,
наподобие следующей:
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
\begin_inset Formula
\[
\xymatrix{A & B\ar@(d,r)[dl]\sp(0.2)\phi\sp(0.7)\psi\save"1,1"."2,1"*+[F=]\frm{}\restore\,\\
C & \save"1,1"."1,2"*++[F]\frm{}\restore
}
\]
\end_inset
Здесь,
код
\end_layout
\begin_layout LyX-Code
\family typewriter
\backslash
save"1,1"."2,1"*+[F=]
\backslash
frm{}
\backslash
restore
\end_layout
\begin_layout Standard
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
создает прямоугольник с двойной рамкой,
а кодом для широкого горизонтального прямоугольника является
\end_layout
\begin_layout LyX-Code
\family typewriter
\backslash
save"1,1"."1,2"*++[F]
\backslash
frm{}
\backslash
restore
\end_layout
\begin_layout Standard
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
Этот код можно размещать в произвольных ячейках
\family typewriter
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
\backslash
xymatrix
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
.
\end_layout
\begin_layout Section
Использование редактора формул \SpecialChar LyX
\begin_inset CommandInset label
LatexCommand label
name "sec:math-editor"
\end_inset
\end_layout
\begin_layout Standard
В качестве альтернативы написанию
\series bold
xypic
\series default
-кода,
а затем преобразования его в формулу (выделяя его и применяя
\family sans
Ctrl+M
\family default
или
\family sans
Ctrl+Shift+M
\family default
),
можно создавать и изменять
\series bold
xypic
\series default
-диаграмму целиком внутри редактора формул в \SpecialChar LyX
.
Далее описываются действия по редактированию диаграмм.
\end_layout
\begin_layout Subsection
Предостережение —
как набирать скобки
\end_layout
\begin_layout Standard
Напомним,
что в математическом редакторе \SpecialChar LyX
всякая пара скобок
\family typewriter
{
\family default
и
\family typewriter
}
\family default
,
в которые должен заключаться макро-параметр,
надо вводить,
набирая только
\family typewriter
\backslash
{
\family default
.
Закрывающая скобка ставится автоматически,
а в промежутке между скобками вводится параметр.
В связи с рассмотрением
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-диаграмм это относится,
в частности,
к указанию форм стрелок,
которые,
как правило,
задаются в виде
\family typewriter
@{
\family default
\SpecialChar ldots
\family typewriter
}
\family default
,
где вместо многоточия вводятся описания формы начала,
линии и конца стрелки.
Внутри математического редактора требуется ввести только
\family typewriter
@
\backslash
{
\family default
и \SpecialChar LyX
обеспечит появление закрывающей скобки и поля,
в которое необходимо ввести описание стрелки.
\end_layout
\begin_layout Standard
Фигурные скобки,
которые вводятся без обратной косой черты
\family typewriter
\backslash
\family default
,
выглядят так,
как их набрали,
но они не могут быть использованы для размещения в них макро-параметра.
Они полезны,
например,
для обозначения множеств,
так что
\family typewriter
{x
\backslash
in X
\backslash
mid x
\backslash
notin x}
\family default
будет отображено как
\begin_inset Formula $\{x\in X\mid x\notin x\}$
\end_inset
.
\end_layout
\begin_layout Subsection
Настройка матрицы
\end_layout
\begin_layout Standard
Используя
\family sans
Ctrl+M
\family default
или
\family sans
Ctrl+Shift+M
\family default
,
создайте новую формулу и введите:
\family typewriter
\backslash
xymatrix
\family default
.
Это приведет к появлению одноклеточной (1
\begin_inset Formula $\times$
\end_inset
1)
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-матрицы.
Добавление дополнительных строк осуществляется нажатием
\family sans
Ctrl+Enter
\family default
,
а добавление столбцов —
\family sans
Alt+M C I
\family default
.
\end_layout
\begin_layout Standard
В любой момент дополнительные строки или столбцы могут быть добавлены или удалены с помощью команд,
доступных в меню
\family sans
Правка\SpecialChar menuseparator
Строки и столбцы
\family default
,
соответствующие им клавиатурные команды начинаются с
\family sans
Alt+M C
\family default
для команд столбцов матрицы и с
\family sans
Alt+M W
\family default
для команд строк матрицы.
Более прямой способ использует значки в математической панели инструментов,
которая включается через меню
\family sans
Вид\SpecialChar menuseparator
Панели инструментов
\family default
.
\end_layout
\begin_layout Subsection
Ввод вершин,
стрелок и меток
\end_layout
\begin_layout Standard
Заполните вершины в ячейках матрицы.
При перемещении курсора из матрицы,
вы должны увидеть первые уже введенные значения в ячейках макета.
Затем добавьте описания стрелок в узлах,
откуда они должны исходить,
набирая
\family typewriter
\backslash
ar[
\family default
\emph on
p
\family typewriter
\emph default
]
\family default
,
где
\emph on
p
\emph default
может быть любым путем,
составленным из символов
\family typewriter
u
\family default
,
\family typewriter
d
\family default
,
\family typewriter
l
\family default
,
\family typewriter
r
\family default
.
Убедитесь,
что путь действительно ведет к существующему узлу внутри матрицы.
Если это не так,
схема не будет отображаться,
когда курсор покидает область редактирования.
\end_layout
\begin_layout Standard
Далее,
пометьте стрелки путем присоединения текста метки в качестве верхнего или нижнего индексов после конца описания пути стрелки (после
\begin_inset Quotes rld
\end_inset
\family typewriter
]
\family default
\begin_inset Quotes rrd
\end_inset
).
Как обычно,
в математическом редакторе символ
\family typewriter
_
\family default
открывает поле для нижнего индекса,
а
\family typewriter
^
\family default
поле для верхнего индекса.
В качестве метки можно ввести любой \SpecialChar LaTeX
-код.
\end_layout
\begin_layout Subsection
Модификация стрелок
\end_layout
\begin_layout Standard
Наконец,
вы можете управлять внешним видом стрелок,
указывая
\family typewriter
@
\family default
-модифика\SpecialChar softhyphen
торы в формах:
\family typewriter
@{
\family default
\SpecialChar ldots
\family typewriter
}
\family default
,
\family typewriter
@<
\family default
\SpecialChar ldots
\family typewriter
>
\family default
,
\family typewriter
@(
\family default
\SpecialChar ldots
,\SpecialChar ldots
\family typewriter
)
\family default
или
\family typewriter
@/
\family default
\SpecialChar ldots
\family typewriter
/
\family default
.
Сделанное выше предостережение относится к первой форме.
Она должна быть введена как
\family typewriter
@
\backslash
{
\family default
с описанием стрелки,
размещенном в появившемся пустом поле.
Если оно останется пустым,
значит вы указали пустую (невидимую) стрелку.
Это —
полезная конструкция,
о чем вы узнаете в следующем разделе.
\end_layout
\begin_layout Standard
Другие модификаторы,
\family typewriter
@<
\family default
\SpecialChar ldots
\family typewriter
>
\family default
,
\family typewriter
@(
\family default
\SpecialChar ldots
,\SpecialChar ldots
\family typewriter
)
\family default
и
\family typewriter
@/
\family default
\SpecialChar ldots
\family typewriter
/
\family default
набираются как показано,
заменяя многоточия описаниями стрелок.
Код для изгибающихся стрелок в
\series bold
xypic
\series default
имеет вид
\family typewriter
@/_
\family default
\emph on
размер
\family typewriter
\emph default
/
\family default
или
\family typewriter
@/
\emph on
^
\family default
размер
\family typewriter
\emph default
/
\family default
,
где
\emph on
размер
\emph default
любой допустимый размер в \SpecialChar TeX
,
который должна быть введен как верхний или нижний индекс для первой косой черты
\family typewriter
/
\family default
(убедитесь,
что завершающая косая черта не является частью верхнего или нижнего индекса).
\end_layout
\begin_layout Subsection
Что делать,
если что-то пойдет не так
\end_layout
\begin_layout Standard
При построении диаграммы вы должны время от времени проверять ее,
просто выводя курсор из области редактирования,
чтобы увидеть,
может ли мгновенный предварительный просмотр успешно преобразовать ее в графический вывод.
Если этого не происходит,
возможно,
что мгновенный предварительный просмотр по какой-то причине не знает,
что он должен пересоздать изображение.
Перемещение курсора в область редактирования и обратно иногда решает эту проблему.
\end_layout
\begin_layout Standard
Более серьезной причиной может быть синтаксическая ошибка в вводе (в этом случае область математического редактирования полностью исчезает).
При необходимости отмените последние шаги редактирования,
используя
\family sans
Ctrl+Z
\family default
,
или попробуйте преобразовать \SpecialChar LyX
-файл в
\family sans
DVI
\family default
,
используя
\family sans
Ctrl+D
\family default
или
\family sans
Документ\SpecialChar menuseparator
Просмотреть (другие форматы)\SpecialChar menuseparator
DVI
\family default
.
Тогда должно быть сгенерировано описание какой-то ошибки,
которое может дать вам подсказку об источнике этой ошибки.
\end_layout
\begin_layout Section
Полезные советы
\end_layout
\begin_layout Standard
Не все работает правильно внутри \SpecialChar LyX
.
Более всего мы (выше) не обращали внимание на горизонтальное и вертикальное масштабирование диаграмм и на правильное расположение стрелок.
Здесь мы объясним некоторые обходные пути по этим вопросам.
\end_layout
\begin_layout Subsection
Горизонтальное и вертикальное масштабирование
\end_layout
\begin_layout Standard
Часто желательно растянуть горизонтальные или вертикальные размеры всей диаграммы,
используя команды изменения промежутков для строк и/или столбцов.
Например,
согласно
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-руководству,
\family typewriter
\backslash
xymatrix@R=1pc{
\family default
\SpecialChar ldots
\family typewriter
}
\family default
определяет
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-матрицу с межстрочным промежутком 1
\begin_inset space \thinspace{}
\end_inset
pc.
Аналогично,
\family typewriter
\backslash
xymatrix@C=
\family default
\SpecialChar ldots
\family typewriter
{
\family default
\SpecialChar ldots
\family typewriter
}
\family default
позволяет изменить промежуток между столбцами.
К сожалению,
эти команды в настоящее время не работают внутри \SpecialChar LyX
,
так как @-символ интерпретируется \SpecialChar LyX
как завершение команды
\family typewriter
\backslash
xymatrix
\family default
.
Но имеются два других способа получения требуемой матрицы:
\end_layout
\begin_layout Itemize
наберите,
например,
\family typewriter
\backslash
xymatrix@R=1pc
\family default
как обычный текст документа,
затем выделите его и нажмите
\family sans
Ctr+M
\family default
для получения формулы,
или скопируйте его в существующую формулу.
Далее можно делать,
что требуется.
\begin_inset Newline newline
\end_inset
\begin_inset Note Greyedout
status open
\begin_layout Plain Layout
\series bold
Примечание.
\series default
Этот метод работает только для установки одного промежутка,
поэтому использование
\family typewriter
\backslash
xymatrix@R=1pt
\family default
возможно,
тогда как
\begin_inset Newline linebreak
\end_inset
\family typewriter
\backslash
xymatrix@R=1pt@C=1dd
\family default
нет.
Метод также не работает,
если используется
\begin_inset Quotes rld
\end_inset
\family typewriter
!
\family default
\begin_inset Quotes rrd
\end_inset
для получения фиксированной сетки с определенным размером,
например,
\family typewriter
\backslash
xymatrix@!R=3pt
\family default
не работает,
но работает
\family typewriter
\backslash
xymatrix@!R
\family default
.
\end_layout
\end_inset
\begin_inset Newline newline
\end_inset
Для следующей матрицы использовалась команда
\family typewriter
\backslash
xymatrix@C=9pc
\family default
:
\begin_inset Formula
\[
\xymatrix@C=9pc{A\ar[r]\ar[d] & B\\
C\ar@{}[ur]|{\text{{\text{горизонтальное }\text{протяжение}}}}
}
\]
\end_inset
\end_layout
\begin_layout Itemize
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
\begin_inset space ~
\end_inset
хранит значения межстрочного и межстолбцового промежутков в переменных
\family typewriter
\backslash
xymatrixrowsep@
\family default
и
\family typewriter
\backslash
xymatrixcolsep@
\family default
.
Так что,
можно добавить следующий макрос в преамбулу (
\family sans
Документ\SpecialChar menuseparator
Настройки\SpecialChar menuseparator
Преамбула LaTeX
\family default
):
\end_layout
\begin_deeper
\begin_layout LyX-Code
\backslash
newcommand{
\backslash
xyR}[1]{%
\end_layout
\begin_layout LyX-Code
\backslash
xydef@
\backslash
xymatrixrowsep@{#1}}
\end_layout
\begin_layout Standard
Макрос
\family typewriter
\backslash
xyC
\family default
можно определить соответствующим образом,
заменив
\family typewriter
\begin_inset Newline linebreak
\end_inset
\backslash
xymatrixrowsep@
\family default
на
\family typewriter
\backslash
xymatrixcolsep@
\family default
.
Теперь диаграмму можно масштабировать,
введя
\family typewriter
\backslash
xyR{
\family default
в формулу перед
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-матрицей.
Поместите курсор в матрицу,
непосредственно перед первой записью.
Затем введите
\family typewriter
\backslash
xyR
\backslash
{
\family default
и/или
\family typewriter
\backslash
xyC
\backslash
{
\family default
.
Не забывайте обратную косую черту перед скобкой и помните,
что закрывающая скобка автоматически поставляется \SpecialChar LyX
.
Внутри скобок введите размеры.
\begin_inset Newline newline
\end_inset
\begin_inset Note Greyedout
status open
\begin_layout Plain Layout
\series bold
Примечание.
\series default
Эти команды влияют на все последующие
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-матрицы.
Поэтому не забудьте сбросить значения по умолчанию после использования
\family typewriter
\backslash
xyR
\family default
и т.
\begin_inset space \thinspace{}
\end_inset
д.
\end_layout
\end_inset
\begin_inset Newline newline
\end_inset
Значение по умолчанию составляет 2
\begin_inset space \thinspace{}
\end_inset
pc.
Приведем диаграмму,
которая сжата по вертикали и вытянута по горизонтали посредством команд
\begin_inset Newline linebreak
\end_inset
\family typewriter
\backslash
xyR{.5pc}
\backslash
xyC{9pc}
\family default
:
\begin_inset Formula
\[
\xyR{.5pc}\xyC{9pc}\xymatrix{A\ar[r]\ar[d] & B\\
C\ar@{}[ur]|{\text{{\text{горизонтальное }\text{протяжение}}}}
}
\]
\end_inset
\begin_inset Formula $\xyR{2pc}\xyC{2pc}$
\end_inset
\begin_inset Note Note
status collapsed
\begin_layout Plain Layout
Восстановление значений по умолчанию
\end_layout
\end_inset
\end_layout
\end_deeper
\begin_layout Subsection
Позиционирование меток
\end_layout
\begin_layout Standard
Другая полезная
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-команда позволяет задавать расположение меток вдоль стрелок.
Эта функция просто необходима,
когда положение метки,
проставляемой по умолчанию,
может загромождать изображение или даже совпадать с другими элементами,
такими,
как пересечение стрелок на следующем рисунке.
Чтобы сместить позицию метки вдоль стрелки,
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
\begin_inset space ~
\end_inset
позволяет указывать метку перед десятичным числом в скобках,
указывая долю расстояния вдоль стрелки,
где должна быть размещена метка.
Например,
код
\family typewriter
\backslash
ar[r]|(0.3)
\backslash
varphi
\family default
разместит метку на стрелке на расстоянии 0.3 длины от ее начала.
\end_layout
\begin_layout Standard
Аналогичные действия в \SpecialChar LyX
с метками,
наподобие
\family typewriter
\backslash
ar[dr]^(0.3)
\backslash
varphi
\family default
и
\family typewriter
\backslash
ar[ur]_(0.3)
\backslash
phi
\family default
,
не приведут к желаемому результату.
Вместо этого нужно заменить символы
\family typewriter
^
\family default
и
\family typewriter
_
\family default
макросами
\family typewriter
\backslash
sp
\family default
и
\family typewriter
\backslash
sb
\family default
,
соответственно,
получая
\family typewriter
\backslash
ar[dr]
\backslash
sp(0.3)
\backslash
varphi
\family default
и
\family typewriter
\backslash
ar[ur]
\backslash
sb(0.3)
\backslash
phi
\family default
.
Фактически,
таким образом можно ввести несколько меток,
и эти метки будут размещены корректно,
даже если стрелка изгибается.
На следующем рисунке изогнутая стрелка с четырьмя метками была создана с помощью
\family typewriter
\backslash
ar@(r,r)[d]
\backslash
sp(0.2){
\backslash
phi_{1}}
\backslash
sp(0.4){
\backslash
phi_{2}}
\backslash
sb(0.6){
\backslash
phi_{3}}
\backslash
sp(0.8){
\backslash
phi_{4}}
\family default
.
\end_layout
\begin_layout Standard
\begin_inset Formula
\[
\xyC{4pc}\xymatrix{\bullet\ar[dr]\sp(0.3)\varphi & \circ\ar@{}[d]|\vdots\ar@(r,r)[d]\sp(0.2){\phi_{1}}\sp(0.4){\phi_{2}}\sb(0.6){\phi_{3}}\sp(0.8){\phi_{4}}\\
\circ\ar[ur]\sb(0.3)\phi & \bullet
}
\]
\end_inset
\end_layout
\begin_layout Subsection
Невидимые растянутые стрелки
\end_layout
\begin_layout Standard
Более общий трюк использует невидимые стрелки,
чтобы разместить любой объект почти в любом месте диаграммы.
Создайте невидимую стрелку (как описано в подразделе 4.4),
укоротите (или продлите) ее до цели,
добавив десятичный коэффициент сжатия (растяжения),
например,
\family typewriter
(0.6)
\family default
или
\family typewriter
(1.4)
\family default
.
Прикрепите метку к этой невидимой стрелке.
\end_layout
\begin_layout Standard
Таким образом,
стрелка,
указывающая вниз с меткой
\begin_inset Formula $\varphi$
\end_inset
на
\family typewriter
(0.3)
\family default
пути,
могла бы быть получена путем добавления к обычной стрелке
\family typewriter
\backslash
ar[dr]
\family default
невидимой
\begin_inset Formula $\varphi$
\end_inset
-помеченной стрелки
\family typewriter
\backslash
ar@{}[dr(0.6)]^
\backslash
varphi
\family default
,
достигнув всего 0,6 пути.
Ее метка теперь будет отображаться на 0,3 пути исходной видимой стрелки.
\end_layout
\begin_layout Standard
Этот обходной путь имеет два незначительных недостатка:
во-первых,
он не работает с изгибающимися стрелками.
Во-вторых,
продолжение невидимой стрелки за пределы обычного размера фигуры незаметно расширяет рамку фигуры и,
таким образом,
создает увеличенный вертикальный промежуток между изображением и предыдущим или следующим абзацем.
\end_layout
\begin_layout Standard
Тем не менее,
невидимые стрелки являются важным инструментом,
поскольку в принципе их можно использовать для размещения информации в любом выбранном месте на диаграмме.
Например,
на приведенном выше рисунке мы использовали невидимую стрелку для обозначения
\family typewriter
\backslash
vdots
\family default
в качестве метки,
а на предыдущем рисунке была использована невидимая стрелка для переноса текста «горизонтальное растяжение» в центр рисунка.
\end_layout
\begin_layout Subsection
Что еще есть в
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic
\end_layout
\begin_layout Standard
Здесь мы сосредоточились только на команде
\family typewriter
\backslash
xymatrix
\family default
,
которая является лишь одной из функций,
доступных в удивительном пакете
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
.
Руководство
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic
\begin_inset CommandInset citation
LatexCommand cite
key "xypic manual"
literal "true"
\end_inset
демонстрирует многие из расширенных возможностей этого пакета.
Учтите,
что его стиль довольно лаконичен и вам,
вероятно,
потребуется много экспериментировать и модифицировать многие приведенные примеры.
В
\begin_inset CommandInset citation
LatexCommand cite
key "Lauda"
literal "true"
\end_inset
объясняется,
как использовать
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-pic для создания кос,
кобордизмов,
строковых диаграмм и многого другого.
\end_layout
\begin_layout Standard
Возможно,
вы захотите взглянуть на пример
\family typewriter
Instant_Preview.lyx
\family default
,
поставляемый с LyX,
который демонстрирует,
как использовать более продвинутые
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
-команды.
\end_layout
\begin_layout Standard
\begin_inset Newpage newpage
\end_inset
\end_layout
\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "xypic manual"
literal "true"
\end_inset
Kristoffer H.
Rose.
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
\emph on
-pic User's Guide
\emph default
.
\begin_inset Newline newline
\end_inset
\begin_inset Flex URL
status collapsed
\begin_layout Plain Layout
https://mirrors.ctan.org/macros/generic/diagrams/xypic/doc/xyguide.pdf
\end_layout
\end_inset
\end_layout
\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "xypic reference"
literal "true"
\end_inset
Kristoffer H.
Rose and Ross Moore.
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
\emph on
-pic Reference Manual
\emph default
.
\begin_inset Newline newline
\end_inset
\begin_inset Flex URL
status collapsed
\begin_layout Plain Layout
https://mirrors.ctan.org/macros/generic/diagrams/xypic/doc/xyrefer.pdf
\end_layout
\end_inset
\end_layout
\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "xypic"
literal "true"
\end_inset
Homepage of the package
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
\emph on
-pic
\emph default
:
\begin_inset Flex URL
status collapsed
\begin_layout Plain Layout
https://www.ctan.org/pkg/xypic
\end_layout
\end_inset
\end_layout
\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "instant-preview"
literal "true"
\end_inset
Homepage of preview-latex:
\begin_inset Newline newline
\end_inset
\begin_inset Flex URL
status collapsed
\begin_layout Plain Layout
https://www.gnu.org/software/auctex/preview-latex.html
\end_layout
\end_inset
\end_layout
\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "AUCTeX"
literal "true"
\end_inset
Homepage of AUC\SpecialChar TeX
:
\begin_inset Flex URL
status collapsed
\begin_layout Plain Layout
https://www.gnu.org/software/auctex/
\end_layout
\end_inset
\end_layout
\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "Lauda"
literal "true"
\end_inset
Aaron Lauda.
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
Xy
\end_layout
\end_inset
\emph on
-pic
\emph default
\emph on
tutorial with an archive of examples
\emph default
.
\begin_inset Newline newline
\end_inset
\begin_inset Flex URL
status collapsed
\begin_layout Plain Layout
https://web.archive.org/web/20080222044349/https://www.dpmms.cam.ac.uk/~al366/xytutorial.html
\end_layout
\end_inset
\end_layout
\end_body
\end_document