Hallo alle zusammen,

ich habe bei eine anderen Frage Unterstützung durch unten angehängten Code erhalten. Dazu habe ich noch die Frage, was in

Open in writeLaTeX
  \matrix(a)[htab]at(A.west|-K.south){Artikelnummer&Artikelname\\};
  \matrix(p)[below=of a.south west,htab]{Artikelnummer&Bestellnummer& Anzahl\\};

jeweils die Himmelsrichtungen bedeuten. Gibt es eigentlich eine Anleitung, wo ich diese Begriffe nachschlagen kann?

Vielen Dank schonmal!

LG

Open in writeLaTeX
\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
    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}
\begin{tikzpicture}[thick,
  % vertikaler und horizontaler Abstand zwischen den Tabellen:
  node distance=1cm and 2.5cm, 
]
% Tabellen
  \matrix(A)[vtab]{Artikel\\{Artikelnummer\newline Artikelname}\\\\};
  % für matrix P reichen 2cm als Breite
  \matrix(P)[right= of A,vtab=2cm]{Position\\Anzahl\\\\};
  \matrix(B)[right= of P,vtab]{Bestellung\\{Bestellnummer\newline Bestelldatum}\\\\};
  \matrix(K)[below= of B,vtab]{Kunde\\{Kundennummer\newline Name}\\\\};
% Verbindungen einzeichnen und beschriften
    \path(A)edge
      node[pos=0,above right]{besitzt}node[pos=0,below right]{1}
      node[pos=1,above left]{gehört zu}node[pos=1,below left]{N}
      (P);
    \path(P)edge
      node[pos=0,above right]{gehört zu}node[pos=0,below right]{N}
      node[pos=1,above left]{besitzt}node[pos=1,below left]{1}
      (B);
    \path(B)edge
      node[pos=0,below left]{gehört zu}node[pos=0,below right]{N}
      node[pos=1,above left]{gibt auf}node[pos=1,above right]{1}
      (K);
%
% horizontale Tabellen
  \matrix(a)[htab]at(A.west|-K.south){Artikelnummer&Artikelname\\};
  \matrix(p)[below=of a.south west,htab]{Artikelnummer&Bestellnummer& Anzahl\\};
  \matrix(b)[below=of p.south west,htab]{ Bestellnummer&Kundennummer&Bestelldatum\\};
  \matrix(k)[below=of b.south west,htab]{Kundennummer& Name\\};
% Beschriftung der Tabellen
  \foreach \t/\bez in {a/Artikel,p/Position,b/Bestellung,k/Kunde}
    \node[above right=0pt of \t.north west,text=black!70]{\bez};
% Verbindungen einzeichnen
  % Pfeile enden um xshift in x-Richtung verschoben am Nordanker des Zielknotens.
  % Verschiebung ist notwendig, damit die Pfeile nicht über der Beschriftung liegen.
  \path[pfeil,<-](a-1-1)edge([xshift=.6cm]p-1-1.north);
  \path[pfeil](p-1-2)edge([xshift=.6cm]b-1-1.north);
  \path[pfeil](b-1-2)edge([xshift=.6cm]k-1-1.north);
\end{tikzpicture}
\end{document}
Dieser Frage ist "Community Wiki" markiert.

gefragt 23 Mär '14, 16:09

tt33tt's gravatar image

tt33tt
256131925
Akzeptiert-Rate: 100%

bearbeitet 23 Mär '14, 16:20

esdd's gravatar image

esdd
17.8k284257


Informationen zu den Befehlen und Optionen von TikZ findet man in der Dokumentation zu pgf/TikZ (pgfmanual). Diese ist allerdings sehr umfangreich.

Ein Knoten (node) ist eine relativ einfache Form. Bis auf coordinate erwarten die Knoten eine Textangabe für den Inhalt des Knotens. Das Argument für den Text darf aber auch leer sein.

Wenn keine zusätzlichen shapes Bibliotheken geladen sind, dann stehen nur Kreis- (circle) und Rechteckknoten (rectangle) sowie Koordinaten (coordinate) zur Verfügung. Ohne Angabe einer bestimmten Form, fügt node einen Rechteckknoten ein.

Wenn man mal von coordinate absieht, hängt die Größe der Noden u.a. vom enthaltenen Text ab. Damit der Knoten an unterschiedlichen Stellen „angefasst“ werden kann, um ihn zum Beispiel irgendwo zu positionieren oder andere Dinge an ihm auszurichten, werden von schon bei der Definition der Form bestimmte Punkte innerhalb eines Knotens und auf dem Rand des Knotens als Anker (anchor) bereitgestellt. Hängt man die Namen dieser Anker mit einem vorangestellten Punkt an den Knotennamen an, dann können sie wie Koordinaten verwendet werden.

Der folgende Code, den ich direkt aus dem pgfmanual übernommen habe, zeigt an einem Beispielknoten (s) die anchor, die für die rectangle Form definiert sind. Die Anker (s.10) und (s.130) sind dabei Beispiele für borderanchor, bei denen die Zahlen Winkelangaben entsprechen.

alt text

Open in writeLaTeX
\documentclass[tikz]{standalone}

\tikzset{
  shape example/.style= {  color = black!30,draw,fill = yellow!30,
    line width = .5cm,inner xsep = 2.5cm,inner ysep = 0.5cm
  }
}

\begin{document}
\Huge
\begin{tikzpicture}
  \node[name=s,shape=rectangle,shape example] {Rectangle\vrule width 1pt height 2cm};
  \foreach \anchor/\placement in
    {north west/above left, north/above, north east/above right,
    west/left, center/above, east/right,
    mid west/right, mid/above, mid east/left,
    base west/left, base/below, base east/right,
    south west/below left, south/below, south east/below right,
    text/left, 10/right, 130/above}
    \draw[shift=(s.\anchor)] plot[mark=x] coordinates{(0,0)}
      node[\placement] {\scriptsize\texttt{(s.\anchor)}};
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 23 Mär '14, 17:56

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 18 Apr '14, 01:16

OK, alles klar und vielen Dank!

(23 Mär '14, 19:19) tt33tt
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
×76
×41
×3

gestellte Frage: 23 Mär '14, 16:09

Frage wurde gesehen: 23,057 Mal

zuletzt geändert: 18 Apr '14, 01:16