Hallo alle zusammen,

ich habe unten angehängten Code. Ich habe die Matrix OU und S. Beide möchte ich verbinden. Standardmäßig ist das ja jeweils OU.west und S.east. Allerdings würde ich beide gerne wesentlich tiefer verbinden, so dass noch genug Platz für eine weitere, beschriftete Transition besteht. Ich habe es bereits mit (S.337) und (OU.200) versucht, allerdings ist die Linie etwas schief und ich schaffe es nicht, eine gerade Linie zu zeichnen. Gibt es z.B. eine Linie im rechten Winkel zu einem der Matrizen zu zeichnen, so dass ich nur auf einer der beiden Seiten einen Wert angeben muss? Vielen Dank schonmal :-)

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\documentclass[margin=5mm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning}
\tikzset{
tab/.style={inner sep=0pt,
nodes={inner sep=.333em,
% notwendig für leere Zellen und Unterlängen:
minimum height={\baselineskip+0.666em}
}
},
vtab/.style={matrix of nodes,tab,
row sep=-\pgflinewidth,column sep=-\pgflinewidth,
nodes in empty cells,% leere Zellen werden ebenfalls gezeichnet
row 1/.style={nodes={align=center}},
nodes={draw,align=left,text width=#1}
},
vtab/.default=3cm,% voreingestellte Breite
htab/.style={matrix of nodes,draw,tab,anchor=north west},
every edge/.append style={font=\footnotesize\strut,inner ysep=.1em},
pfeil/.style={out=270,in=90,->}
}
\begin{document}
\resizebox{\textwidth}{!}{%
\begin{itshape}
\begin{tikzpicture}[thick,
% vertikaler und horizontaler Abstand zwischen den Tabellen:
node distance=1cm and 3.5cm, % row 1/.style={},
]
%Tabelle
\matrix(S)[vtab]{Stelle\\{Nummer<<pk>>}\\\\};
\matrix(OU)[right= of S,vtab=3.5cm]{Organisationseinheit\\{Nummer<<pk>>\newline Name\newline Art}\\\\};
\path(S)edge
node[pos=0,above right]{zugeordnet}node[pos=0,below right]{N}
node[pos=1,above left]{beinhaltet}node[pos=1,below left]{1}
(OU);
\end{tikzpicture}
\end{itshape}
}
\end{document}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 27 Mär '14, 21:54

tt33tt's gravatar image

tt33tt
256141925
Akzeptiert-Rate: 100%

bearbeitet 25 Apr '14, 20:49

esdd's gravatar image

esdd
17.8k304257


Das kann wie hier gemacht werden: Wie forciere ich waagerechte oder senkrechte Linien in TikZ? Die Linie geht dann von S.337 zum Schnitt von horizontaler Linie von S.337 und vertikaler Linie an OU.west Syntax für den Schnitt ist (S.337-|OU.west).

So angewendet auf diesen Fall:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\path (S.337) edge
node[pos=0,above right]{zugeordnet}node[pos=0,below right]{N}
node[pos=1,above left]{beinhaltet}node[pos=1,below left]{1}
(S.337-|OU.west);
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Waagerechte Verbindung

Permanenter link

beantwortet 27 Mär '14, 22:20

stefan's gravatar image

stefan ♦♦
18.4k163148
Akzeptiert-Rate: 50%

Genial und danke!

(27 Mär '14, 22:36) tt33tt

Wie man eine horizontale Linie erhält, hat @Stefan ja schon erklärt. Deshalb sind hier nur zur Ergänzung noch zwei Alternativen für die Verschiebung selbst:

Zum einen kann man mittels yshift die Linie auch direkt um einen bestimmten Betrag verschieben. Die Verschiebung wird dabei in eckigen Klammern unmittelbar vor dem Nodennamen angegeben, also zum Beispiel ([yshift=-.5cm]S.east):

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\path ([yshift=-.5cm]S.east) edge
node[pos=0,above right]{zugeordnet}node[pos=0,below right]{N}
node[pos=1,above left]{beinhaltet}node[pos=1,below left]{1}
([yshift=-.5cm]S-|OU.west);
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Zum anderen kann man auch eine der Tabellenzellen zur Ausrichtung verwenden, da diese ebenfalls Noden mit den üblichen Ankern sind. Zum Beispiel hat die 1.Spalte in der 3.Zeile der Matrix (S) automatisch den Namen (S-3-1):

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\path (S-3-1) edge
node[pos=0,above right]{zugeordnet}node[pos=0,below right]{N}
node[pos=1,above left]{beinhaltet}node[pos=1,below left]{1}
(S-3-1-|OU.west);
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 27 Mär '14, 22:48

esdd's gravatar image

esdd
17.8k304257
Akzeptiert-Rate: 62%

bearbeitet 27 Mär '14, 22:50

Genial, das mit den Tabellenzellen wusste ich noch nicht.
Ah, das mit yshift habe ich nun auch verstanden und ist auch richtig praktisch! Werde ich wohl beim Nächsten Mal auch nutzen :-)

(27 Mär '14, 23:18) tt33tt
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
×58
×2

gestellte Frage: 27 Mär '14, 21:54

Frage wurde gesehen: 14,767 Mal

zuletzt geändert: 25 Apr '14, 20:49