[Xy-pic] Typesetting row operations in matrices

Ross Moore ross at ics.mq.edu.au
Sun Mar 26 00:33:06 CET 2006


On 25/03/2006, at 7:21 AM, Matthew Leingang wrote:

> Hello list,
>
> \xymatrix{1 & 1 & 1 & 1 & 0 \\ 0 & 1 & -1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0
> \ar@/_3ex/[uu]_{-1}}
>
> Which is pretty close.  You can set the row and column separation  
> parameters
> so the spacing is just like it is in LaTeX matrices.

Try this:

\[
\begin{xy}
*!C\xybox{\xymatrix{
1 & 1 & 1 & 1 & 0 \\ 0 & 1 & -1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0
}\POS="matrix"
,"matrix"!L*\frm{(},"matrix"!R*\frm{)}
,"3,5"+/r.5cm/,\ar@/_3ex/"1,5"+/r.5cm/_{-1}}
\end{xy}
\]


or


\newcommand{\circled}[1]{\xybox{*+[Fo]{#1}}}
\[
\begin{xy}
*!C\xybox{\xymatrix{
1 & 1 & 1 & 1 & 0 \\ 0 & 1 & -1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0
}\POS="matrix"
,"matrix"!L*\frm{(},"matrix"!R*\frm{)}
,"3,5"+/r.5cm/,\ar@/_3ex/"1,5"+/r.5cm/_{\circled{1}\,-\,\circled{3}}}
\end{xy}
\]




>
> But usually matrices are delimited by something, like square  
> brackets or
> parentheses.  I want the numbers part of the matrix to go inside the
> delimiters but the curved arrows to go outside the delimiter on the  
> RHS.
> Putting \left[...\right] about the above, predictably, puts the  
> delimiter
> outside the arrows.  But unpredictably, this extends the delimiter  
> about 2/3
> higher than the visible natural height of the matrix.  You get giant
> delimiters with a normal-size matrix nestled at the bottom.

The !C modifier fixes this, since it centers the object
to have equal height/depth.

But it's better to use Xy-pic itself to place the surrounding brackets.


> I've also tried some hacks like using a regular matrix environment  
> with an
> xymatrix next to it, containing no visible entries and just the  
> arrows.  But
> the regular matrix's bottom gets vertically aligned with the  
> xymatrix's
> middle.  The only way I know how to fix that is to move up the  
> xmymatrix,
> creating monstrosities like
>
> \left[\begin{matrix}1 & 1 & 1 & 1 & 0 \\ 2 & 0 & 4 & 2 & 0 \\ 1 & 1  
> & 1 & 3
> & 0 \end{matrix}\right]
> \hspace{-1.5ex}{\raisebox{4.3ex}{\xymatrix{
> {\mathstrut} \ar@/^3ex/[d]_{-2} \ar@/^4ex/[dd]^{-3} \\ {\mathstrut}\\
> {\mathstrut} }}}

The frills don't belong within the matrix itself.

Xy-pic allows you to access all the matrix-cell positions
from outside the \xymatrix construction, when it is
given as part of a surrounding {xy} environment, or \xygraph .

That gives you the freedom to do everything that you want,
and a whole lot more.

>
> This does "work" but if the matrix environment changes the xymatrix  
> kludge
> matrix has to change, too.  I'd be OK with that if I could get the
> two-matrix approach to line up without entering in dimensions by hand.
>
> Does anybody have an elegant solution to this problem?

See the above examples.


>
> TIA,
> Matt


Hope this helps,

	Ross Moore


>
> -- 
> Matthew Leingang
> Preceptor in Mathematics
> Harvard University
>
> URL: http://www.math.harvard.edu/~leingang/
> vCard: http://www.math.harvard.edu/~leingang/vCard.vcf
>
>
>
> _______________________________________________
> xy-pic mailing list
> http://tug.org/mailman/listinfo/xy-pic

------------------------------------------------------------------------
Ross Moore                                         ross at maths.mq.edu.au
Mathematics Department                             office: E7A-419
Macquarie University                               tel: +61 +2 9850 8955
Sydney, Australia  2109                            fax: +61 +2 9850 8114
------------------------------------------------------------------------




More information about the xy-pic mailing list