Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I have coded the following diagram in xypic:

\xymatrix{ 
& B \ar[rr] \ar'[d][dd]^(.45)\simeq && B\cup_A C \ar@{.>}[dd]^-\simeq \\
A \ar@{>->}[ru] \ar[rr] \ar[dd]_-\simeq && C \ar@{>->}[ru] \ar[dd]^(.68)\simeq & \\
& B' \ar'[r][rr] && B'\cup_{A'}C' \\ A' \ar@{>->}[ru] \ar[rr] && C' \ar@{>->}[ru] &
}

It renders like this:

enter image description here

If you are subconsciously symmetry-obsessed like many human beings are (including myself), you will have noticed that the diagonal arrows which are supposed to be parallel, aren't really. This is a side effect of having vertices with different lengths.

Is there an automatic fix to this, some command that prioritizes parallelism over placing the arrows tip/end most centered on the objects? If not, how can I fix this manually for this particular diagram?

share|improve this question
    
As I don't use xypic, I can't turn this into an answer - besides you already have a good one. It strikes me though that you'd be better off considering the text as labels relating to vertices rather than as vertices - look at how the primes on A' and C' collide with the tails on the arrows - and setting then "outside" the vertices. –  Chris H Apr 3 at 8:53
1  
@ChrisH: thanks for the suggestion. The problem of the primes overlapping with the arrows is solved by passing the cmtip command to xypic. I just rendered the diagram for posting it here in presheaf.com, which apparently doesn't use cmtip. –  lentic catachresis Apr 3 at 9:06

1 Answer 1

up vote 8 down vote accepted

With help of calc package, make a box of width B with left alignment and put B\cup_A C inside. Do the same for B'\cup_{A'}C'. Here these two quantities protrude to the right, but I hope that is OK.

\documentclass{article}
\usepackage{xypic,calc}
\begin{document}
  \[
  \xymatrix{
& B \ar[rr] \ar'[d][dd]^(.45)\simeq && \makebox[\widthof{$B$}][l]{$B\cup_A C$} \ar@{.>}[dd]^-\simeq \\
A \ar@{>->}[ru] \ar[rr] \ar[dd]_-\simeq && C \ar@{>->}[ru] \ar[dd]^(.68)\simeq & \\
& B' \ar'[r][rr] && \makebox[\widthof{$B$}][l]{$B'\cup_{A'}C'$} \\ A' \ar@{>->}[ru] \ar[rr] && C' \ar@{>->}[ru] &
}
\]
\end{document}

enter image description here

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.