Ich habe TikZ-Knoten mit mehrzeiligem Inhalt, und möchte auf einzelne Zeilen Bezug nehmen. Zum Beispiel hier möchte ich einen Linie von "Quitina" zu "Fructosa-6P" zeichnen:

Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node[draw, font=\sffamily, inner sep=0pt] (A) {%
\begin{tabular}{@{}c@{}}
Glucosamina \\
\hline
Quitina
\end{tabular}};
\node[right=of A, draw, font=\sffamily] (B) {Fructosa-6P};
\draw (A) -- (B);
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

mehrzeilige TikZ-Knoten

Ich habe auch Nodes mit mehr Zeilen. Muss ich für jede Zeile einen node machen, oder kann ein node aus mehreren Teilen zusammengesetzt sein, die jeweils eigene Anker haben?

gefragt 05 Aug '13, 17:53

Felix's gravatar image

Felix
1.3k525667
Akzeptiert-Rate: 47%

bearbeitet 25 Aug '13, 13:55

cgnieder's gravatar image

cgnieder
22.1k253463


Ja, es gibt sogenannte „multipart nodes“.

Ein sehr allgemeines Shape ist das rectangle split-Shape der shapes.multipart library.

In deinem Beispiel benötigt man noch zusätzlich rectangle split part=2, da die Standardeinstellung 4 ist.

Ich habe außerdem noch \vphantom{Q} hinzugefügt, so dass beide Teile die gleiche Tiefe haben, was auch dazu führt, dass die Linie zwischen beiden Nodes direkt die Mitte trifft. Es gibt da allerdings noch andere Wege, so ist zum Beispiel auch extra ein Anchor, wo die horizontale Linie die Außenlinie des Nodes trifft: text split east.

Jede part hat zumindest einen Baseline-Anchor: .text, .two, .three, etc.

Code

Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes.multipart}
\begin{document}
\begin{tikzpicture}
\node[draw, shape=rectangle split, rectangle split parts=2, font=\vphantom{Q}\sffamily] (A) {Glucosamina \nodepart{two} Quitina};
\node[right=of A, draw, font=\sffamily] (B) {Fructosa-6P};
\draw (A) -- (B);
\end{tikzpicture}
\end{document}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Resultat

alt text

Permanenter link

beantwortet 05 Aug '13, 18:23

Qrrbrbirlbel's gravatar image

Qrrbrbirlbel
2.9k3815
Akzeptiert-Rate: 53%

Sehr gut! Den Sinn meiner Frage klarer zu machen, würde vllt. sein: \node[right=of A.two east, draw, font=\sffamily] (B) {Fructosa-6P};\draw (A.two east) -- (B);. Sowas hatte ich im Sinn. Falls es für die Allgemeinheit den Nutzen von multipart nodes besser zeigt.

(05 Aug '13, 18:31) Felix

@Felix Dachte ich mir fast, dass du mehr machen willst. (Edit: Du hast es ja sogar in deiner Frage beschrieben, sorry.) Vielleicht wäre es dann aber hilfreich Anchors wie A.two base east benutzen tu können, damit Quitina und Fructosa auf der gleiche Höhe sind? (Oder man sorgt mit einem \vphantom{Q} in dem B-Node, dass die Textboxen gleich groß sind. … Viele Wege führen zum Ziel.)

(05 Aug '13, 18:44) Qrrbrbirlbel
Deine Antwort
[Vorschau ausblenden]

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

Frage-Themen:

×731
×76

gestellte Frage: 05 Aug '13, 17:53

Frage wurde gesehen: 54,612 Mal

zuletzt geändert: 25 Aug '13, 13:55

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×