X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fexamples%2Fxypic.lyx;h=5de1b08fa5a9e3a4b616c01d8efc042ee390cbe1;hb=a33aa0632d0409c8949e8b1284a47bcf276d9454;hp=9c5dc0bf9291804369e8c80ccec404146390d483;hpb=14cd9c4f7b63132f91003d5dc81f9d6f676b77db;p=lyx.git diff --git a/lib/examples/xypic.lyx b/lib/examples/xypic.lyx index 9c5dc0bf92..5de1b08fa5 100644 --- a/lib/examples/xypic.lyx +++ b/lib/examples/xypic.lyx @@ -1,3273 +1,3638 @@ -#LyX 1.6.0beta3 created this file. For more info see http://www.lyx.org/ -\lyxformat 335 -\begin_document -\begin_header -\textclass article -\begin_preamble -\usepackage[all]{xy} - - -\makeatletter -\newcommand{\xyR}[1]{ - \makeatletter - \xydef@\xymatrixrowsep@{#1} - \makeatother -} -\makeatletter -\newcommand{\xyC}[1]{ - \makeatletter - \xydef@\xymatrixcolsep@{#1} - \makeatother -} - -\newdir{|>}{!/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}} -\end_preamble -\language english -\inputencoding auto -\font_roman ae -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\spacing single -\use_hyperref false -\papersize a4paper -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\defskip medskip -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\author "" -\author "" -\end_header - -\begin_body - -\begin_layout Title -Using -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --pic in LyX -\end_layout - -\begin_layout Author -H. - Peter Gumm -\end_layout - -\begin_layout Abstract -With the recent versions of LyX and with the -\family typewriter -preview -\family default --style installed in the LaTeX-System, the graph drawing package -\family typewriter - -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - - -\family default --Pic can be conveniently used inside LyX. - Diagrams can be edited and displayed inside the main LyX editing window. - Here, we shall describe how to use the -\family typewriter - -\backslash -xymatrix -\family default - command from -\family typewriter -xypic -\family default - inside LyX in order to draw, to edit and to preview diagrams as typically - used in category theory, algebra, and related fields. - -\end_layout - -\begin_layout Abstract -\begin_inset CommandInset toc -LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Section -Introduction -\end_layout - -\begin_layout Standard -The -\family typewriter -xypic -\family default --package has long served as a convenient tool for easily constructing graphs - and diagrams in LaTeX. - Unfortunately, its use in LyX had long been restricted to the infamous - ERT-boxes, meaning that the LyX editor could only display the LaTeX-source - and not the finished diagram. - The new -\family typewriter -preview -\family default --style of LaTeX which is part of the AUCTeX project -\begin_inset CommandInset citation -LatexCommand cite -key "AUCTeX" - -\end_inset - -, finally enables the editing and displaying of -\family typewriter -xypic -\family default --diagrams, constructed, displayed and interactively edited inside LyX. -\end_layout - -\begin_layout Standard -\begin_inset VSpace defskip -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Graphics - filename xyfigure.png - scale 50 - BoundingBox 0bp 0bp 580bp 440bp - clip - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace defskip -\end_inset - - -\end_layout - -\begin_layout Standard -In this note, we describe how -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --pic can be used from inside LyX, how diagrams can be created and edited. - We have tested the following using LyX versions 1.3.7 up to 1.6, running under - WindowsXP and under Windows Vista. - -\end_layout - -\begin_layout Standard -There are two modes of operations: For a start, and for some first tests, - it may be easiest to first enter the -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --Pic code inside the LyX-window, select it all and convert it to a graphical - representation by pressing -\family sans -Ctrl-m -\family default - or -\family sans -Ctrl-M -\family default -. - If you use -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --Pic more frequently, or if you want to modify your initial figure, you - will want to assemble and modify your figures using LyX's math editor. - -\end_layout - -\begin_layout Standard -Once the cursor is moved over a diagram, this is displayed as an array of - nodes and arrow-commands. - These can be changed interactively. - When the cursor leaves the editing area, the diagram reappears. - -\end_layout - -\begin_layout Standard -In the first two sections of this documentation, we explain how to use LyX - in the first mentioned mode and we introduce all -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --Pic features that might be of use for drawing commutative diagrams, graphs - or automata. - Section 3 explains how to use the -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --Pic commands inside a math-editing area. - -\end_layout - -\begin_layout Standard -It is not our intention to write another introduction to -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --Pic, rather our motivation is to give an introduction how the most important - commands work inside LyX, since the keystrokes as explained in the -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --Pic manual -\begin_inset CommandInset citation -LatexCommand cite -key "xypic manual" - -\end_inset - - will not always function correctly inside LyX. - -\end_layout - -\begin_layout Section -Preparation -\end_layout - -\begin_layout Standard -The following requires that the LaTeX-packages -\family typewriter -xypic -\family default - and -\family typewriter -preview -\family default - are installed in the LaTeX system. - They are available from CTAN, see at -\begin_inset CommandInset citation -LatexCommand cite -key "instant-preview" - -\end_inset - -, resp. - at -\begin_inset CommandInset citation -LatexCommand cite -key "xypic" - -\end_inset - -. - After freshly installing them, it may be necessary, to run -\family sans -Edit\SpecialChar \menuseparator -Reconfigure -\family default - from the main LyX menu. - The steps to a first diagram output in LyX are then: -\end_layout - -\begin_layout Enumerate -Activate and test -\family typewriter -preview -\end_layout - -\begin_deeper -\begin_layout Enumerate -Open LyX, choose -\family sans -Edit\SpecialChar \menuseparator -Preferences\SpecialChar \menuseparator -Look and Feel\SpecialChar \menuseparator -Graphics -\family default - and place a check-mark at -\emph on -Instant Preview -\emph default -. - -\end_layout - -\begin_layout Enumerate -Test, if -\family typewriter -instant-preview -\family default - works by opening a LyX-document and entering any math-formula, e.g. - -\begin_inset Formula $a+b=c$ -\end_inset - -. - -\end_layout - -\begin_layout Enumerate -Move the cursor out of the formula, and watch it change its appearance to - look just like in the finished dvi- or postscript document. - -\end_layout - -\end_deeper -\begin_layout Enumerate -Activate and test -\family typewriter -xypic -\end_layout - -\begin_deeper -\begin_layout Enumerate -Choose -\family sans -Layout\SpecialChar \menuseparator -Document\SpecialChar \menuseparator -Preamble -\family default - and type -\family typewriter - -\begin_inset Newline newline -\end_inset - - -\backslash -usepackage[all]{xy}. -\end_layout - -\begin_layout Enumerate -Inside your LyX-Document, enter the text -\family typewriter - -\begin_inset Newline newline -\end_inset - - -\backslash -xymatrix{A -\backslash -ar[r] & B} -\family default - . -\end_layout - -\begin_layout Enumerate -Select the whole text and choose -\family sans -Insert\SpecialChar \menuseparator -Math\SpecialChar \menuseparator -Display Formula -\family default -, or use the corresponding keyboard shortcut -\family sans -Ctrl-M -\family default -. - -\end_layout - -\begin_layout Enumerate -Move the mouse cursor out of the editing box and wait for a split second - to see an arrow appear: -\begin_inset Formula $\xymatrix{A\ar [r] & B} -$ -\end_inset - -. - -\end_layout - -\end_deeper -\begin_layout Section -Commutative diagrams -\end_layout - -\begin_layout Standard -The following diagram, which is taken from the documentation of -\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" - -\end_inset - - by its creator Kristoffer H. - Rose, will provide an example for many of the features available with that - package. - Its source code is: -\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 -Again, to turn this code into a graphical output, select it all at once - starting from the -\family typewriter - -\backslash -xymatrix{ -\family default - \SpecialChar \ldots{} - up to the closing brace \SpecialChar \ldots{} - -\family typewriter -} -\family default - and turn it into display-math as explained above. - A moment after the cursor leaves the math-area, you should see the diagram - in its full graphical glory as shown below. - -\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 -The matrix layout of diagrams -\end_layout - -\begin_layout Standard - -\family typewriter -xymatrix -\family default - uses a matrix to define the layout of the vertices of a diagram. - For the above example, we need a -\begin_inset Formula $3\times3$ -\end_inset - --matrix of which 5 entries are used for the vertices -\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 - -, the other positions remaining empty. - In this case, the following matrix determines the layout: -\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 -The pattern should be familiar from LaTeX: We see three rows, the first - two being terminated by the end-of-line-marker -\family typewriter - -\backslash - -\backslash - -\family default - . - Each line consists of entries, separated by the ampersand -\family typewriter -& -\family default -. - -\end_layout - -\begin_layout Subsection -Arrows -\end_layout - -\begin_layout Standard -Having entered the vertices, we add arrows between them. - The basic -\family typewriter -xypic -\family default --command to produce an arrow is -\family typewriter - -\backslash -ar -\family default - , it is entered into the cell of the matrix where the arrow is to start. - The target of the arrow is defined by direction commands -\family typewriter -u -\family default - (up) -\family typewriter -d -\family default - (down) -\family typewriter -l -\family default - (left), or -\family typewriter -r -\family default - (right). - These can be combined to a path and enclosed in square brackets. - As an example, the arrows from the vertex -\begin_inset Formula $U$ -\end_inset - - in the upper left corner down and right to the vertices -\begin_inset Formula $X\times_{Z}Y$ -\end_inset - -, -\begin_inset Formula $Y$ -\end_inset - -, and -\begin_inset Formula $X$ -\end_inset - - are, respectively, defined as -\family typewriter - -\backslash -ar[dr] -\family default -, -\family typewriter - -\backslash -ar[ddr] -\family default - and -\family typewriter - -\backslash -ar[drr] -\family default -. - Thus the above diagram with all arrows added becomes: -\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 Standard -\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 -Labels -\end_layout - -\begin_layout Standard -Labels are attached to arrows by affixing them as upper or lower indices - to the -\family typewriter - -\backslash -ar -\family default --command. - Thus, -\family typewriter - -\backslash -ar[drr]^ -\backslash -varphi -\family default - defines an arrow going one cell down, two to the right and having the label - -\begin_inset Formula $\varphi$ -\end_inset - - attached above. - To attach a label below the arrow, make it a lower index as in -\family typewriter - -\backslash -ar[ddr]_ -\backslash -psi -\family default -. - This explanation is correct only for arrows pointing to the right. - More precisely, imagine looking along the arrow in the direction it is - pointing. - Then an upper index places a label to the left and a lower index places - it to the right. - Consequently, an arrow pointing from right to left, such as -\family typewriter - -\backslash -ar[l]^ -\backslash -alpha_ -\backslash -beta -\family default - will have label -\begin_inset Formula $\alpha$ -\end_inset - - below and label -\begin_inset Formula $\beta$ -\end_inset - - above the arrow, i.e. -\begin_inset Formula $\xymatrix{\ & \ \ar [l]_{\beta}^{\alpha}.} -$ -\end_inset - -Using the character | instead of ^ or _ , it is even possible to place the - label right onto the arrow, obscuring part of its shaft. - -\end_layout - -\begin_layout Standard -Normally, a label is placed halfway between an arrow's start and target - objects. - In the first diagram, the central arrow starting in -\begin_inset Formula $U$ -\end_inset - - has the label -\begin_inset Formula $(x,y)$ -\end_inset - - in the middle of the arrow's shaft, rather than in the middle between the - two objects it connects. - This is achieved by prefixing the label with a minus sign, here: -\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 normally permits labels to be shifted towards the tip or towards the - start of an arrow by prefixing the label with a ratio, such as e.g. - -\family typewriter -(.3) -\family default -. - In LyX this works only for labels which are placed on top of the arrow, - such as -\family typewriter - -\backslash -ar[r]|(0.3){ -\backslash -phi} -\family default -. - -\end_layout - -\begin_layout Standard -For labels placed to the left or to the right of the arrow this does not - work. - The corresponding -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --pic code such as e.g. - -\family typewriter - -\backslash -ar[r]^(.3) -\backslash -phi -\family default - or -\family typewriter - -\backslash -ar[r]_(.3) -\backslash -psi -\family default - is not correctly interpreted by LyX's math editor. - Two workarounds are suggested in the last section of this note. -\end_layout - -\begin_layout Subsection -Arrow modification -\end_layout - -\begin_layout Standard -Modification of the design, the form or the positioning of arrows are introduced - by the -\family typewriter -@ -\family default --character. - This is followed by a pair of matching brackets, where the form of the - bracket pair, -\family typewriter -{ } -\family default - or -\family typewriter -< > -\family default - or -\family typewriter -/ / -\family default - indicates, whether we want to modify the design, the or the curvature of - the arrow. - Various modifactions can be applied to an arrow at the same time. -\end_layout - -\begin_layout Subsubsection -Arrow design -\end_layout - -\begin_layout Standard -Various designs such as -\emph on -solid -\emph default -, -\emph on -dotted -\emph default -, -\emph on -dashed -\emph default - or -\emph on -double -\emph default - are possible for the shaft of an arrow. - These can be combined with various ends and various tips. - In general, the design of an arrow is described by following the command - -\family typewriter - -\backslash -ar -\family default - immediately by an -\family typewriter -@ -\family default --sign and a pair of braces {\SpecialChar \ldots{} -} containing characters describing the end, - the shaft and the tip of the arrow. - These characters are chosen to give some form of ASCII-rendering of the - real thing. - For instance -\family typewriter - -\backslash -ar@{>..>>} -\family default - produces an arrow with split end, a dotted shaft and double head. - A number of other arrow designs is given in the table below. - Note that the ends of embedding arrows -\begin_inset Formula $\xymatrix{A\ar @{^{(}->}[r] & B} -$ -\end_inset - - are described by raising or lowering opening parentheses, such as in -\family typewriter - -\backslash -ar@{^(->}[r]. -\begin_inset Newline newline -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout -Result -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Source code in LyX -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar [r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{-->}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{-->} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{..>}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{..>} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{~>}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{~>} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{->>}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{->>} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{-->>}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{-->>} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{>->>}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{>->>} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{_{(}->}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{_(->} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{^{(}->}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{^(->} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{|-|}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{|-|} -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -noindent -\end_layout - -\end_inset - - Following the @-character by either a 2, 3, _,or a ^, we can produce arrows - with double, triple shaft or arrows showing only the lower or upper half - of their tips and ends. - Arrows need not have tips nor ends, as the last example shows : -\begin_inset Newline newline -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout -Result -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Source code for LyX -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @2[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@2 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @3[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@3 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @_{->}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@_{->} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @^{->}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@^{->} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @^{>>->>}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@^{>>->>} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @{^{<}-_{>}}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@{^<-_>} -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula \xymatrix{\ \ar @2{--}[r] & \ } - - -\end_inset - - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter - -\backslash -ar@2{--} -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Designing your own arrows -\end_layout - -\begin_layout Standard -Within certain limits there is even a way to design your own arrows. - Using some the characters -\family typewriter -><|ox+/()[ -\family default - one can even design one's own arrow tips using the -\family typewriter - -\backslash -newdir -\family default - command in the preample. - For explanations, we refer to the -\family typewriter - -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - - -\family default --manual, from which we take the example: -\end_layout - -\begin_layout Standard - -\family typewriter - -\backslash -newdir{|>}{!/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}} -\family default -. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -noindent -\end_layout - -\end_inset - -This defines a new arrow tip, referred to as -\family typewriter -|> -\family default - in -\family typewriter - -\backslash -ar@{-|>}[r] -\family default - and which displays correctly in LyX as: -\begin_inset Formula \[ -\xymatrix{A\ar @{-|>}[r] & \ \ B} -\] - -\end_inset - - -\end_layout - -\begin_layout Subsection -Arrow positioning -\end_layout - -\begin_layout Standard -Arrows are shifted sideways with the modifier -\family typewriter -@< -\family default - -\begin_inset Formula $\ldots$ -\end_inset - - -\family typewriter -> -\family default - where the ellipsis is replaced by a positive or negative measure. - For instance, to design a pair of mutually opposing arrows between two - nodes, we shift them to see them apart. - Note that the direction of the shift (positive) is to the left if one looks - along the arrow. - Thus -\end_layout - -\begin_layout Standard - -\family typewriter - -\backslash -xymatrix{ -\backslash -circ -\backslash -ar@<1ex>[r]& -\backslash -circ -\backslash -ar@<1ex>[l]} -\end_layout - -\begin_layout Standard -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -noindent -\end_layout - -\end_inset - - produces -\begin_inset space ~ -\end_inset - - -\begin_inset space ~ -\end_inset - - -\begin_inset Formula \[ -\xymatrix{\circ\ar @<1ex>[r] & \circ\ar @<1ex>[l]} -\] - - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Inline or centered diagrams -\end_layout - -\begin_layout Standard -Arrows and diagrams can be used inline, such as this one: -\begin_inset Formula $\xymatrix{\circ\ar @<1ex>[r] & \circ\ar @<1ex>[l]} -$ -\end_inset - -. - When their code is written inside LyX as above, select it and choose either - -\family sans -Ctrl-m -\family default - for inline appearence or -\family sans -Ctrl-M -\family default - for displaystyle. - Diagrams constructed inline can later be centered, or, conversely, centered - diagrams can be changed to inline formulas with -\family sans -Edit\SpecialChar \menuseparator -Math -\family default - -\family sans -\SpecialChar \menuseparator -Alignment. -\end_layout - -\begin_layout Subsection -Bending arrows -\end_layout - -\begin_layout Standard -There are two simple methods to make arrows bend. - The first is giving an explicit value by which the midpoint of the arrow's - shaft is raised or depressed, the other is by forcing the arrow to leave - its origin in a prescribed compass direction and to make him enter the - target at another direction. - The necessary bending of the arrow is determined automatically. - We describe both methods. -\end_layout - -\begin_layout Subsubsection -Raising the shaft -\end_layout - -\begin_layout Standard -For bending arrows we use the modifier @/ -\begin_inset Formula $\ldots$ -\end_inset - -/ . - The ellipsis stands for a TeX-measure which needs to be entered as a lower - or upper index. - Whereas in -\family typewriter -xypic -\family default -, we could simply write, e.g. - -\family typewriter - -\backslash -ar@/_1pc/ -\family default - for an arrow bending -\family typewriter -1pc -\family default - downwards, this cannot directly be done in LyX. - It is necessary, to enclose the measure in a pair of braces, such as e.g. - -\family typewriter - -\backslash -ar@/_{1pc}/ -\family default -. - As an example, here are two opposing arrows between -\begin_inset Formula $A$ -\end_inset - - and -\begin_inset Formula $B$ -\end_inset - -, each bending by .5 pica, given by the following source code: -\end_layout - -\begin_layout Standard - -\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 -Specifying exit- and entrance directions. - -\end_layout - -\begin_layout Standard -An alternative for making arrows bend is by specifying their compass direction - as they are leaving their source and their direction from which they enter - their target. - Instead of north, north-east, east, etc., the directions are named -\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 -, standing for up, up-right, right, down-right, etc.. - A direction is specified as @( -\emph on -out -\emph default -, -\emph on -in -\emph default -) where -\emph on -out -\emph default - stands for the direction the first object is left and -\emph on -in -\emph default - stands for the direction from which the target is entered. - As an example, we show some bending arrows and a loop, which arises when - we do not specify a target for an arrow, just its incoming and outgoing - direction: -\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 -Modifying vertices -\end_layout - -\begin_layout Standard -The above example is reminiscent of an automata diagram, except that in - such a diagram states would be enclosed in small circles, with double circles - denoting final states. - -\end_layout - -\begin_layout Subsubsection -Framing objects -\end_layout - -\begin_layout Standard -With -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --Pic, entries can obtain a single or a double frame, such as -\begin_inset Formula $\xymatrix{*+[F]{A}} -$ -\end_inset - - or -\begin_inset Formula $\xymatrix{*+[F=]{B}} -$ -\end_inset - - by prefixing an entry with -\family typewriter -*[F-] -\family default - or -\family typewriter -*[F=] -\family default - and enclosing the portion of the entry to be framed in braces. - Normally, the frame will be very tight so that it must be widened by prefixing - with -\family typewriter -+ -\family default - or with -\family typewriter -++ -\family default -. - Round frames, such as -\begin_inset Formula $\xymatrix{*++[o][F]{A}} -$ -\end_inset - - and -\begin_inset Formula $\xymatrix{*++[o][F=]{B}} -$ -\end_inset - - are obtained by specifying the shape as -\family typewriter -[o]. - -\family default - So the latter figure was constructed as *++[o][F=]{B}. - This way, the following automaton -\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 -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -noindent -\end_layout - -\end_inset - - can be typeset as -\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 -The LaTeX command -\family typewriter - -\backslash -entrymodifiers={ -\family default -\SpecialChar \ldots{} - -\family typewriter -} -\family default - will make a certain entry style the default, that can, of course be overridden - for individual entries. - Thus, after -\family typewriter - -\backslash -entrymodifiers={++[o][F-]} -\family default -, all following entries inside -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --matrices would be encircled. -\end_layout - -\begin_layout Subsubsection -Framing rectangles -\end_layout - -\begin_layout Standard -Framing a whole rectangle inside an xymatrix is done with the macro pair - -\family typewriter - -\backslash -save ... - -\backslash -restore -\family default -. - -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -The dimension of the rectangle is given as a dotted pair -\begin_inset Formula $P_{0}.P_{1}$ -\end_inset - - of points denoting the top left and lower right corners of the rectangle. - Each point, in turn,is given as a doubly quoted comma separated pair -\begin_inset Quotes eld -\end_inset - - -\begin_inset Formula $x,y$ -\end_inset - - -\begin_inset Quotes erd -\end_inset - - specifying row -\begin_inset Formula $x$ -\end_inset - - and column -\begin_inset Formula $y$ -\end_inset - -. - These are followed by the framing commands, to produce figures such as - the following: -\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 - - Here, the code -\family typewriter -\series default -\shape default -\size default -\emph default -\bar default -\noun default -\color inherit - -\backslash -save"1,1"."2,1"*+[F=] -\backslash -frm{} -\backslash -restore -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none - produces the doubly framed rectangle, and the code for the extra wide horizonta -l rectangle is -\family typewriter -\series default -\shape default -\size default -\emph default -\bar default -\noun default -\color inherit - -\backslash -save"1,1"."1,2"*++[F] -\backslash -frm{} -\backslash -restore -\family roman -\series medium -\shape up -\size normal -\emph off -\bar no -\noun off -\color none -. - This code can be placed in arbitrary cells of the xymatrix. - -\end_layout - -\begin_layout Section -Using LyX's math editor -\end_layout - -\begin_layout Standard -As an alternative to writing the -\family typewriter -xypic -\family default - code, then transforming it into a math-editing environment by marking it - and applying -\family sans -Ctrl-m -\family default -, or -\family sans -Ctrl-M -\family default -, one may construct and modify the whole xypic-diagram inside LyX's math - editor. - We describe the editing steps for a figure just like the one above. - -\end_layout - -\begin_layout Subsection -Caveat - how to enter braces -\end_layout - -\begin_layout Standard -Recall that in LyX's math-editor any pair of braces -\family typewriter -{ -\family default - and -\family typewriter -} -\family default - that are to enclose a macro-parameter must be entered by typing just -\family typewriter - -\backslash -{ -\family default - . - The closing brace is automatically supplied and in between a box into which - to the parameter is entered. - In connection with -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --diagrams, this applies in particular to arrow modifications that are normally - given in the form -\family typewriter -@{ -\family default - \SpecialChar \ldots{} - -\family typewriter -} -\family default - with the ellipsis standing for the description of end, shaft and tip of - the arrow. - Inside the math-editor, enter just -\family typewriter -@ -\backslash -{ -\family default - and let LyX provide the closing brace and the box into which to enter the - description of the arrow. -\end_layout - -\begin_layout Standard -Braces that are entered without the backslash -\family typewriter - -\backslash - -\family default - will just appear as typed, but cannot be used to receive a macro parameter. - They are useful, for instance to denote sets, e.g. - -\family typewriter -{x -\backslash -in X -\backslash -mid x -\backslash -notin x} -\family default - will display as -\begin_inset Formula $\{x\in X\mid x\notin x\}$ -\end_inset - -. -\end_layout - -\begin_layout Subsection -Setting up the matrix -\end_layout - -\begin_layout Standard -With -\family sans -Ctrl-m -\family default - or -\family sans -Ctrl-M -\family default - open a formula environment and enter: -\family typewriter - -\backslash -xymatrix -\family default -. - This produces a 1 -\begin_inset Formula $\times$ -\end_inset - -1- -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --matrix. - Add extra rows by typing -\family sans -Ctrl-Enter -\family default - and add columns by typing -\family sans -Alt-m c i. - -\end_layout - -\begin_layout Standard -At any time, further rows or columns can be entered or deleted using commands - available from -\family sans -Edit\SpecialChar \menuseparator -Math, -\family default - resp. - their shortcuts, beginning with -\family sans -Alt-m c -\family default - for the column commands or -\family sans -Alt-m w -\family default - for the row commands. - -\end_layout - -\begin_layout Subsection -Entering nodes, arrows and labels -\end_layout - -\begin_layout Standard -Type the nodes into the correct positions of the matrix. - If you move the cursor out of the matrix, you should see a first rendering - of the node layout. - Next, add the arrows at the nodes from where they should emanate by typing - -\family typewriter - -\backslash -ar[ -\family default -\emph on -p -\family typewriter -\emph default -] -\family default -, where -\emph on -p -\emph default - can be any path made up from the characters -\family typewriter -u -\family default -, -\family typewriter -d -\family default -, -\family typewriter -l -\family default -, -\family typewriter -r -\family default -. - Make sure that the path indeed leads to an existing node within the matrix. - Otherwise, the figure will not display when the cursor leaves the editing - area. -\end_layout - -\begin_layout Standard -Next, label the arrows by attaching a label text as upper or lower indices - to the end of the arrow's path. - As always in LyX's math editor, an underscore -\family typewriter -_ -\family default - opens a box for a lower index and a -\family typewriter -^ -\family default - followed by a space opens a box for an upper index. - You can enter any LaTeX-code as a label. - -\end_layout - -\begin_layout Subsection -Modifying arrows -\end_layout - -\begin_layout Standard -Finally, modify the appearance of the arrows by entering @-modifiers @{\SpecialChar \ldots{} -}, - @<\SpecialChar \ldots{} ->, @(\SpecialChar \ldots{} -,\SpecialChar \ldots{} -) or @/\SpecialChar \ldots{} -/. - The above caveat applies to the first form only. - It must be entered as -\family typewriter -@ -\backslash -{ -\family default - with the arrow description entered inside the LyX-supplied box. - If this box remains empty, you have specified an empty arrow. - This is a useful construction, too, as you will see in the next section. - -\end_layout - -\begin_layout Standard -The other modifiers, @<\SpecialChar \ldots{} ->, @(\SpecialChar \ldots{} -,\SpecialChar \ldots{} -) and @/\SpecialChar \ldots{} -/ are typed as shown with the arrow - description replacing the ellipsis. - The code for bending arrows, which in -\family typewriter -xypic -\family default - is @/_ -\emph on -measure -\emph default -/ or @/ -\emph on -^measure -\emph default -/ where -\emph on -measure -\emph default - is any valid TeX-measure, should be entered as upper or lower index to - the first slash / . - Make sure that the ending slash does not end up being part of the upper - or lower index. -\end_layout - -\begin_layout Subsection -What if something goes wrong -\end_layout - -\begin_layout Standard -When constructing a diagram, you should at times check it by just moving - the cursor out of the editing area to see whether instant preview can successfu -lly convert it into graphical output. - If this does not happen, it may either be that instant preview for some - reason is not aware that it should retranslate the graphics. - Moving the cursor into the editing area and out again sometimes wakes up - instant preview. -\end_layout - -\begin_layout Standard -A more serious reason could be a syntactical error in your input. - If necessary, redo the last editing steps, using Ctrl-z, or try to translate - the LyX-file into dvi using Ctrl-d or -\family sans -View\SpecialChar \menuseparator -Dvi -\family default -. - There should be some error generated, which hopefully gives you a hint - as to the source of the mistake. -\end_layout - -\begin_layout Section -Hacks -\end_layout - -\begin_layout Standard -Certain things do not work correctly inside LyX. - The ones that we (used to) miss most are the horizontal and vertical scaling - of diagrams, and the correct positioning of arrows. - There are some workarounds that we are explaining here. - -\end_layout - -\begin_layout Subsection -Horizontal and vertical scaling -\end_layout - -\begin_layout Standard -It is often convenient to stretch the horizontal or the vertical dimensions - of an entire diagram by using spacing commands for rows and/or columns. - According to the -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --manual, for instance, -\family typewriter - -\backslash -xymatrix@R=1pc{ -\family default -\SpecialChar \ldots{} - -\family typewriter -} -\family default - defines an -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --matrix with row spacing of 1 pica. - Similarly, -\family typewriter - -\backslash -xymatrix@C= -\family default -\SpecialChar \ldots{} - -\family typewriter -{ -\family default -\SpecialChar \ldots{} - -\family typewriter -} -\family default - allows to modify the space between columns. - Unfortunately, these commands do currently not work inside LyX, as the - @-character is interpreted by LyX as ending the -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --matrix-macro. - -\end_layout - -\begin_layout Standard -Knowing that -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - - -\begin_inset space ~ -\end_inset - - stores the values for row-spacing and column-spacing in the variables -\family typewriter - -\backslash -xymatrixrowsep@ -\family default - and -\family typewriter - -\backslash -xymatrixrowsep@ -\family default -, add the following macro to the preamble ( -\family sans -Layout\SpecialChar \menuseparator -Document\SpecialChar \menuseparator -Preamble) -\end_layout - -\begin_layout LyX-Code - -\backslash -makeatletter -\end_layout - -\begin_layout LyX-Code - -\backslash -newcommand{ -\backslash -xyR}[1]{% -\end_layout - -\begin_layout LyX-Code - -\backslash -makeatletter -\end_layout - -\begin_layout LyX-Code - -\backslash -xydef@ -\backslash -xymatrixrowsep@{#1} -\end_layout - -\begin_layout LyX-Code - -\backslash -makeatother -\end_layout - -\begin_layout LyX-Code -} % end of -\backslash -xyR -\end_layout - -\begin_layout LyX-Code - -\end_layout - -\begin_layout Standard -A macro -\family typewriter - -\backslash -xyC -\family default - can be defined correspondingly by replacing -\family typewriter - -\backslash -xymatrixrowsep@ -\family default - with -\family typewriter - -\backslash -xymatrixcolsep@ -\family default -. - Now, a figure can be scaled by entering -\backslash -xyR{...} into the -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --matrix. - Place the cursor inside the matrix, just before the first entry. - Then enter -\family typewriter - -\backslash -xyR -\backslash -{ -\family default - or -\family typewriter - -\backslash -xyC -\backslash -{ -\family default - or both. - Dont't forget the backslashes and remember, that the closing brace is automatic -ally supplied by LyX. - Inside the braces enter the dimensions. - The default is -\family typewriter -2pt -\family default -. - Here you see a diagram which is squashed vertically and stretched horizontally - with -\family typewriter - -\backslash -xyR{9pc} -\backslash -xyC{.5pc} -\family default -: -\end_layout - -\begin_layout Standard -\begin_inset Formula \[ -\xyC {.5pc}\xyC {9pc}\xymatrix{A\ar [r]\ar [d] & B\\ -C\ar @{}[ur]|{\text{{horizontal stretch}}}} -\] - -\end_inset - - -\end_layout - -\begin_layout Subsection -Label positioning -\end_layout - -\begin_layout Standard -Another useful -\begin_inset ERT -status collapsed - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - --vcommand allows the correct positioning of labels along the shaft of arrows. - This feature is sometimes necessary, when the default position of a label - would otherwise clutter the picture, or would even coincide with other - items, such as the intersection of the arrows in the figure below. - In order to shift a label position alongside the shaft of an arrow, -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -Xy -\end_layout - -\end_inset - - -\begin_inset space ~ -\end_inset - - allows to prefix the label by a decimal number in parentheses, specifying - the fraction of distance alongside the arrow where the label is to be placed. - For instance, the code -\family typewriter - -\backslash -ar[r]|(0.3) -\backslash -varphi -\family default -, will place the label on the shaft, but only about one third of the way. - -\end_layout - -\begin_layout Standard -Doing the same with labels above or below arrows as -\family typewriter - -\backslash -ar[dr]^(0.3) -\backslash -varphi, -\family default - respectively -\family typewriter - -\backslash -ar[ur]_(0.3) -\backslash -phi -\family default -, does not work from inside LyX. - Instead, one has to replace the hat-symbol ^, resp. - the underscore _ , by the macros -\family typewriter - -\backslash -sp -\family default -, resp. - -\family typewriter - -\backslash -sb -\family default -, obtaining -\family typewriter - -\backslash -ar[dr] -\backslash -sp(0.3) -\backslash -varphi -\family default -and -\family typewriter - -\backslash -ar[ur] -\backslash -sb(0.3) -\backslash -phi. - -\family default -It is, in fact, possible to enter several labels this way and those labels - are placed correctly, even if the arrow bends. - In the following figure, the bending arrow with its four labels has been - produced with -\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}}. -\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 -Invisible stretched arrows -\end_layout - -\begin_layout Standard -A more general trick uses invisible arrows to place any object almost anywhere - inside a diagram. - Produce an invisible arrow, shorten (or prolong) it past its goal by adding - a decimal stretching ratio, e.g. - -\family typewriter -(0.6) -\family default - or -\family typewriter -(1.4) -\family default - to its path. - Attach a label to this invisible arrow. - -\end_layout - -\begin_layout Standard -Thus, the down pointing arrow with its label -\begin_inset Formula $\varphi$ -\end_inset - - at (0.3) of its way along the shaft might as well have been produced by - adding to the regular arrow -\family typewriter - -\backslash -ar[dr] -\family default -an invisible -\begin_inset Formula $\varphi$ -\end_inset - --labelled arrow -\family typewriter - -\backslash -ar@{}[dr(0.6)]^ -\backslash -varphi -\family default -, reaching only 0.6 of the way. - Its label will now appear at 0.3 of the way of the original visible arrow. - -\end_layout - -\begin_layout Standard -This workaround has two minor drawbacks: First, it does not work with bending - arrows. - Secondly, prolonging an invisible arrow beyond the normal dimension of - the figure will invisibly extend the figure box, and thereby cause too - much vertical space between the figure and the preceding or the following - paragraph. - -\end_layout - -\begin_layout Standard -Nevertheless, invisible arrows are an important tool, since they can, in - principle, be used to place information at any chosen place in a diagram. - In the above figure, for instance, we have used an invisible arrow to carry - the -\family typewriter - -\backslash -vdots -\family default - as label and at the earlier figure we had used an invisible arrow to carry - the text -\begin_inset Quotes eld -\end_inset - - -\family typewriter -horizontal stretch -\family default - -\begin_inset Quotes erd -\end_inset - - into the center of the figure. -\end_layout - -\begin_layout Bibliography -\begin_inset CommandInset bibitem -LatexCommand bibitem -label "1" -key "xypic manual" - -\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 -. - Version 3.7, Feb. - 16, 1999. - Available as part of the -\family typewriter -xypic -\family default - LaTeX package. - -\end_layout - -\begin_layout Bibliography -\begin_inset CommandInset bibitem -LatexCommand bibitem -label "2" -key "instant-preview" - -\end_inset - - -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -http://www.tug.org/tex-archive/help/Catalogue/entries/preview-latex.html -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Bibliography -\begin_inset CommandInset bibitem -LatexCommand bibitem -label "3" -key "xypic" - -\end_inset - - -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -http://www.tug.org/tex-archive/help/Catalogue/entries/xypic.html -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Bibliography -\begin_inset CommandInset bibitem -LatexCommand bibitem -label "4" -key "AUCTeX" - -\end_inset - - -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -http://www.gnu.org/software/auctex/ -\end_layout - -\end_inset - - -\end_layout - -\end_body -\end_document +#LyX 2.0.0svn created this file. For more info see http://www.lyx.org/ +\lyxformat 382 +\begin_document +\begin_header +\textclass scrartcl +\begin_preamble +\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}} +\end_preamble +\options BCOR7.5mm +\use_default_options false +\maintain_unincluded_children false +\language english +\inputencoding auto +\fontencoding global +\font_roman ae +\font_sans default +\font_typewriter default +\font_default_family default +\use_xetex false +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 + +\graphics default +\default_output_format default +\bibtex_command default +\index_command default +\paperfontsize 12 +\spacing single +\use_hyperref true +\pdf_title "Using XY-pc in LyX" +\pdf_author "H. Peter Gumm" +\pdf_subject "LyX's XY-pic manual" +\pdf_keywords "LyX, documentation" +\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, pdfpagelabels" +\papersize a4paper +\use_geometry false +\use_amsmath 1 +\use_esint 0 +\use_mhchem 1 +\cite_engine basic +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language english +\papercolumns 1 +\papersides 2 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_be_strict true +\end_header + +\begin_body + +\begin_layout Title +Using +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic in LyX +\end_layout + +\begin_layout Author +H. + Peter Gumm +\end_layout + +\begin_layout Abstract +With the recent versions of LyX and with the +\family typewriter +preview +\family default +-style installed in the LaTeX-System, the graph drawing package +\family typewriter + +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\family default +-pic can be conveniently used inside LyX. + Diagrams can be edited and displayed inside the main LyX editing window. + Here, we shall describe how to use the +\family typewriter + +\backslash +xymatrix +\family default + command from +\family typewriter +xypic +\family default + inside LyX in order to draw, to edit and to preview diagrams as typically + used in category theory, algebra, and related fields. + +\end_layout + +\begin_layout Abstract +\begin_inset CommandInset toc +LatexCommand tableofcontents + +\end_inset + + +\end_layout + +\begin_layout Section +Introduction +\end_layout + +\begin_layout Standard +The +\family typewriter +xypic +\family default +-package has long served as a convenient tool for easily constructing graphs + and diagrams in LaTeX. + Unfortunately, its use in LyX had long been restricted to the infamous + TeX code boxes, meaning that the LyX editor could only display the LaTeX-source + and not the finished diagram. + The new +\family typewriter +preview +\family default +-style of LaTeX which is part of the AUCTeX project +\begin_inset CommandInset citation +LatexCommand cite +key "AUCTeX" + +\end_inset + +, finally enables the editing and displaying of +\family typewriter +xypic +\family default +-diagrams, constructed, displayed and interactively edited inside 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 + width 75col% + BoundingBox 0bp 0bp 580bp 440bp + clip + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace defskip +\end_inset + + +\end_layout + +\begin_layout Standard +In this note, we describe how +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic can be used from inside LyX, how diagrams can be created and edited. + We have tested the following using LyX versions 1.3.7 up to 1.6, running under + Windows +\begin_inset space \thinspace{} +\end_inset + +XP and under Windows Vista. + +\end_layout + +\begin_layout Standard +There are two modes of operations: For a start, and for some first tests, + it may be easiest to first enter the +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic code inside the LyX-window, select it all and convert it to a graphical + representation by pressing +\family sans +Ctrl-m +\family default + or +\family sans +Ctrl-M +\family default +. + If you use +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic more frequently, or if you want to modify your initial figure, you + will want to assemble and modify your figures using LyX's math editor. + +\end_layout + +\begin_layout Standard +Once the cursor is moved over a diagram, this is displayed as an array of + nodes and arrow-commands. + These can be changed interactively. + When the cursor leaves the editing area, the diagram reappears. + +\end_layout + +\begin_layout Standard +In the first two sections of this documentation, we explain how to use LyX + in the first mentioned mode and we introduce all +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic features that might be of use for drawing commutative diagrams, graphs + or automata. + Section +\begin_inset CommandInset ref +LatexCommand ref +reference "sec:math-editor" + +\end_inset + + explains how to use the +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic commands inside a math-editing area. + +\end_layout + +\begin_layout Standard +It is not our intention to write another introduction to +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic, rather our motivation is to give an introduction how the most important + commands work inside LyX, since the keystrokes as explained in the +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic manual +\begin_inset CommandInset citation +LatexCommand cite +key "xypic manual" + +\end_inset + + will not always function correctly inside LyX. + +\end_layout + +\begin_layout Section +Preparation +\end_layout + +\begin_layout Standard +The following requires that the LaTeX-packages +\family typewriter +xypic +\family default + and +\family typewriter +preview +\family default + are installed in the LaTeX system. + They are available from CTAN, see at +\begin_inset CommandInset citation +LatexCommand cite +key "instant-preview" + +\end_inset + +, resp. + at +\begin_inset CommandInset citation +LatexCommand cite +key "xypic" + +\end_inset + +. + After freshly installing them, it may be necessary, to run +\family sans +Tools\SpecialChar \menuseparator +Reconfigure +\family default + from the main LyX menu. + The steps to a first diagram output in LyX are then: +\end_layout + +\begin_layout Enumerate +Activate and test +\family typewriter +preview +\end_layout + +\begin_deeper +\begin_layout Enumerate +Open LyX, choose +\family sans +Tools\SpecialChar \menuseparator +Preferences\SpecialChar \menuseparator +Look and Feel\SpecialChar \menuseparator +Display +\family default + and turn +\emph on +Instant Preview +\emph default + on. +\end_layout + +\begin_layout Enumerate +In +\family sans +Document\SpecialChar \menuseparator +Settings\SpecialChar \menuseparator +Math +\begin_inset space ~ +\end_inset + +Options +\family default +, uncheck +\emph on +Use AMS Math package automatically +\emph default + and check +\emph on +Use AMS Math package +\emph default +. +\end_layout + +\begin_layout Enumerate +Test, if +\family typewriter +instant-preview +\family default + works by opening a LyX-document and entering any math-formula, e. +\begin_inset space \thinspace{} +\end_inset + +g. + +\begin_inset Formula $a+b=c$ +\end_inset + +. + +\end_layout + +\begin_layout Enumerate +Move the cursor out of the formula, and watch it change its appearance to + look just like in the finished DVI- or PostScript document. + +\end_layout + +\end_deeper +\begin_layout Enumerate +Activate and test +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic +\family typewriter +: +\end_layout + +\begin_deeper +\begin_layout Enumerate +Inside your LyX-Document, enter the text +\family typewriter + +\begin_inset Newline newline +\end_inset + + +\backslash +xymatrix{A +\backslash +ar[r] & B} +\family default + . +\end_layout + +\begin_layout Enumerate +Select the whole text and choose +\family sans +Insert\SpecialChar \menuseparator +Math\SpecialChar \menuseparator +Display Formula +\family default +, or use the corresponding keyboard shortcut +\family sans +Ctrl-M +\family default +. + +\end_layout + +\begin_layout Enumerate +Move the mouse cursor out of the editing box and wait for a split second + to see an arrow appear: +\begin_inset Formula $\xymatrix{A\ar[r] & B} +$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Section +Commutative diagrams +\end_layout + +\begin_layout Standard +The following diagram, which is taken from the documentation of +\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" + +\end_inset + + by its creator Kristoffer H. + Rose, will provide an example for many of the features available with that + package. + Its source code is: +\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 +Again, to turn this code into a graphical output, select it all at once + starting from the +\family typewriter + +\backslash +xymatrix{ +\family default + \SpecialChar \ldots{} + up to the closing brace \SpecialChar \ldots{} + +\family typewriter +} +\family default + and turn it into display-math as explained above. + A moment after the cursor leaves the math-area, you should see the diagram + in its full graphical glory as shown below. + +\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 +The matrix layout of diagrams +\end_layout + +\begin_layout Standard + +\family typewriter +xymatrix +\family default + uses a matrix to define the layout of the vertices of a diagram. + For the above example, we need a +\begin_inset Formula $3\times3$ +\end_inset + +-matrix of which 5 entries are used for the vertices +\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 + +, the other positions remaining empty. + In this case, the following matrix determines the layout: +\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 +The pattern should be familiar from LaTeX: We see three rows, the first + two being terminated by the end-of-line-marker +\family typewriter + +\backslash + +\backslash + +\family default + . + Each line consists of entries, separated by the ampersand +\family typewriter +& +\family default +. + +\end_layout + +\begin_layout Subsection +Arrows +\end_layout + +\begin_layout Standard +Having entered the vertices, we add arrows between them. + The basic +\family typewriter +xypic +\family default +-command to produce an arrow is +\family typewriter + +\backslash +ar +\family default + , it is entered into the cell of the matrix where the arrow is to start. + The target of the arrow is defined by direction commands +\family typewriter +u +\family default + (up) +\family typewriter +d +\family default + (down) +\family typewriter +l +\family default + (left), or +\family typewriter +r +\family default + (right). + These can be combined to a path and enclosed in square brackets. + As an example, the arrows from the vertex +\begin_inset Formula $U$ +\end_inset + + in the upper left corner down and right to the vertices +\begin_inset Formula $X\times_{Z}Y$ +\end_inset + +, +\begin_inset Formula $Y$ +\end_inset + +, and +\begin_inset Formula $X$ +\end_inset + + are, respectively, defined as +\family typewriter + +\backslash +ar[dr] +\family default +, +\family typewriter + +\backslash +ar[ddr] +\family default + and +\family typewriter + +\backslash +ar[drr] +\family default +. + Thus the above diagram with all arrows added becomes: +\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 Standard +\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 +Labels +\end_layout + +\begin_layout Standard +Labels are attached to arrows by affixing them as upper or lower indices + to the +\family typewriter + +\backslash +ar +\family default +-command. + Thus, +\family typewriter + +\backslash +ar[drr]^ +\backslash +varphi +\family default + defines an arrow going one cell down, two to the right and having the label + +\begin_inset Formula $\varphi$ +\end_inset + + attached above. + To attach a label below the arrow, make it a lower index as in +\family typewriter + +\backslash +ar[ddr]_ +\backslash +psi +\family default +. + This explanation is correct only for arrows pointing to the right. + More precisely, imagine looking along the arrow in the direction it is + pointing. + Then an upper index places a label to the left and a lower index places + it to the right. + Consequently, an arrow pointing from right to left, such as +\family typewriter + +\backslash +ar[l]^ +\backslash +alpha_ +\backslash +beta +\family default + will have label +\begin_inset Formula $\alpha$ +\end_inset + + below and label +\begin_inset Formula $\beta$ +\end_inset + + above the arrow, e. +\begin_inset space \thinspace{} +\end_inset + +g. +\begin_inset space \space{} +\end_inset + + +\begin_inset Formula $\xymatrix{\ & \ \ar[l]_{\beta}^{\alpha}.} +$ +\end_inset + +Using the character | instead of ^ or _ , it is even possible to place the + label right onto the arrow, obscuring part of its shaft. + +\end_layout + +\begin_layout Standard +Normally, a label is placed halfway between an arrow's start and target + objects. + In the first diagram, the central arrow starting in +\begin_inset Formula $U$ +\end_inset + + has the label +\begin_inset Formula $(x,y)$ +\end_inset + + in the middle of the arrow's shaft, rather than in the middle between the + two objects it connects. + This is achieved by prefixing the label with a minus sign, here: +\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 normally permits labels to be shifted towards the tip or towards the + start of an arrow by prefixing the label with a ratio, such as e. +\begin_inset space \thinspace{} +\end_inset + +g. + +\family typewriter +(.3) +\family default +. + In LyX this works only for labels which are placed on top of the arrow, + such as +\family typewriter + +\backslash +ar[r]|(0.3){ +\backslash +phi} +\family default +. + +\end_layout + +\begin_layout Standard +For labels placed to the left or to the right of the arrow this does not + work. + The corresponding +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic code such as e. +\begin_inset space \thinspace{} +\end_inset + +g. + +\family typewriter + +\backslash +ar[r]^(.3) +\backslash +phi +\family default + or +\family typewriter + +\backslash +ar[r]_(.3) +\backslash +psi +\family default + is not correctly interpreted by LyX's math editor. + Two workarounds are suggested in the last section of this note. +\end_layout + +\begin_layout Subsection +Arrow modification +\end_layout + +\begin_layout Standard +Modification of the design, the form or the positioning of arrows are introduced + by the +\family typewriter +@ +\family default +-character. + This is followed by a pair of matching brackets, where the form of the + bracket pair, +\family typewriter +{ } +\family default + or +\family typewriter +< > +\family default + or +\family typewriter +/ / +\family default + indicates, whether we want to modify the design, the or the curvature of + the arrow. + Various modifications can be applied to an arrow at the same time. +\end_layout + +\begin_layout Subsubsection +Arrow design +\end_layout + +\begin_layout Standard +Various designs such as +\emph on +solid +\emph default +, +\emph on +dotted +\emph default +, +\emph on +dashed +\emph default + or +\emph on +double +\emph default + are possible for the shaft of an arrow. + These can be combined with various ends and various tips. + In general, the design of an arrow is described by following the command + +\family typewriter + +\backslash +ar +\family default + immediately by an +\family typewriter +@ +\family default +-sign and a pair of braces {\SpecialChar \ldots{} +} containing characters describing the end, + the shaft and the tip of the arrow. + These characters are chosen to give some form of ASCII-rendering of the + real thing. + For instance +\family typewriter + +\backslash +ar@{>..>>} +\family default + produces an arrow with split end, a dotted shaft and double head. + A number of other arrow designs is given in the table below. + Note that the ends of embedding arrows +\begin_inset Formula $\xymatrix{A\ar@{^{(}->}[r] & B} +$ +\end_inset + + are described by raising or lowering opening parentheses, such as in +\family typewriter + +\backslash +ar@{^(->}[r]. +\begin_inset Newline newline +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout +Result +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Source code in LyX +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{-->}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{-->} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{..>}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{..>} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{~>}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{~>} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{->>}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{->>} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{-->>}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{-->>} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{>->>}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{>->>} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{_{(}->}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{_(->} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{^{(}->}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{^(->} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{|-|}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{|-|} +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\noindent +Following the @-character by either a 2, 3, _,or a ^, we can produce arrows + with double, triple shaft or arrows showing only the lower or upper half + of their tips and ends. + Arrows need not have tips nor ends, as the last example shows : +\begin_inset Newline newline +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout +Result +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Source code for LyX +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@2[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@2 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@3[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@3 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@_{->}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@_{->} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@^{->}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@^{->} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@^{>>->>}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@^{>>->>} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@{^{<}-_{>}}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@{^<-_>} +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula \xymatrix{\ \ar@2{--}[r] & \ } + + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter + +\backslash +ar@2{--} +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Subsubsection +Designing your own arrows +\end_layout + +\begin_layout Standard +Within certain limits there is even a way to design your own arrows. + Using some the characters +\family typewriter +><|ox+/()[ +\family default + one can even design one's own arrow tips using the +\family typewriter + +\backslash +newdir +\family default + command in the preamble. + For explanations, we refer to the +\family typewriter + +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\family default +-manual, from which we take the example: +\end_layout + +\begin_layout Standard + +\family typewriter + +\backslash +newdir{|>}{!/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}} +\family default +. +\end_layout + +\begin_layout Standard +\noindent +This defines a new arrow tip, referred to as +\family typewriter +|> +\family default + in +\family typewriter + +\backslash +ar@{-|>}[r] +\family default + and which displays correctly in LyX as: +\begin_inset Formula \[ +\xymatrix{A\ar@{-|>}[r] & \ \ B} +\] + +\end_inset + + +\end_layout + +\begin_layout Subsection +Arrow positioning +\end_layout + +\begin_layout Standard +Arrows are shifted sideways with the modifier +\family typewriter +@< +\family default + +\begin_inset Formula $\ldots$ +\end_inset + + +\family typewriter +> +\family default + where the ellipsis is replaced by a positive or negative measure. + For instance, to design a pair of mutually opposing arrows between two + nodes, we shift them to see them apart. + Note that the direction of the shift (positive) is to the left if one looks + along the arrow. + Thus +\end_layout + +\begin_layout Standard + +\family typewriter + +\backslash +xymatrix{ +\backslash +circ +\backslash +ar@<1ex>[r]& +\backslash +circ +\backslash +ar@<1ex>[l]} +\end_layout + +\begin_layout Standard +\noindent +produces +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + + +\begin_inset Formula \[ +\xymatrix{\circ\ar@<1ex>[r] & \circ\ar@<1ex>[l]} +\] + + +\end_inset + + +\end_layout + +\begin_layout Subsubsection +Inline or centered diagrams +\end_layout + +\begin_layout Standard +Arrows and diagrams can be used inline, such as this one: +\begin_inset Formula $\xymatrix{\circ\ar@<1ex>[r] & \circ\ar@<1ex>[l]} +$ +\end_inset + +. + When their code is written inside LyX as above, select it and choose either + +\family sans +Ctrl-m +\family default + for inline appearance or +\family sans +Ctrl-M +\family default + for displaystyle. + Diagrams constructed inline can later be centered, or, conversely, centered + diagrams can be changed to inline formulas with +\family sans +Edit\SpecialChar \menuseparator +Math +\family default + +\family sans +\SpecialChar \menuseparator +Change Formula Type. +\end_layout + +\begin_layout Subsection +Bending arrows +\end_layout + +\begin_layout Standard +There are two simple methods to make arrows bend. + The first is giving an explicit value by which the midpoint of the arrow's + shaft is raised or depressed, the other is by forcing the arrow to leave + its origin in a prescribed compass direction and to make him enter the + target at another direction. + The necessary bending of the arrow is determined automatically. + We describe both methods. +\end_layout + +\begin_layout Subsubsection +Raising the shaft +\end_layout + +\begin_layout Standard +For bending arrows we use the modifier @/ +\begin_inset Formula $\ldots$ +\end_inset + +/ . + The ellipsis stands for a TeX-measure which needs to be entered as a lower + or upper index. + Whereas in +\family typewriter +xypic +\family default +, we could simply write, e. +\begin_inset space \thinspace{} +\end_inset + +g. + +\family typewriter + +\backslash +ar@/_1pc/ +\family default + for an arrow bending +\family typewriter +1pc +\family default + downwards, this cannot directly be done in LyX. + It is necessary, to enclose the measure in a pair of braces, such as e. +\begin_inset space \thinspace{} +\end_inset + +g. + +\family typewriter + +\backslash +ar@/_{1pc}/ +\family default +. + As an example, here are two opposing arrows between +\begin_inset Formula $A$ +\end_inset + + and +\begin_inset Formula $B$ +\end_inset + +, each bending by .5 pica, given by the following source code: +\end_layout + +\begin_layout Standard + +\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 +Specifying exit- and entrance directions +\end_layout + +\begin_layout Standard +An alternative for making arrows bend is by specifying their compass direction + as they are leaving their source and their direction from which they enter + their target. + Instead of north, north-east, east, etc., the directions are named +\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 +, standing for up, up-right, right, down-right, etc.. + A direction is specified as @( +\emph on +out +\emph default +, +\emph on +in +\emph default +) where +\emph on +out +\emph default + stands for the direction the first object is left and +\emph on +in +\emph default + stands for the direction from which the target is entered. + As an example, we show some bending arrows and a loop, which arises when + we do not specify a target for an arrow, just its incoming and outgoing + direction: +\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 +Modifying vertices +\end_layout + +\begin_layout Standard +The above example is reminiscent of an automata diagram, except that in + such a diagram states would be enclosed in small circles, with double circles + denoting final states. + +\end_layout + +\begin_layout Subsubsection +Framing objects +\end_layout + +\begin_layout Standard +With +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic, entries can obtain a single or a double frame, such as +\begin_inset Formula $\xymatrix{*+[F]{A}} +$ +\end_inset + + or +\begin_inset Formula $\xymatrix{*+[F=]{B}} +$ +\end_inset + + by prefixing an entry with +\family typewriter +*[F-] +\family default + or +\family typewriter +*[F=] +\family default + and enclosing the portion of the entry to be framed in braces. + Normally, the frame will be very tight so that it must be widened by prefixing + with +\family typewriter ++ +\family default + or with +\family typewriter +++ +\family default +. + Round frames, such as +\begin_inset Formula $\xymatrix{*++[o][F]{A}} +$ +\end_inset + + and +\begin_inset Formula $\xymatrix{*++[o][F=]{B}} +$ +\end_inset + + are obtained by specifying the shape as +\family typewriter +[o]. + +\family default + So the latter figure was constructed as *++[o][F=]{B}. + This way, the following automaton +\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 +can be typeset as +\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 +The LaTeX command +\family typewriter + +\backslash +entrymodifiers={ +\family default +\SpecialChar \ldots{} + +\family typewriter +} +\family default + will make a certain entry style the default, that can, of course be overridden + for individual entries. + Thus, after +\family typewriter + +\backslash +entrymodifiers={++[o][F-]} +\family default +, all following entries inside +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-matrices would be encircled. +\end_layout + +\begin_layout Subsubsection +Framing rectangles +\end_layout + +\begin_layout Standard +Framing a whole rectangle inside an xymatrix is done with the macro pair + +\family typewriter + +\backslash +save ... + +\backslash +restore +\family default +. + +\family roman +\series medium +\shape up +\size normal +\emph off +\bar no +\noun off +\color none +The dimension of the rectangle is given as a dotted pair +\begin_inset Formula $P_{0}.P_{1}$ +\end_inset + + of points denoting the top left and lower right corners of the rectangle. + Each point, in turn,is given as a doubly quoted comma separated pair +\begin_inset Quotes eld +\end_inset + + +\begin_inset Formula $x,y$ +\end_inset + + +\begin_inset Quotes erd +\end_inset + + specifying row +\begin_inset Formula $x$ +\end_inset + + and column +\begin_inset Formula $y$ +\end_inset + +. + These are followed by the framing commands, to produce figures such as + the following: +\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 + + Here, the code +\family typewriter +\series default +\shape default +\size default +\emph default +\bar default +\noun default +\color inherit + +\backslash +save"1,1"."2,1"*+[F=] +\backslash +frm{} +\backslash +restore +\family roman +\series medium +\shape up +\size normal +\emph off +\bar no +\noun off +\color none + produces the doubly framed rectangle, and the code for the extra wide horizonta +l rectangle is +\family typewriter +\series default +\shape default +\size default +\emph default +\bar default +\noun default +\color inherit + +\backslash +save"1,1"."1,2"*++[F] +\backslash +frm{} +\backslash +restore +\family roman +\series medium +\shape up +\size normal +\emph off +\bar no +\noun off +\color none +. + This code can be placed in arbitrary cells of the xymatrix. + +\end_layout + +\begin_layout Section +Using LyX's math editor +\begin_inset CommandInset label +LatexCommand label +name "sec:math-editor" + +\end_inset + + +\end_layout + +\begin_layout Standard +As an alternative to writing the +\family typewriter +xypic +\family default + code, then transforming it into a math-editing environment by marking it + and applying +\family sans +Ctrl-m +\family default +, or +\family sans +Ctrl-M +\family default +, one may construct and modify the whole xypic-diagram inside LyX's math + editor. + We describe the editing steps for a figure just like the one above. + +\end_layout + +\begin_layout Subsection +Caveat - how to enter braces +\end_layout + +\begin_layout Standard +Recall that in LyX's math-editor any pair of braces +\family typewriter +{ +\family default + and +\family typewriter +} +\family default + that are to enclose a macro-parameter must be entered by typing just +\family typewriter + +\backslash +{ +\family default + . + The closing brace is automatically supplied and in between a box into which + to the parameter is entered. + In connection with +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-diagrams, this applies in particular to arrow modifications that are normally + given in the form +\family typewriter +@{ +\family default + \SpecialChar \ldots{} + +\family typewriter +} +\family default + with the ellipsis standing for the description of end, shaft and tip of + the arrow. + Inside the math-editor, enter just +\family typewriter +@ +\backslash +{ +\family default + and let LyX provide the closing brace and the box into which to enter the + description of the arrow. +\end_layout + +\begin_layout Standard +Braces that are entered without the backslash +\family typewriter + +\backslash + +\family default + will just appear as typed, but cannot be used to receive a macro parameter. + They are useful, for instance to denote sets, e. +\begin_inset space \thinspace{} +\end_inset + +g. + +\family typewriter +{x +\backslash +in X +\backslash +mid x +\backslash +notin x} +\family default + will display as +\begin_inset Formula $\{x\in X\mid x\notin x\}$ +\end_inset + +. +\end_layout + +\begin_layout Subsection +Setting up the matrix +\end_layout + +\begin_layout Standard +With +\family sans +Ctrl-m +\family default + or +\family sans +Ctrl-M +\family default + open a formula environment and enter: +\family typewriter + +\backslash +xymatrix +\family default +. + This produces a 1 +\begin_inset Formula $\times$ +\end_inset + +1- +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-matrix. + Add extra rows by typing +\family sans +Ctrl-Enter +\family default + and add columns by typing +\family sans +Alt-m c i. + +\end_layout + +\begin_layout Standard +At any time, further rows or columns can be entered or deleted using commands + available from +\family sans +Edit\SpecialChar \menuseparator +Math, +\family default + resp. + their shortcuts, beginning with +\family sans +Alt-m c +\family default + for the column commands or +\family sans +Alt-m w +\family default + for the row commands. + A more direct way uses the icons in the math toolbar once it has been activated + via +\family sans +View\SpecialChar \menuseparator +Toolbars. +\end_layout + +\begin_layout Subsection +Entering nodes, arrows and labels +\end_layout + +\begin_layout Standard +Type the nodes into the correct positions of the matrix. + If you move the cursor out of the matrix, you should see a first rendering + of the node layout. + Next, add the arrows at the nodes from where they should emanate by typing + +\family typewriter + +\backslash +ar[ +\family default +\emph on +p +\family typewriter +\emph default +] +\family default +, where +\emph on +p +\emph default + can be any path made up from the characters +\family typewriter +u +\family default +, +\family typewriter +d +\family default +, +\family typewriter +l +\family default +, +\family typewriter +r +\family default +. + Make sure that the path indeed leads to an existing node within the matrix. + Otherwise, the figure will not display when the cursor leaves the editing + area. +\end_layout + +\begin_layout Standard +Next, label the arrows by attaching a label text as upper or lower indices + to the end of the arrow's path. + As always in LyX's math editor, an underscore +\family typewriter +_ +\family default + opens a box for a lower index and a +\family typewriter +^ +\family default + followed by a space opens a box for an upper index. + You can enter any LaTeX-code as a label. +\end_layout + +\begin_layout Subsection +Modifying arrows +\end_layout + +\begin_layout Standard +Finally, you can modify the appearance of the arrows by entering @-modifiers + +\family typewriter +@{ +\family default +\SpecialChar \ldots{} + +\family typewriter +} +\family default +, +\family typewriter +@< +\family default +\SpecialChar \ldots{} +>, +\family typewriter +@( +\family default +\SpecialChar \ldots{} +,\SpecialChar \ldots{} +) or +\family typewriter +@/ +\family default +\SpecialChar \ldots{} + +\family typewriter +/ +\family default +. + The above caveat applies to the first form only. + It must be entered as +\family typewriter +@ +\backslash +{ +\family default + with the arrow description entered inside the LyX-supplied box. + If this box remains empty, you have specified an empty arrow. + This is a useful construction, too, as you will see in the next section. + +\end_layout + +\begin_layout Standard +The other modifiers, +\family typewriter +@< +\family default +\SpecialChar \ldots{} + +\family typewriter +> +\family default +, +\family typewriter +@( +\family default +\SpecialChar \ldots{} +,\SpecialChar \ldots{} + +\family typewriter +) +\family default +and +\family typewriter +@/ +\family default +\SpecialChar \ldots{} + +\family typewriter +/ +\family default +are typed as shown with the arrow description replacing the ellipsis. + The code for bending arrows, which in +\family typewriter +xypic +\family default + is +\family typewriter +@/_ +\family default +\emph on +measure +\family typewriter +\emph default +/ +\family default +or +\family typewriter +@/ +\emph on +^ +\family default +measure +\family typewriter +\emph default +/ +\family default +where +\emph on +measure +\emph default + is any valid TeX-measure that should be entered as upper or lower index + to the first slash /. + Make sure that the ending slash does not end up being part of the upper + or lower index. +\end_layout + +\begin_layout Subsection +What if something goes wrong +\end_layout + +\begin_layout Standard +When constructing a diagram, you should at times check it by just moving + the cursor out of the editing area to see whether instant preview can successfu +lly convert it into graphical output. + If this does not happen, it may either be that instant preview for some + reason is not aware that it should retranslate the graphics. + Moving the cursor into the editing area and out again sometimes wakes up + instant preview. +\end_layout + +\begin_layout Standard +A more serious reason could be a syntactical error in your input (in that + case, the math edition area disappears completely). + If necessary, undo the last editing steps, using +\family sans +Ctrl+Z +\family default +, or try to translate the LyX-file into +\family sans +DVI +\family default + using +\family sans +Ctrl+D +\family default + or +\family sans +View\SpecialChar \menuseparator +DVI +\family default +. + There should be some error generated, which hopefully gives you a hint + as to the source of the mistake. +\end_layout + +\begin_layout Section +Hacks +\end_layout + +\begin_layout Standard +Certain things do not work correctly inside LyX. + The ones that we (used to) miss most are the horizontal and vertical scaling + of diagrams, and the correct positioning of arrows. + There are some workarounds that we are explaining here. + +\end_layout + +\begin_layout Subsection +Horizontal and vertical scaling +\end_layout + +\begin_layout Standard +It is often convenient to stretch the horizontal or the vertical dimensions + of an entire diagram by using spacing commands for rows and/or columns. + According to the +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-manual, for instance, +\family typewriter + +\backslash +xymatrix@R=1pc{ +\family default +\SpecialChar \ldots{} + +\family typewriter +} +\family default + defines an +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-matrix with row spacing of 1 pica. + Similarly, +\family typewriter + +\backslash +xymatrix@C= +\family default +\SpecialChar \ldots{} + +\family typewriter +{ +\family default +\SpecialChar \ldots{} + +\family typewriter +} +\family default + allows to modify the space between columns. + Unfortunately, these commands do currently not work inside LyX, as the + @-character is interpreted by LyX as ending the +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-matrix-macro. + +\end_layout + +\begin_layout Standard +Knowing that +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\begin_inset space ~ +\end_inset + + stores the values for row-spacing and column-spacing in the variables +\family typewriter + +\backslash +xymatrixrowsep@ +\family default + and +\family typewriter + +\backslash +xymatrixrowsep@ +\family default +, add the following macro to the preamble ( +\family sans +Layout\SpecialChar \menuseparator +Document\SpecialChar \menuseparator +Preamble +\family default +): +\begin_inset Newpage pagebreak +\end_inset + + +\end_layout + +\begin_layout LyX-Code + +\backslash +newcommand{ +\backslash +xyR}[1]{% +\end_layout + +\begin_layout LyX-Code + +\backslash +xydef@ +\backslash +xymatrixrowsep@{#1}} +\end_layout + +\begin_layout LyX-Code + +\end_layout + +\begin_layout Standard +A macro +\family typewriter + +\backslash +xyC +\family default + can be defined correspondingly by replacing +\family typewriter + +\backslash +xymatrixrowsep@ +\family default + with +\family typewriter + +\backslash +xymatrixcolsep@ +\family default +. + Now, a figure can be scaled by entering +\backslash +xyR{...} into the +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-matrix. + Place the cursor inside the matrix, just before the first entry. + Then enter +\family typewriter + +\backslash +xyR +\backslash +{ +\family default + or +\family typewriter + +\backslash +xyC +\backslash +{ +\family default + or both. + Don't forget the backslashes and remember, that the closing brace is automatica +lly supplied by LyX. + Inside the braces enter the dimensions. + The default is +\family typewriter +2pt +\family default +. + Here you see a diagram which is squashed vertically and stretched horizontally + with +\family typewriter + +\backslash +xyR{9pc} +\backslash +xyC{.5pc} +\family default +: +\end_layout + +\begin_layout Standard +\begin_inset Formula \[ +\xyC{.5pc}\xyC{9pc}\xymatrix{A\ar[r]\ar[d] & B\\ +C\ar@{}[ur]|{\text{{horizontal stretch}}} +} +\] + +\end_inset + + +\end_layout + +\begin_layout Subsection +Label positioning +\end_layout + +\begin_layout Standard +Another useful +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-command allows the correct positioning of labels along the shaft of arrows. + This feature is sometimes necessary, when the default position of a label + would otherwise clutter the picture, or would even coincide with other + items, such as the intersection of the arrows in the figure below. + In order to shift a label position alongside the shaft of an arrow, +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\begin_inset space ~ +\end_inset + + allows to prefix the label by a decimal number in parentheses, specifying + the fraction of distance alongside the arrow where the label is to be placed. + For instance, the code +\family typewriter + +\backslash +ar[r]|(0.3) +\backslash +varphi +\family default +, will place the label on the shaft, but only about one third of the way. + +\end_layout + +\begin_layout Standard +Doing the same with labels above or below arrows as +\family typewriter + +\backslash +ar[dr]^(0.3) +\backslash +varphi, +\family default + respectively +\family typewriter + +\backslash +ar[ur]_(0.3) +\backslash +phi +\family default +, does not work from inside LyX. + Instead, one has to replace the hat-symbol ^, resp. + the underscore _ , by the macros +\family typewriter + +\backslash +sp +\family default +, resp. + +\family typewriter + +\backslash +sb +\family default +, obtaining +\family typewriter + +\backslash +ar[dr] +\backslash +sp(0.3) +\backslash +varphi +\family default +and +\family typewriter + +\backslash +ar[ur] +\backslash +sb(0.3) +\backslash +phi. + +\family default +It is, in fact, possible to enter several labels this way and those labels + are placed correctly, even if the arrow bends. + In the following figure, the bending arrow with its four labels has been + produced with +\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}}. +\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 +Invisible stretched arrows +\end_layout + +\begin_layout Standard +A more general trick uses invisible arrows to place any object almost anywhere + inside a diagram. + Produce an invisible arrow, shorten (or prolong) it past its goal by adding + a decimal stretching ratio, e. +\begin_inset space \thinspace{} +\end_inset + +g. + +\family typewriter +(0.6) +\family default + or +\family typewriter +(1.4) +\family default + to its path. + Attach a label to this invisible arrow. + +\end_layout + +\begin_layout Standard +Thus, the down pointing arrow with its label +\begin_inset Formula $\varphi$ +\end_inset + + at (0.3) of its way along the shaft might as well have been produced by + adding to the regular arrow +\family typewriter + +\backslash +ar[dr] +\family default +an invisible +\begin_inset Formula $\varphi$ +\end_inset + +-labelled arrow +\family typewriter + +\backslash +ar@{}[dr(0.6)]^ +\backslash +varphi +\family default +, reaching only 0.6 of the way. + Its label will now appear at 0.3 of the way of the original visible arrow. + +\end_layout + +\begin_layout Standard +This workaround has two minor drawbacks: First, it does not work with bending + arrows. + Secondly, prolonging an invisible arrow beyond the normal dimension of + the figure will invisibly extend the figure box, and thereby cause too + much vertical space between the figure and the preceding or the following + paragraph. + +\end_layout + +\begin_layout Standard +Nevertheless, invisible arrows are an important tool, since they can, in + principle, be used to place information at any chosen place in a diagram. + In the above figure, for instance, we have used an invisible arrow to carry + the +\family typewriter + +\backslash +vdots +\family default + as label and at the earlier figure we had used an invisible arrow to carry + the text +\begin_inset Quotes eld +\end_inset + + +\family typewriter +horizontal stretch +\family default + +\begin_inset Quotes erd +\end_inset + + into the center of the figure. +\end_layout + +\begin_layout Subsection +Further +\family typewriter + +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\family default +-tricks +\end_layout + +\begin_layout Standard +Here we have focused only on the +\family typewriter + +\backslash +xymatrix +\family default + command, which is just one of the features available in Kris Rose's amazing +\family typewriter + +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\family default +-package. + The +\family typewriter + +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\family default +-pic manual +\begin_inset CommandInset citation +LatexCommand cite +key "xypic manual" + +\end_inset + + demonstrates many of the advanced possibilities of that package. + Beware, that its style is rather terse and you will likely need a lot of + experimenting and modifying the many worked examples. + Lauda +\begin_inset CommandInset citation +LatexCommand cite +key "Lauda" + +\end_inset + + explains how to use +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-pic to make braids, cobordism, string diagrams, and much more. + You might want to look on +\family typewriter +inset_preview.lyx +\family default + example shipped with LyX, which demonstrates how to use more advanced +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + +-commands via +\family typewriter +ERT +\family default + and +\family typewriter +Instant preview +\family default + insets. + A good and rather systematic introduction to +\family typewriter + +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\family default +-matrix is +\begin_inset CommandInset citation +LatexCommand cite +key "Ouvaton" + +\end_inset + +. + Even if you share with me the disadvantage of not being fluent in Esperanto, + you will be able to understand most of it. + +\end_layout + +\begin_layout Bibliography +\labelwidthstring References +\begin_inset CommandInset bibitem +LatexCommand bibitem +label "1" +key "xypic manual" + +\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 +. + Version 3.7, Feb. + 16, 1999. + Available as part of the +\family typewriter +xypic +\family default + LaTeX package. + +\end_layout + +\begin_layout Bibliography +\labelwidthstring References +\begin_inset CommandInset bibitem +LatexCommand bibitem +label "2" +key "instant-preview" + +\end_inset + + +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout + +http://www.tug.org/tex-archive/help/Catalogue/entries/preview-latex.html +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Bibliography +\labelwidthstring References +\begin_inset CommandInset bibitem +LatexCommand bibitem +label "3" +key "xypic" + +\end_inset + + +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout + +http://www.tug.org/tex-archive/help/Catalogue/entries/xypic.html +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Bibliography +\labelwidthstring References +\begin_inset CommandInset bibitem +LatexCommand bibitem +label "4" +key "AUCTeX" + +\end_inset + + +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout + +http://www.gnu.org/software/auctex/ +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Bibliography +\labelwidthstring References +\begin_inset CommandInset bibitem +LatexCommand bibitem +label "5" +key "Lauda" + +\end_inset + +Aarlon 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 Flex URL +status collapsed + +\begin_layout Plain Layout + +http://www.math.columbia.edu/~lauda/xy/ +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Bibliography +\labelwidthstring References +\begin_inset CommandInset bibitem +LatexCommand bibitem +label "6" +key "Ouvaton" + +\end_inset + +Filipp Ouvaton: +\begin_inset ERT +status collapsed + +\begin_layout Plain Layout + + +\backslash +Xy +\end_layout + +\end_inset + + +\emph on +-pic +\emph default +: +\emph on +Enkonduko pri Xymatrix +\emph default +. + +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout + +http://filip.ouvaton.org/xypic/xymatrix/index.html +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document