I'm trying to create a block matrix and surely there are hundreds of question about those already. But most of what I read so far, seems quite hackish in the end. What I have is:
\documentclass{article}
\usepackage[fleqn]{amsmath}
\usepackage{blkarray}
\usepackage{multirow}
\usepackage{mathtools}
\usepackage{graphicx}
\newcommand{\rdots}{\hspace{.2ex}\raisebox{1ex}{\rotatebox{-12}{$\ddots$}}}
\begin{document}
\begin{equation}
\begin{blockarray}{(c@{}c@{}c|c@{}c@{}c)l}
1&&0&\BAmulticolumn{3}{c}{\multirow{3}{*}{\huge$0$}}&\multirow{3}{*}{$\dim F\;\text{vertical}$}\\&\rdots&&&&&\\0&&1&&&&\\
\cline{1-6}
\BAmulticolumn{3}{c|}{\multirow{3}{*}{\huge$0$}}&\tfrac{1}{t}&&0&\multirow{3}{*}{$\dim Z\;\text{horizontal}$}\\&&&&\rdots&&\\&&&0&&\tfrac{1}{t}&\\
\end{blockarray}
\end{equation}
\end{document}
There are a lot of bits, that could be improved, but most importantly the spacing in the submatrices is too wide.
I also tried to enclose things that occur multiple times in macros
\newcommand\zeroblock[3][]{\BAmulticolumn{#2}{c#1}{\multirow{#3}{*}{\huge$0$}}}
\newcommand\position[3]{\mspace{#1}\raisebox{#2}{$\mathclap{#3}$}}
\newcommand\diagonal[1]{\begin{matrix}#1&\position{-8mu}{-2em}{\rdots}\scalebox{1.5}{0}\\\scalebox{1.5}{0}\end{matrix}}
\begin{document}
\begin{equation}
\begin{array}{c|c}
\diagonal{1}&\zeroblock33\\
\zeroblock33&\diagonal{\tfrac{1}{t}}
\end{array}
\end{equation}
but \zeroblock
gives me
! Misplaced \omit.
\multispan ->\omit
\@multispan
l.18 \diagonal{1}&\zeroblock33
\\
and diagonal
, while it works inside of array
, does not work in blockarray
and gives
! Incompatible list can't be unboxed.
<argument> \BA@first@box
Also it does not look good:
So I was thinking, that certainly there must be a better way to do these things. Is there?
I
and1/t
timesI
on the diagonal. Ordiag(1,1/t)\otimes I