von esdd » Mi 18. Jan 2017, 12:59
Bartman hat geschrieben:Ich dachte beim Lesen des Wunsches von Vertigo jedoch eher an eine Matrix. Leider gibt es bei meinem Versuch dieser Variante eine senkrechte Verschiebung der Knoten für die Prüfbits.
Die einzelnen Nodes der Matrix werden horizontal mit ihrer Grundlinie aneinander ausgerichtet. Da c und i unterschiedlich hoch sind und zentriert in innerhalb ihres Nodes, sind die Ränder der Boxen nicht auf gleicher Höhe. Du kannst das ändern, in dem Du für nodes zusätzlich anchor=center vorgibst. Alternativ kann man auch eine feste Höhe und Tiefe des Textes vorgeben. Dann sind die Grundlinien weiterhin ausgerichtet, aber auch die Ränder der Nodes auf gleicher Höhe:
\documentclass[tikz, border=5pt]{standalone}
\usepackage[utf8]{inputenc}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix [
matrix of math nodes,
nodes={
draw,
minimum size=1cm,
text height=\ht\strutbox,% <- ergänzt
text depth=\dp\strutbox% <- ergänzt
},
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
infobit/.style = {fill=lightgray}
] (m) {
|[infobit]| i_0 & |[infobit]| i_1 & |[infobit]| i_2 & |[infobit]| i_3 & c_0 & c_1 & c_2\\
};
\draw [dash dot,dash phase=2.5pt]
([yshift=5mm,xshift=-.5\pgflinewidth]m-1-4.north east)
--
([yshift=-7mm,xshift=-.5\pgflinewidth]m-1-4.south east)
;
\node (infobit) at ([yshift=-2mm]m-1-2.south east) {Informationsbits};
\node (pruefbit) at ([yshift=-2mm]m-1-6.south) {Prüfbits};
\end{tikzpicture}
\end{document}
[quote="Bartman"]Ich dachte beim Lesen des Wunsches von Vertigo jedoch eher an eine Matrix. Leider gibt es bei meinem Versuch dieser Variante eine senkrechte Verschiebung der Knoten für die Prüfbits.[/quote]
Die einzelnen Nodes der Matrix werden horizontal mit ihrer Grundlinie aneinander ausgerichtet. Da c und i unterschiedlich hoch sind und zentriert in innerhalb ihres Nodes, sind die Ränder der Boxen nicht auf gleicher Höhe. Du kannst das ändern, in dem Du für [tt]nodes[/tt] zusätzlich [tt]anchor=center[/tt] vorgibst. Alternativ kann man auch eine feste Höhe und Tiefe des Textes vorgeben. Dann sind die Grundlinien weiterhin ausgerichtet, aber auch die Ränder der Nodes auf gleicher Höhe:
[code]\documentclass[tikz, border=5pt]{standalone}
\usepackage[utf8]{inputenc}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix [
matrix of math nodes,
nodes={
draw,
minimum size=1cm,
text height=\ht\strutbox,% <- ergänzt
text depth=\dp\strutbox% <- ergänzt
},
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
infobit/.style = {fill=lightgray}
] (m) {
|[infobit]| i_0 & |[infobit]| i_1 & |[infobit]| i_2 & |[infobit]| i_3 & c_0 & c_1 & c_2\\
};
\draw [dash dot,dash phase=2.5pt]
([yshift=5mm,xshift=-.5\pgflinewidth]m-1-4.north east)
--
([yshift=-7mm,xshift=-.5\pgflinewidth]m-1-4.south east)
;
\node (infobit) at ([yshift=-2mm]m-1-2.south east) {Informationsbits};
\node (pruefbit) at ([yshift=-2mm]m-1-6.south) {Prüfbits};
\end{tikzpicture}
\end{document}[/code]