Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Tikz: Pfeile mit Text in "elegant"?

  1. #1
    Registrierter Benutzer Avatar von The EYE
    Registriert seit
    15.12.2008
    Ort
    Hameln
    Beiträge
    332

    Tikz: Pfeile mit Text in "elegant"?

    Hallo liebes Forum!

    Ich bearbeite (nach längerer Zeit) mal wieder ein Projekt, für welches ich einige Grafiken mit Tikz erstellen möchte. Meine erste ist recht einfach. Meine Lösung ist allerdings sehr rudimentär. Ich würde mir gerne ein paar Kniffe aneignen, um das eleganter zu machen. Die Dokumentation ist mir natürlich bekannt (bzw. deren Existenz - bisher habe ich hier nur mehr oder weniger konkretes nachgeschlagen, sie aber nie durchgearbeitet). Wenn jemand mir anhand meines Beispiels eine elegantere Herangehensweise vorstellen würde, würde mich das sehr freuen!

    Code:
    \documentclass{standalone}
    \usepackage[utf8]{inputenc}
    
    \usepackage{tikz}
    
    \begin{document}
    \begin{tikzpicture}[node distance=0.8cm,scale=0.79, every node/.style={scale=0.79}]
       %1
       \draw (0,2) -- (3,2);
       \draw (3,2) -- (3.5,0);
       \draw (0,-2) -- (3,-2);
       \draw (3,-2) -- (3.5,0);
       \draw (0,2) -- (0.5,0);
       \draw (0,-2) -- (0.5,0);
       %Text 1
       \node[text width=3cm] at (2.3,0) {Text für den\\ ersten Pfeil};
       
       %2
       \draw (3.5,2) -- (6.5,2);
       \draw (6.5,2) -- (7,0);
       \draw (3.5,-2) -- (6.5,-2);
       \draw (6.5,-2) -- (7,0);
       \draw (3.5,2) -- (4,0);
       \draw (3.5,-2) -- (4,0);
       %Text 2
       \node[text width=3cm] at (5.8,0) {Text für den zweiten Pfeil};
       
       %3
       \draw (7,2) -- (10,2);
       \draw (10,2) -- (10.5,0);
       \draw (7,-2) -- (10,-2);
       \draw (10,-2) -- (10.5,0);
       \draw (7,2) -- (7.5,0);
       \draw (7,-2) -- (7.5,0);
       %Text 3
       \node[text width=3cm] at (9.3,0) {Text für den\\ dritten Pfeil};
       
       %4
       \draw (10.5,2) -- (13.5,2);
       \draw (13.5,2) -- (14,0);
       \draw (10.5,-2) -- (13.5,-2);
       \draw (13.5,-2) -- (14,0);
       \draw (10.5,2) -- (11,0);
       \draw (10.5,-2) -- (11,0);
       %Text 4
       \node[text width=3cm] at (12.8,0) {Text für den vierten Pfeil};
    \end{tikzpicture}
    \end{document}
    Gruß Max
    Angehängte Dateien Angehängte Dateien
    ¹: Erstelle bitte ein richtiges Minimalbeispiel
    ²: Ich nutze Ubuntu 14.04, TeX Live 2014 & Kile 2.1.3

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Eine Möglichkeit wäre das Laden der Bibliotheken shapes.symbols und positioning. Dann kann man die schon definierte Knotenform signal nutzen und die Knoten relativ zueinander positonieren:

    Code:
    \documentclass[margin=5pt]{standalone}
    \usepackage[utf8]{inputenc}
    
    \usepackage{tikz}
    \usetikzlibrary{
      shapes.symbols,
      positioning
    }
    
    \begin{document}
    \begin{tikzpicture}[
      pfeil/.style={draw,
      signal,signal pointer angle=150,signal from=west,
      text width=2cm,minimum height=4cm,inner xsep=1em},
      scale=.79,transform shape,
      node distance=.5cm]
    \node[pfeil](pfeil1){Text für den ersten Pfeil};
    \node[pfeil,right=of pfeil1](pfeil2){Text für den zweiten Pfeil};
    \node[pfeil,right=of pfeil2](pfeil3){Text für den dritten Pfeil};
    \node[pfeil,right=of pfeil3](pfeil4){Text für den vierten Pfeil};
    \end{tikzpicture}
    \end{document}
    Gruß
    Elke



    mr_pfeile.png
    Geändert von esdd (29-06-2015 um 01:20 Uhr)

  3. #3
    Registrierter Benutzer Avatar von The EYE
    Registriert seit
    15.12.2008
    Ort
    Hameln
    Beiträge
    332
    Hallo Elke,

    deine tikz-Fähigkeiten erfreuen mich immer wieder . Danke, das ist genau die Hilfe, die ich mir erhofft hatte! Das hilft mir sehr gut weiter.

    Gruß Max
    ¹: Erstelle bitte ein richtiges Minimalbeispiel
    ²: Ich nutze Ubuntu 14.04, TeX Live 2014 & Kile 2.1.3

  4. #4
    Registrierter Benutzer Avatar von Donalduck
    Registriert seit
    08.05.2007
    Ort
    Augsburg
    Beiträge
    754
    Ansonsten interessiert dich vielleicht auch das Paket smartdiagram, wo es u.a. ein ähnliches "Sequence diagram" gibt.

  5. #5
    Registrierter Benutzer Avatar von The EYE
    Registriert seit
    15.12.2008
    Ort
    Hameln
    Beiträge
    332
    Auch ein guter Hinweis, danke!

    Was ich noch nicht gefunden habe ist eine Möglichkeit Prozesse mit swimlanes zu modellieren. Meinen aktuellen Entwurf habe ich mit M$ Visio erstellt. (Besonders) Für die abschließende Dokumentation wäre eine Lösung in LaTeX natürlich schön, dann wäre alles einheitlich. Außerdem sind dann auch Verlinkungen zu Abkürzungen etc. möglich.

    Bisher würde ich das mit übereinandergelegten Rechtecken machen und diese manuell mit Pfeilen verbinden. Ich habe mal ein Beispiel zur Vorstellung angehängt (Quelle: http://vicon.biz/tl_files/dynamic_dr...g/Swimlane.jpg)

    Gruß Max
    Angehängte Grafiken Angehängte Grafiken
    ¹: Erstelle bitte ein richtiges Minimalbeispiel
    ²: Ich nutze Ubuntu 14.04, TeX Live 2014 & Kile 2.1.3

  6. #6
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    So als Idee: Du könntest eine Matrix verwenden, um die Boxen zu positionieren. Wenn Du außerdem noch die backgrounds Bibliothek lädst, kannst Du hinterher die blauen Streifen unter den Zeilen einfügen lassen.

  7. #7
    Registrierter Benutzer Avatar von The EYE
    Registriert seit
    15.12.2008
    Ort
    Hameln
    Beiträge
    332
    Interessanter Gedanke. Danke für den Input, werde ich im Kopf behalten und mir das mal ansehen!

    Gruß Max
    ¹: Erstelle bitte ein richtiges Minimalbeispiel
    ²: Ich nutze Ubuntu 14.04, TeX Live 2014 & Kile 2.1.3

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •