TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I can represent an upper trapezoidal matrix say as shown below. I would like to replace all those zeros with a single big zero that spans across the low triangle rows and columns, and maybe also add a delimiter along the diagonal that clearly shows it is an upper diagonal matrix. How can I do that?

    \x & \x & \x & \x & \x \\
     0 & \x & \x & \x & \x \\
     0 &  0 & \x & \x & \x \\
     0 &  0 &  0 & \x & \x \\
     0 &  0 &  0 &  0 & \x \\

Separate question ... why the \x command I define outputs # rather than the intended cross symbol? It outputs the same symbol # no matter if I use \XSolid or \ding{53}

UPDATE: taking the answer as input, I ended doing this:

    \x    & \x       & \x    & \x    & \x \\ \cline{1-1}
    \bord & \x       & \x    & \x    & \x \\ \cline{2-2}
          & \bord    & \x    & \x    & \x \\ \cline{3-3}
          & \bigzero & \bord & \x    & \x \\ \cline{4-4}
          &          &       & \bord & \x \\ \cline{5-5}

which produces this:

enter image description here

share|improve this question
\documentclass{article}\begin{document}\XSolid\end{document} results in ! Undefined control sequence., thus I assume you are loading a package to define \XSolid? Which package/which version, please? – Stephen Aug 30 '12 at 15:17
good question! I have no idea :D it is a large report and I have been adding packages as needed. As I understand \XSolid has been defined somewhere but I have no idea where exactly. Oh I think the package that defines \XSolid is TikZ – Giovanni Azua Aug 30 '12 at 15:22
You could place a \show\XSolid in the preamble. When it is still undefined, it will print to the log "> \XSolid=undefined. ", when it is defined it will give the definition, and if the definition is changed (from X to #), it will give a changed definition. For a lot of packages this might be a lot of work to find which package (re-)defines it... – Stephen Aug 30 '12 at 15:29
up vote 24 down vote accepted
    & 1 & & \text{\huge0}\\
    & & 1\\
    & \text{\huge0} & & 1\\
    & & & & 1

enter image description here

or \makebox(0,0){\text{\huge0}} if you want to have the same line spacing.

share|improve this answer
perfect! good catch about the line spacing .. I was getting nervous about it :D then saw your timely edit :) perfect! – Giovanni Azua Aug 30 '12 at 15:24
Instead of \makebox(0,0){...} You can use \smash{\text{\huge 0}}. It also easier to insert in LyX which doesn't seem to support the \makebox(...) (width,height) option. – Guy Nov 8 '14 at 20:13

Just in case : you might need repeated dots across the diagonal. Here is a ugly way to do so.

\def\Ddot#1#2(#3,#4,#5,#6){\deltay=#6\setbox1=\hbox to0pt{\smash{\dotcnt=1
\kern#3\loop\raise\dotcnt\deltay\hbox to0pt{\hss#2}\kern#5\ifnum\dotcnt<#1
\advance\dotcnt 1\repeat}\hss}\setbox2=\vtop{\box1}\ht2=#4\box2}

And an exemple (using amsmath, of course) :

&\mbox{\Huge 0}&&&\\

\Ddot in action

share|improve this answer
why don't you use \ddots and \cdots instead? – Herbert Aug 30 '12 at 21:36
It is really painful to adjust various \ddots across lines & columns of the matrix and, anyway, these \ddots never join up properly. – rcabane Sep 1 '12 at 8:04
One more note : the width of the various elements has some influence onto the column widths and line heights. The suggested macro gives a zero width & height to the repeated dots, while \cdots and \ddots give a non-zero width. – rcabane Sep 9 '12 at 12:44
Is there also a non-ugly way to do this? – Christian Nov 28 '13 at 20:39
I don't know ! Do you have any ideas ? – rcabane Dec 24 '13 at 13:01

Your Answer


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.