Ich habe in einer Frage über Ausrichtung an Grundlinien gesehen, dass die Positionierungsoptionen right of= und right=of zu verschiedenen Abständen führen. Hier ein Beispiel, wo Knoten B unterschiedlich weit weg rechts von Knoten A steht:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
  \node (A) {A};
  \node [right=of A] {B};
  \node [right of=A] {B};
\end{tikzpicture}
\end{document}

Ausgabe mit unterschiedlichen Abständen

Warum ist das so? Und ist es ein definierter Unterschied, der sich ggf. kompensieren lässt?

gefragt 05 Jul '13, 21:05

Felix's gravatar image

Felix
1.3k525666
Akzeptiert-Rate: 47%

bearbeitet 21 Aug '13, 21:06

cgnieder's gravatar image

cgnieder
22.1k253463


Die englische Antwort, auf die Marco Daniel in einem Kommentar verweist, erklärt kurz zusammengefasst, dass right of <Knoten>, left of <Knoten> bzw. right of=<Knoten> etc. den Abstand von der Mitte des Ursprungsknoten aus messen, während bei right=of <Knoten>, left=of <Knoten> etc. tatsächlich der Abstand zwischen den beiden beteiligten Knoten gemessen wird. Der voreingestellte Abstand ist, wenn die Voreinstellung nicht geändert wurde, in beiden Fällen 1cm. Je nach Breite/Höhe des Ursprungsknoten ergibt sich aber durch den anderen Ursprung eine mehr oder weniger deutliche Änderung des Ergebnisses.

Für die Verwendung von right=of (Knoten) etc. wird außerdem die TikZ-Bibliothek positioning benötigt, die man durch

Open in Online-Editor
\usetikzlibrary{positioning}

in der Dokumentpräambel laden sollte.

An der bereits von Herbert zitierten Code-Stelle, sind die Schreibweisen right of <Knoten> bzw. right of=<Knote> als deprecated, also als überholt oder abzulehnen deklariert. Demnach sollte man sie nicht mehr verwenden. Sie werden auch in der TikZ-Anleitung für node offenbar an keiner Stelle mehr erklärt.

Permanenter link

beantwortet 09 Jul '13, 08:01

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 29 Feb '16, 14:06

@FrankFeuerstern: Ich finde da nur below right of= aber nicht right of= und erklärt wird es auch nicht.

(29 Feb '16, 14:10) saputello

@FrankFeuerstern: Auf S. 855 geht es um Legenden nicht um Nodes. below right of= ist übrigens ebenfalls deprecated. Der Quellcode ist da eindeutig:

% The following are deprecated:
\tikzoption{above of}{\tikz@of{#1}{90}}%
\tikzoption{below of}{\tikz@of{#1}{-90}}%
\tikzoption{left of}{\tikz@of{#1}{180}}%
\tikzoption{right of}{\tikz@of{#1}{0}}%
\tikzoption{above left of}{\tikz@of{#1}{135}}%
\tikzoption{below left of}{\tikz@of{#1}{-135}}%
\tikzoption{above right of}{\tikz@of{#1}{45}}%
\tikzoption{below right of}{\tikz@of{#1}{-45}}%
Erklärung in der Anleitung fehlt ebenfalls.

(29 Feb '16, 14:45) saputello

@FrankFeuerstern: \tikzstyle ist übrigens auch veraltet, findet sich aber (verm. versehentlich) noch in Beispielen in der Anleitung (Seite 220f, 248, 696, 704, 706, 715). Bei einer derart umfangreichen Anleitung kann es schon vorkommen, dass der Autor bei Neuerungen etwas übersieht. Sieht so aus, als wäre Abschnitt 17 besonders anfällig für Beispiele mit veraltetem Code.

(29 Feb '16, 14:54) saputello

In der Datei $TEXMFDIST/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex findet man:

% The following are deprecated:
\tikzoption{above of}{\tikz@of{#1}{90}}%
\tikzoption{below of}{\tikz@of{#1}{-90}}%
\tikzoption{left of}{\tikz@of{#1}{180}}%
\tikzoption{right of}{\tikz@of{#1}{0}}%
\tikzoption{above left of}{\tikz@of{#1}{135}}%
\tikzoption{below left of}{\tikz@of{#1}{-135}}%
\tikzoption{above right of}{\tikz@of{#1}{45}}%
\tikzoption{below right of}{\tikz@of{#1}{-45}}%    
 [ ... ]

Solange wie beide Varianten unterstützt werden, kann man auch beide benutzen, aber eben nicht mischen, da sie sich etwas anders verhalten.

Permanenter link

beantwortet 05 Jul '13, 23:10

Herbert's gravatar image

Herbert
5.1k34
Akzeptiert-Rate: 31%

bearbeitet 06 Jul '13, 09:09

Bezüglich der Mischung (die ich auch nicht empfehlen würde): Die veralteten Keys lassen sich mit positioning imitieren, in dem man a) die on grid-Option setzt sowie b) nur eine node distance angibt (also nicht node distance=<y-Abstand> and <x-Abstand>, das gilt auch für gleiche x- und y-Abstände).

(26 Jul '13, 09:50) Qrrbrbirlbel
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×55
×41

gestellte Frage: 05 Jul '13, 21:05

Frage wurde gesehen: 25,289 Mal

zuletzt geändert: 29 Feb '16, 15:39