home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / text / tex / 14739 < prev    next >
Encoding:
Internet Message Format  |  1993-01-08  |  3.7 KB

  1. Path: sparky!uunet!usc!cs.utexas.edu!rutgers!micro-heart-of-gold.mit.edu!uw-beaver!cs.ubc.ca!unixg.ubc.ca!msr.triumf.ca!asnd
  2. From: asnd@msr.triumf.ca (Donald Arseneau)
  3. Newsgroups: comp.text.tex
  4. Subject: Re: Row vector times a matrix alignment, followup
  5. Message-ID: <7JAN199321222700@msr.triumf.ca>
  6. Date: 8 Jan 93 05:22:00 GMT
  7. References: <1ifgo0INN20p@tamsun.tamu.edu> <1ihqh2INNqd1@tamsun.tamu.edu>
  8. Organization: TRIUMF: Tri-University Meson Facility
  9. Lines: 88
  10. NNTP-Posting-Host: msr.triumf.ca
  11. News-Software: VAX/VMS VNEWS 1.41
  12.  
  13. In article <1ihqh2INNqd1@tamsun.tamu.edu>, mclean@math.tamu.edu (Robert Mclean) writes...
  14. >>Howdy, (requisite Aggie salutation.) I have a question which I probably
  15. >>shouldn't be worrying about. TeX is good at making us worry about little
  16. >>texnicalities.
  17. >>
  18. >>I would like to have a row vector times a matrix to look like this:
  19. >>
  20. >>(x,y,z) (a1,a2,a3)
  21. >>        (a4,a5,a6)
  22. >>        (a7,a8,a9)
  23. >>
  24. >>rather than how TeX usually spits it out as:
  25. >>
  26. >>        (a1,a2,a3)
  27. >>(x,y,z) (a4,a5,a6)
  28. >>        (a7,a8,a9)
  29. >>
  30. >  [or as]
  31. >        (        )
  32. >        (        )
  33. >        (        )
  34. >(x,y,z) (a1,a2,a3)
  35. >        (a4,a5,a6)
  36. >        (a7,a8,a9)
  37.  
  38. I remember doing this long long ago soon after learning TeX.  I found
  39. this response in TeXhax 1987, number 82:
  40.  
  41. -------- old TeXhax article, header and all! ----------
  42. Date:  6 Oct 87  9:49 -0800
  43. From: Donald Arseneau <asnd%dac.triumf.cdn%ubc.csnet@RELAY.CS.NET>
  44. To: texhax@SCORE.STANFORD.EDU
  45. Subject: top-aligned matrices
  46.  
  47. Dfr@usna.arpa doean't seem to work for me, the conection fails
  48. at usna.mil  so here is my response to the question about matrices
  49. aligned at the top:
  50.  
  51. % Hello;  I gave your problem a bit of thought, and what I thought
  52. % was that \vtop would easily do the trick.  That is true if you only
  53. % need the naked array normally provided by \matrix --- simply change
  54. % the \vcenter to \vtop in the definition of \matrix in the TeXbook---
  55. % but with parentheses, of course, there is a problem.  When I tried
  56. % it out the matrix contents lined up well but \pmatrix gave
  57. % parentheses centered on the line as in:
  58. %                           |       |
  59. %                           |       |
  60. %                       Z = | 0 0 0 |
  61. %                           | 0 0 0 |
  62. %                           | 0 0 0 |
  63. % ... and un-centering the parentheses is a real problem.
  64. %
  65. %     Well here is my solution using explicit measurements to remember
  66. % where the proper baseline of the inner matrix is:
  67. %
  68. \catcode`\@=11
  69. \newbox\matbox
  70. \def\topmatrix#1{\setbox\matbox=\vtop{\normalbaselines\m@th % set the matrix in
  71.     \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr       % a \vtop so the
  72.     \mathstrut\crcr\noalign{\kern-\baselineskip}           % first baseline
  73.     #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}  % lines up.
  74. % get twice difference between baseline and centerline of inner matrix:
  75.     \dimen255=\dp\matbox \advance\dimen255 by -\ht\matbox
  76. % Center matrix and surround with parentheses:
  77.     \setbox\matbox=\hbox{$\left( \,\vcenter{\box\matbox}\,\right)$}
  78. % Correct for difference between baseline and centerline of parentheses:
  79.     \advance\dimen255 by -\dp\matbox \advance\dimen255 by \ht\matbox
  80. % Lower centered matrix back to its proper baseline:
  81.     \lower0.5\dimen255\box\matbox
  82. }
  83. \catcode`\@=12
  84. One identity matrix is:
  85. $I_4=\topmatrix{1&0&0&0\cr
  86.                 0&1&0&0\cr
  87.                 0&0&1&0\cr
  88.                 0&0&0&1\cr}$,
  89. and the top row should line up with the line of text.
  90.  
  91.  
  92. \bye          %    Donald Arseneau  (asnd@triumfcl.bitnet)
  93. ---------- end included ------------------
  94.  
  95. This story is still true.  The email addresses are history!
  96.  
  97. \bye  %   Donald Arseneau        asnd@reg.triumf.ca
  98.                                 (asnd@triumfcl.bitnet still works)
  99.