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, 15:05

Felix's gravatar image

Felix
1.3k225366
Akzeptiert: 89%

bearbeitet 21 Aug '13, 15:06

Clemens's gravatar image

Clemens
19.0k112960


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, 02:01

saputello's gravatar image

saputello
18.4k22352

bearbeitet 29 Feb, 08:06

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

(29 Feb, 08: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, 08: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, 08: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, 17:10

Herbert's gravatar image

Herbert
5.0k34

bearbeitet 06 Jul '13, 03: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, 03:50) Qrrbrbirlbel
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×43
×31

Frage gestellt: 05 Jul '13, 15:05

Frage wurde angeschaut: 6,344 Mal

Zuletzt aktualisiert: 29 Feb, 09:39