Zu große Abstände in Tikz-Matrix
Anschlussfrage zu [wie-stelle-ich-die-matrixparameter-bei-der-tikz-bibliothek-matrix-ein][1]
![alt text][2]
Ich habe in folgendem Code die Labels als `overlay` deklariert und im `MatrixStyle` eingestellt `column sep=-\pgflinewidth, row sep=-\pgflinewidth`
Trotzdem tauchen noch unerwünschte Abstände auf - im Bild rot und blau markiert
**Hinweis**: · **Hinweise:**
* Ich füge hier zwei tikz-Matrizen `tikz`-Matrizen (Kasten I, Kasten II) in eine tikz-Matrix. `tikz`-Matrix. Dazu habe ich die beiden in `lrbox`en definiert; ich fand keine andere Möglichkeit. Könnten die Abstandsprobleme damit zusammenhängen?
· * Ich habe hier meist mit `\def`, statt `\newcommand` gearbeitet, weil ich Notation angenehmer finde, wenn sie keine Probleme hervorruft.
<!-- -->
\documentclass[border=10pt, varwidth]{standalone}
%\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amsfonts,amssymb, relsize}
\usepackage{tikz}
\usetikzlibrary{matrix, decorations.pathreplacing}
\begin{document}
\tikzset{MatrixStyle/.style={%
%matrix of math nodes,
%draw, densely dashed,
%inner ysep=2.5pt,
%%column sep=5ex, row sep = 5ex,
%nodes={
%outer sep=0mm, %
%inner sep=2pt,
%%text width=1.5em,align=center
%%node distance = 0cm, % kein Effekt
%},
matrix of math nodes,
draw, densely dashed,
inner ysep=2.5pt,
column sep=-\pgflinewidth,% <- column sep passend setzen
row sep=-\pgflinewidth% <- row sep passend setzen
}%
}
% Label für Blöcke definieren
\tikzset{%
BlockLabel/.style n args={4}{%
label={[overlay, label position={#3}, rotate={#4}]:
{\text{$\mathsmaller{(#1 \times #2)}$}} % Text
}
},
BlockLabel/.default={?}{?}{below}{0}
}%
% Leerer Block
\def\Ph{\phantom{1}}
\def\BlockLeer{%
\begin{matrix}
\Ph & \Ph & \Ph \\
& & \\
& & \\
\end{matrix}
}%
% Unbekannter Block
\def\BlockUnbekannt{%
\node[draw, densely dashed,
BlockLabel={?}{?}{above}{0},
] (BlockUnbekannt){
\begin{matrix}
\Ph & \Ph & \Ph \\
& ? & \\
& & \\
\end{matrix}
};
}%
% Jordan Kasten I, Block I
\def\JordanKastenIBlockI{%
\node[draw, densely dashed, inner sep=2.5pt,
BlockLabel={3}{3}{below}{0},
] (JordanKastenIBlockI){
\begin{matrix}
0 & 1 & \\
& 0 & 1 \\
& & 0 \\
\end{matrix}
};
}%
% Jordan Kasten I, Block II
\def\JordanKastenIBlockII{%
\BlockUnbekannt
}
% Jordan Kasten I
\newsavebox\InhaltJordanKastenI
\begin{lrbox}{\InhaltJordanKastenI}
\begin{tikzpicture}
\matrix (JordanKastenI) [
MatrixStyle,
BlockLabel={?}{?}{above}{0},
]
{%
\JordanKastenIBlockI & \\
& \JordanKastenIBlockII \\
};
\end{tikzpicture}
\end{lrbox}
\newcommand{\JordanKastenI}{\usebox\InhaltJordanKastenI}
% Jordan Kasten II, Block I
\def\JordanKastenIIBlockI{%
\node[draw, densely dashed,
BlockLabel={2}{2}{below}{0},
] (JordanKastenIIBlockI){
\begin{matrix}
1 & 1 \\
& 1 \\
\end{matrix}
};
}%
% Jordan Kasten II, Block II
\def\JordanKastenIIBlockII{%
\BlockUnbekannt
}
% Jordan Kasten II
\newsavebox\InhaltJordanKastenII
\begin{lrbox}{\InhaltJordanKastenII}
\begin{tikzpicture}[]
\matrix (JordanKastenII) [
MatrixStyle,
BlockLabel={?}{?}{above}{0},
]
{%
\JordanKastenIIBlockI & \\
& \JordanKastenIIBlockII \\
};
\end{tikzpicture}
\end{lrbox}
\newcommand{\JordanKastenII}{\usebox\InhaltJordanKastenII}
\begin{tikzpicture}[scale=1]
% Jordannormalform JNF
\def\LabelJNF{$(7 \times 7)$}
\matrix (m) [%label=below:,
left delimiter={(},right delimiter={)},
MatrixStyle, draw=none,
]
{%
\JordanKastenI & \\
& \JordanKastenII \\
};
% Underbrace
\draw [ decoration={brace}, decorate] (m.south east) -- (m.south west) node[midway, below=4.5pt]{\LabelJNF};
% Platzhalter "J = "
\node[xshift=-0.75cm] at (m.west) {$J =$};
\end{tikzpicture}
\end{document}
[1]: http://texwelt.de/wissen/fragen/17601/wie-stelle-ich-die-matrixparameter-bei-der-tikz-bibliothek-matrix-ein
[2]: http://texwelt.de/wissen/upfiles/55555555_35.png