banner logo
Home | Projects | Docs | Jargon
Bugzilla | LXR | Tree Status | Checkins
Feedback | FAQ | Search

MathML Demo: <mtable> - tables and matrices

NOTES:
  1. Alternate stylesheets are available from: View → Page Style → STIX | Asana Math | MathJax
  2. Right click on a MathML fragment and choose View MathML Source to get its source.
  3. In the examples below, the text won't be allowed to decrease pass the scriptminsize or your browser's minimum allowable font size -- this can be set with Tools → Options → Content tab → Fonts & Colors → Advanced button → Minimum font size. To see the effect of the gradual decrease induced by changes in script levels more clearly, you may have to increase your default font size in the menu: Tools → Options → Content tab → Fonts & Colors → Size.
    • Here is how the alphabet looks like at scriptminsize: a, b, c ... x, y, z
    • Here is how greek letters look like at scriptminsize: α, β, γ ..., ψ, ω, ϑ, ϒ, ϖ
    • Here is how numbers look like at scriptminsize: 0, 1, 2, ..., 10, 11, 12, ...
  4. You can use View → Zoom → Text Zoom only checked in the usual way to zoom the MathML text along with the other text.
  5. The text written that way in the above remarks describes items in the menu bar. If you only see the Firefox menu, you can enable the menu bar with Firefox → Options → Menubar.

As a visual aid, the examples deliberately draw attention to the math axis and the baseline:
----------------------- this is the math axis
..................... this is the baseline

  1. External vertical align is center ---... 1 22 333 4444 x 55555 666666 a b c 7777777 11 ...--- , cols arg is "|r|c|l|", \hline's above and below. When align="center" or align="baseline", the middle of the table coincides with the baseline.
  2. External vertical align is axis ---... 1 22 333 4444 x 55555 lim n f-1 i=1 n Ai rowspan=2 here xn + yn n columnspan=2 here 7777777 11 ...--- , columnlines="solid", rowlines="dashed solid dashed". By default -- when the align attribute is not set, or when align="axis", the middle of the table coincides with the math axis.
  3. External vertical align is top ---... 1 22 333 4444 55555 x + 1 666666 a b c 7777777 11 cols arg is"r|c:l".
  4. External vertical align is bottom ---... 1 22 333 4444 55555 666666 x 2 a b c 7777777 11 cols arg is "r|cl". MathML doesn't specify how to only display certain sides of the table border, as in "|rcl", but these can be obtained in Mozilla using the 'border' property of CSS, e.g., "|rcl" can be achieved with the CSS declaration "mtable { border-left: solid thin }".
  5. Math axis test, using externally aligned arrays inside symmetric fences. ---... [ 1 666666 x 2 c axis ] [ 1 666666 x 2 c center ] + 1 55555 x + 1 c bottom + 1 4444 x c top + 1 4444 4444 4444 x center post text.
  6. Now for a display ---... 1 4444 4444 4444 x 7777777 text after displayed math. Do you see which vertical alignment is set on that table?
  7. Example of \begin{matrix} ---... 0 1 1 0 with 3 \hline's.
  8. Example of \begin{smallmatrix} ---... 1 2 3 4 5 obtained with scriptlevel="+1".
  9. Example of \begin{pmatrix} ---... ( 0 - i i 0 ) with an \hline after the first row.
  10. Example of \begin{bmatrix} ---... [ 1 0 0 - 1 ]
  11. Example of \begin{vmatrix} ---... | a b c d |
  12. Example of \begin{Vmatrix} ---... 0 1 0 11 0 111 0 1111 0
  13. Example of \begin{Bmatrix} ---... { 1 0 1 0 11 }
  14. A fenced matrix and the equivalent \begin{bmatrix} ---... [ a b b c c c d d d d ] [ a b b c c c d d d d ] .
  15. A table with align="axis2" to anchor the table externally w.r.t. the axis of the second row ---... ab α β abx yab γ δ ab ...--- , but this is subject to variances due to style changes, e.g., from the scriptlevel. ---... ab α β abx yab γ δ ab ...--- . Anyway, this is buggy in Mozilla because what you see above is a fallback to the rendering code used for the baseline case (see below).
  16. A table with align="baseline -1" to anchor the table externally w.r.t. the baseline of the last row ---... d+p ( α β γ δ ) ...--- , neat isn't it? This would be pretty hard to obtain otherwise. Contrast it with the following which has align="bottom" ---... d+p ( α β γ δ ) ...--- , and with this one which has align="center -1" ---... d+p ( α β γ δ ) ...--- , but note that setting the baseline relative to a particular row is meaningless if the row doesn't have at least one cell with "rowalign=baseline" where to anchor the baseline (in which case Mozilla will behave as if it was align="center#rownumber").
  17. These may sound like gimmicks until you want to get a damping effect such as this ---... ab ab ab ab ab ab , or perhaps the reverse ---... ab ab ab ab ab ab , modulo pixel roundoff errors. Here 'a' and 'b' can be other combinations of possibly irregular boxes.
  18. And making floating elements do a multiplication such as the following one which is anchored at a baseline is made simple by using align="baseline1" on both tables [ a b c d ] [ a b c d ]
  19. To multiply a matrix A by a vector x, each row of the matrix has to be multiplied to the vector. So at the i-th step, it proceeds thus: i-th row [ a11 a12 a13 a1n ai1 ai2 ai3 ain an1 an2 an3 a n n ] [ x1 x2 x3 xn ]