1
\begin{align}\label{flicker4}
\[{\rm{rank}}\left[ {\begin{array}{*{20}{c}}
E&0&{{B_d}}\\
C&{{D_d}}&0\\
0&0&{{D_d}}
\end{array}} \right] = n + {\rm{rank}}{D_d} + {\rm{rank}}\left[ {\begin{array}{*{20}{c}}
{{B_d}}\\
{{D_d}}
\end{array}} \right],\]

\end{align}
Torbjørn T.
  • 206,688

1 Answers1

3

There are a few problems with your code. First of all:

  • Empty lines are not allowed inside a display math environment
  • align is already a math environment, so you shouldn't use \[ .. \] inside it.

The code below has some additional suggestions, including using bmatrix instead of array, using equation instead of align because there is only one line and no alignment needed, removing a lot of unnecessary braces, and defining a new operator instead of using \rm (which has been deprecated for twenty-odd years).

\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\rank}{rank}
\begin{document}
\begin{equation}\label{flicker4}
\rank
\begin{bmatrix}
E & 0   & B_d \\
C & D_d & 0   \\
0 & 0   & D_d
\end{bmatrix} = n + \rank D_d +
\rank \begin{bmatrix}
B_d\\
D_d
\end{bmatrix},
\end{equation}
\end{document}
Torbjørn T.
  • 206,688
  • I'm not a mathematician, so I'm not actually entirely sure if \rank should be defined as an operator. If someone knows better, please let me know or just edit my code. – Torbjørn T. May 04 '17 at 22:06
  • I‘d say it’s quite OK to make it a \nolimits operator, exactly as you did (i.e., just be careful not to say \DeclareMathOperator*{\rank}{rank}!). – GuM May 04 '17 at 22:47
  • 1
    Defining the command as \rk would be shorter to type, and I don't think it's already defined. – Bernard May 04 '17 at 23:10
  • @Bernard Shorter to type, perhaps harder to remember. – Torbjørn T. May 05 '17 at 06:23