I am interested in building matrices out of smaller matrices, do calculations, and express the results in a block matrix form, in terms of the smaller matrices.
For example, say I define the following $2\times 2$ Pauli matrices
σ0 = PauliMatrix[0]; (*{{1, 0}, {0, 1}}*)
σ1 = PauliMatrix[1]; (*{{0, 1}, {1, 0}}*)
σ2 = PauliMatrix[2]; (*{{0, -I}, {I, 0}}*)
σ3 = PauliMatrix[3]; (*{{1, 0}, {0, -1}}*)
In matrix format they look like $$\sigma0=\left(\begin{array}{rr} 1 & 0 \\ 0 & 1 \\ \end{array}\right), \sigma1=\left(\begin{array}{rr} 0 & 1 \\ 1 & 0 \\ \end{array}\right), \sigma2=\left(\begin{array}{rr} 0 & -i \\ i & 0 \\ \end{array}\right), \sigma3=\left(\begin{array}{rr} 1 & 0 \\ 0 & -1 \\ \end{array}\right). $$
Then, I define
O2 = {{0, 0}, {0, 0}};
and the following $4\times 4$ Dirac matrices
γ0 = ArrayFlatten[{{σ0, O2}, {O2, σ0}}];
γ1 = ArrayFlatten[{{O2, σ1}, {-σ1, O2}}];
γ2 = ArrayFlatten[{{O2, σ2}, {-σ2, O2}}];
γ3 = ArrayFlatten[{{O2, σ3}, {-σ3, O2}}];
For example, $\gamma2$ has the following matrix form $$\left(\begin{array}{rrrr} 0 & 0 & 0 & -i \\ 0 & 0 & i & 0 \\ 0 & i & 0 & 0 \\ -i & 0 & 0 & 0 \\ \end{array}\right),$$ and $\gamma1.\gamma2$ has the form $$\left(\begin{array}{rrrr} -i & 0 & 0 & 0 \\ 0 & i & 0 & 0 \\ 0 & 0 & -i & 0 \\ 0 & 0 & 0 & i \\ \end{array}\right).$$
What can I do to display $\gamma2$ in the form
$$\left(\begin{array}{rr} 0 & \sigma2 \\ -\sigma2 & 0 \\ \end{array}\right)$$
and $\gamma1.\gamma2$ in the form
$$\left(\begin{array}{rr} -i \sigma3 & 0 \\ 0 & -i \sigma3 \\ \end{array}\right)?$$
Note that
MatrixForm[{{O2, σ1}, {-σ1, O2}}]
works to display them as I need only as long as I don't define the symbols $O2$ and $\sigma2$, otherwise the result is in the usual matrix form.
MatrixForm[{{O2, \[Sigma]1}, {-\[Sigma]1, O2}}]
. Regarding the multiplication of matrices consisting in blocks I suggest you read this $\endgroup$