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, 11:09

tt33tt's gravatar image

tt33tt
24131322
Akzeptiert: 64%

bearbeitet 23 Mär '14, 11:20

esdd's gravatar image

esdd
14.2k53251


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, 12:56

esdd's gravatar image

esdd
14.2k53251

bearbeitet 17 Apr '14, 19:16

OK, alles klar und vielen Dank!

(23 Mär '14, 14:19) tt33tt
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
×51
×31
×2

Frage gestellt: 23 Mär '14, 11:09

Frage wurde angeschaut: 5,974 Mal

Zuletzt aktualisiert: 17 Apr '14, 19:16