[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