Hallo zusammen, ich habe zwei Matrizen erstellt, die unterschiedlich viele Elemente enthalen (3 in der linken Matrix und 5 in der rechten Matrix). Die Größen und die row seperation habe ich jedoch so gewählt, dass die beiden Matrizen theoretisch gleich hoch sein sollten, nämlich 7 cm. 7 cm ergeben sich bei der linken Matrix aus der Höhe der Elemente + der Höhe der Abstände zwischen den Elementen = 1cm + 0,5cm + 1cm +0,5cm + 4cm. Analog bei der rechten Matrix: 1 cm + 0,5 cm + 1 cm + 0,5 cm + 1 cm + 0,5 cm + 1 cm + 0,5 cm + 1 cm = 7 cm. So sollte es sein, ist es jedoch nicht. Die rechte Matrix ist ein kleines Stück größer, weil sie mehr Elemente enthält und zu jedem Element scheinbar ein zusätzlicher kleiner Abstand addiert wird. Dies lässt sich, wenn man genau hinsieht am Grid erkennen, aber bspw. auch an dem nicht perfekt horizontalen Pfeil von "mit. Elem. 5" zu "rechtes Element 5". Auch die linke Matrix ist nicht exakt 7 cm hoch, sondern 7 cm + x. Wie lässt sich diese Ungenauigkeit erklären und vorallem verhindern, sodass beide Matrizen genau 7 cm hoch sind? Hier das MB. Vielen Dank schonmal.
|
Man erkennt am besten, was passiert, wenn man die Liniendicke hoch setzt und den Zeilenabstand auf Null. Die Matrix selbst ist in blau gezeichnet, die Nodes in schwarz. Die Option Die Werte Wir müssen also Dazu kommt aber noch ein Faktor, warum die Nodes nicht perfekt auf dem Grid liegen. Die Matrix selbst beachtet ebenfalls eine Es genügt also die Matrix auf Der Style Die Diese Namen sind dann verwendet um die mittleren Nodes zu positionieren und die Linien zu bezeichnen. Ich verwende dafür den Code
Resultatbeantwortet 19 Aug '13, 04:09 Qrrbrbirlbel |
@Qrrbrbirlbel Danke für die Hilfe. Dein Kommentar hat mir auf jeden Fall sehr geholfen. Ich musste allerdings noch eine kleinere weitere Anpassung vornehmen, damit es auch 100 %ig funktioniert. Das Problem liegt ja nicht nur bei der inner sep der Matrix, sondern auch beim Abstand zwischen den Zeilen der Matrix. Dieser muss demnach auch nochmal um die Hälfte der Linienstärke des oberen und um die Hälfte der Linienstärke des unteren Elements angepasst werden, also um -2 mal 0,5 mal pgflinewidth=-1 pgflinewidth. Unten nun meine Lösung:
beantwortet 13 Aug '13, 11:46 josephine |
Wenn du
row sep=0mm
setzt, kann man etwas besser sehen, was passiert. Die Linien der Nodes überlappen dann nämlich nicht. Dazu muss der Abstand zwischen den Zeilen-\pgflinewidth
sein. (Dieminimum height
bezieht sich nur auf die Pfadlinienmitte, es wird somit.5\pgflinewidth
von der unteren Kante der oberen Node und.5\pgflinewidth
der oberen Kante der unteren Node abgezogen.) Ähnliches passiert auch nach außen hin, weswegen die Nodes in den Matrizen nicht perfekt am Grid orientiert sind, was mitinner sep=-.5\pgflinewidth
(Matrix-Option) verhindern werden kann.