Wenn ich nodes bzw. Knoten nebeneinander platziere und sich deren Inhalt aufgrund beispielsweise von Unterlänge oder Exponenten unterscheiden, passen die Grundlinien nicht mehr zusammen. In diesem kleinen Beispiel bemerkt man bei genauem Hinsehen, dass die Grundlinie rechts höher ist, man braucht nur dem Pfeil zu folgen:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[node distance=5em]
  \node (A) {$A^2$};
  \node [right of=A] (AxA) {$A\otimes A$};
  \draw [->] (A) edge node [above] {$\scriptstyle\varphi$} (AxA);
\end{tikzpicture}
\end{document}

Diagramm

Wie kann ich das korrigieren?

gefragt 05 Jul '13, 12:30

Felix's gravatar image

Felix
1.3k225366
Akzeptiert: 89%

bearbeitet 21 Aug '13, 15:09

Clemens's gravatar image

Clemens
19.0k113060


Man kann die positioning library laden und davon die Option base right=of verwenden. Damit werden die baselines nebeneinander platziert. In diesem Fall:

\node [base right = of A] (AxA) {$A\otimes A$};
Permanenter link

beantwortet 05 Jul '13, 14:20

stefan's gravatar image

stefan ♦♦
5.8k12234

Vielleicht gibt es einen Trick, den ich nicht kenne, aber im gegebenen VM scheint das mit node distance=5em zu interferieren: der Pfeil ist dann viel länger?

(05 Jul '13, 14:25) Clemens

Ich sehe das auch, am base selbst liegt es nicht. Hab das gleich mal als Problem formuliert: Was ist der Unterschied zwischen right of= und right=of in TikZ?

(05 Jul '13, 15:08) Felix

@Felix Die Antworten auf deiner neuen Fragen sind nicht wirklich befriedigend. Das Problem (siehe auch mein Kommentar zu Herberts Antwort): Die positioning Library sorgt dafür, dass die node distance zwischen den Borders (die nicht gezeichneten Linien um die Node herum) angesetzt wird, und nicht wie bei dir zwischen den center-Anchors. Es gibt zwar die on grid-Option, die das wieder ändert, sie fällt aber auch bei den base- so wie bei den mid-Anchors auf center zurück.

(26 Jul '13, 12:17) Qrrbrbirlbel

@Felix Stellt das wirklich ein Problem da (und du möchtest nicht mit text depth und text height arbeiten oder font=\strut nutzen), kann man auch neue base-Keys erstellen (oder die anderen überschreiben), die ausschließlich den base-Anchor verwenden (der auf der Basislinie unter dem Zentrum liegt). Quasi ein Mittelding aus on grid und nicht on grid (immer mit der Gefahr dass sich große Nodes überschneiden).

(26 Jul '13, 12:18) Qrrbrbirlbel

Du könntest explizit die height und depth des Textes in den Knoten angeben:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[node distance=5em,text height=1.5ex,text depth=.25ex]
  \node (A) {$A^2$};
  \node [right of=A] (AxA) {$A\otimes A$};
  \draw [->] (A) edge node [above] {$\scriptstyle\varphi$} (AxA);
  \draw[black!20] (A.base)  ++(-1,0) -- ++(4,0) ;
\end{tikzpicture}
\end{document}

Ergebnis

Permanenter link

beantwortet 05 Jul '13, 12:58

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 31 Jul '13, 11:23

stefan's gravatar image

stefan ♦♦
5.8k12234

Du kannst das asymmetrical rectangle aus dem Paket tikz-cd nutzen. Bei diesem ist der center-Anchor so umdefiniert, dass er einen festen Abstand zum base-Anchor hat. Der dafür voreingestellte Wert (0.8ex) kann über commutative diagrams/center yshift angepasst werden.

\documentclass{standalone}
\usepackage{tikz-cd}% lädt tikz
\begin{document}
  \begin{tikzpicture}[node distance=5em,
    every node/.style={asymmetrical rectangle},% in tikz-cd definiert
%   commutative diagrams/center yshift=0.7ex % Abstand zwischen base- und center-Anchor 
    ]
    \node (A) at (4,1) {$A^2$};
    \node [right of=A] (AxA) {$A\otimes A$};
    \draw [->] (A) edge node [above] {$\scriptstyle\varphi$} (AxA);
\end{tikzpicture}
\end{document}

Eine weitere Möglichkeit ist die Knoten mit tikz und tikzlibrary matrix als matrix of math nodes zu setzen. Dabei werden die einzelnen Zellen automatisch an ihrer Grundlinie ausgerichtet.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
  \matrix[matrix of math nodes,inner sep=0pt,cells={inner sep=0.3333em},column sep={5em,between origins}]{%
    |(A)| A^2 & |(AxA)| A\otimes A\\};
  \path [->] (A.mid east) edge node [above] {$\scriptstyle\varphi$} (AxA.mid west);
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 28 Jul '13, 15:57

esdd's gravatar image

esdd
14.2k53251

bearbeitet 30 Jul '13, 11:39

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
×57
×51
×2

Frage gestellt: 05 Jul '13, 12:30

Frage wurde angeschaut: 4,464 Mal

Zuletzt aktualisiert: 21 Aug '13, 15:09