xy is a special package for drawing diagrams. To use it, simply add the following line to the preamble of your document:

LaTeX

Getting Started
  1. Introduction
  2. Installation
  3. Installing Extra Packages
  4. Basics
  5. How to get help

Common Elements

  1. Document Structure
  2. Text Formatting
  3. Paragraph Formatting
  4. Colors
  5. Fonts
  6. List Structures
  7. Special Characters
  8. Internationalization
  9. Rotations
  10. Tables
  11. Title creation
  12. Page Layout
  13. Customizing Page Headers and Footers‎
  14. Importing Graphics
  15. Floats, Figures and Captions
  16. Footnotes and Margin Notes
  17. Hyperlinks
  18. Labels and Cross-referencing
  19. Initials

Mechanics

  1. Errors and Warnings
  2. Lengths
  3. Counters
  4. Boxes
  5. Rules and Struts

Technical Text

  1. Mathematics
  2. Advanced Mathematics
  3. Theorems
  4. Chemical Graphics
  5. Algorithms
  6. Source Code Listings
  7. Linguistics

Special Pages

  1. Indexing
  2. Glossary
  3. Bibliography Management
  4. More Bibliographies

Special Documents

  1. Scientific Reports (Bachelor Report, Master Thesis, Dissertation)
  2. Letters
  3. Presentations
  4. Teacher's Corner
  5. Curriculum Vitae
  6. Academic Journals (MLA, APA, etc.)

Creating Graphics

  1. Introducing Procedural Graphics
  2. MetaPost
  3. Picture
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. Creating 3D graphics

Programming

  1. Macros
  2. Plain TeX
  3. Creating Packages
  4. Creating Package Documentation
  5. Themes

Miscellaneous

  1. Modular Documents
  2. Collaborative Writing of LaTeX Documents
  3. Export To Other Formats

Help and Recommendations

  1. FAQ
  2. Tips and Tricks

Appendices

  1. Authors
  2. Links
  3. Package Reference
  4. Sample LaTeX documents
  5. Index
  6. Command Glossary

edit this boxedit the TOC

\usepackage[all]{xy}

where "all" means you want to load a large standard set of functions from Xy-pic, suitable for developing the kind of diagrams discussed here.

The primary way to draw Xy-pic diagrams is over a matrix-oriented canvas, where each diagram element is placed in a matrix slot:

\xymatrix{A & B \\
          C & D }

The \xymatrix command puts its contents in math mode. Here, we specified two lines and two columns. To make this matrix a diagram we just add directed arrows using the \ar command.

\xymatrix{ A \ar[r] & B \ar[d] \\
           D \ar[u] & C \ar[l] }

The arrow command is placed on the origin cell for the arrow. The arguments are the direction the arrow should point to (up, down, right, and left).

\xymatrix{
    A \ar[d] \ar[dr] \ar[r] & B \\
    D                       & C }

To make diagonals, just use more than one direction. You can repeat directions to make bigger arrows.


\xymatrix{
    A \ar[d] \ar[dr] \ar[drr] &   &   \\
    B                         & C & D }

We can draw even more interesting diagrams by adding labels to the arrows. To do this, we use the common superscript and subscript operators.

\xymatrix{
    A \ar[r]^f \ar[d]_g & B \ar[d]^{g'} \\
    D \ar[r]_{f'}       & C }

As shown, you use these operators as in math mode. The only difference is that that superscript means "on top of the arrow", and subscript means "under the arrow". There is a third operator, the vertical bar: | It causes text to be placed in the arrow.

\xymatrix{
    A \ar[r]|f \ar[d]|g & B \ar[d]|{g'} \\
    D \ar[r]|{f'}       & C }

To draw an arrow with a hole in it, use \ar[...]|\hole. In some situations, it is important to distinguish between different types of arrows. This can be done by putting labels on them or changing their appearance

\xymatrix{
    \bullet\ar@{->}[rr]     && \bullet\\
    \bullet\ar@{.<}[rr]     && \bullet\\
    \bullet\ar@{~)}[rr]     && \bullet\\
    \bullet\ar@{=(}[rr]     && \bullet\\
    \bullet\ar@{~/}[rr]     && \bullet\\
    \bullet\ar@{^{(}->}[rr] && \bullet\\
    \bullet\ar@2{->}[rr]    && \bullet\\
    \bullet\ar@3{->}[rr]    && \bullet\\
    \bullet\ar@{=+}[rr]     && \bullet }

Notice the difference between the following two diagrams:

\xymatrix{ \bullet \ar[r] \ar@{.>}[r] & \bullet }

\xymatrix{
    \bullet \ar@/^/[r]
    \ar@/_/@{.>}[r] &
    \bullet }

The modifiers between the slashes define how the curves are drawn. Xy-pic offers many ways to influence the drawing of curves; for more information, check the Xy-pic documentation.

If you are interested in a more thorough introduction then consult the Xy-pic Home Page, which contains links to several other tutorials as well as the reference documentation.


Previous: PSTricks Index Next: Creating 3D graphics