Hallo!

Mir ist aufgefallen, daß der 'arrow head' des single arrow einstellbar ist, geht sowas auch beim arrow tail?

Danke fürs Lesen und das Interesse!

alt text

Open in writeLaTeX
\documentclass[margin=5mm]{standalone}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}

\usepackage{tikz}
 \usetikzlibrary{shapes}

%===========
\begin{document}
%===========
\begin{tikzpicture}[every node/.style={scale=2.25}, font=\footnotesize]
\node [
  fill=blue!50, draw, 
  single arrow,  single arrow head indent=1ex,
  rotate=0, 
  font=\sffamily
] at (0,4) 
{\rotatebox{0}{Pfeil mit Text}};

%----------------------

\draw[] (0,0)--(-1,1)--(2,1)--(2,2)--(4,0) node[xshift=-7ex, align=center]{gewünschte \\ Form};
\draw[yscale=-1] (0,0)--(-1,1)--(2,1)--(2,2)--(4,0);

\end{tikzpicture}
%===========
\end{document}
%===========

gefragt 18 Apr '14, 16:42

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

bearbeitet 18 Apr '14, 16:47

cgnieder's gravatar image

cgnieder
22.1k243463


Bisher ist die von Dir gewünschte Anpassung des Pfeils in der shapes.arrows Bibliothek nicht vorgesehen. Du könntest dir aber aufbauend auf single arrow einen Pfeil mit einem solchen Pfeilende als pic definieren (benötigt mindestens tikz/pgf Version 3.0):

Open in writeLaTeX
\documentclass[margin=5mm,tikz]{standalone}
\usetikzlibrary{shapes.arrows,calc,quotes,babel}
\usepackage[ngerman]{babel}
\tikzset{
  pics/myarrow/.style={
    code = {
      \node[single arrow,pic actions,draw=none,outer sep=0pt](-n){\tikzpictext};
      \path[pic actions,draw=none]
        ($(-n.after tail)!\pgflinewidth!(-n.north west)$)--
        ($(-n.after tail)!-#1!(-n.north west)$)coordinate(-north west)--
        (-n.west)--
        ($(-n.before tail)!-#1!(-n.south west)$)coordinate(-south west)--
        ($(-n.before tail)!\pgflinewidth!(-n.south west)$)--
        cycle;
      \path[pic actions,fill=none]
        ($(-n.before tail)!-#1!(-n.south west)$)--(-n.west)--($(-n.after tail)!-#1!(-n.north west)$)--
        (-n.before head)--(-n.before tip)--(-n.east)--
        (-n.after tip)--(-n.after head)--cycle;
    }
  }
}

\begin{document}
\begin{tikzpicture}[font=\footnotesize]

\pic[
  single arrow head indent=1ex,
  fill=blue!50,draw,
  nodes={rotate=60},
  "Pfeil mit Text",
  ]{myarrow=1ex};

\pic[
  fill=yellow,
  draw=green,
  "Test",
  ] at (1.5,0){myarrow=.5ex};

\end{tikzpicture}
\end{document}

alt text

In dem pic wird zunächst der single arrow ohne Rand aber mit Boxinhalt ausgegeben. Danach wird das Pfeilende angefügt und zum Schluß der Rand um den gesamten Pfeil gezeichnet. Gibt man dem pic einen Namen , dann heißt der single arrow Knoten <name>-n mit den für diese Form üblichen Ankern. Hinzu kommen die beiden Koordinaten <name>-north west und <name>-south west in dem angefügten Pfeilende. Allerdings habe ich der Einfachheit halber outersep=0pt gesetzt, d.h. die Anker liegen jeweils in der Mitte der Randlinie.

Permanenter link

beantwortet 20 Apr '14, 00:17

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 20 Apr '14, 00:35

Gar nicht so ohne. Vielleicht kommen die tails ja mal allgemien in einer neuern Version. Danke ;)

(20 Apr '14, 20:53) cis
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:

×728
×35
×12

gestellte Frage: 18 Apr '14, 16:42

Frage wurde gesehen: 16,759 Mal

zuletzt geändert: 20 Apr '14, 20:53