von esdd » Fr 25. Mai 2012, 14:32
Hallo,
in jedem Fall musst du bei \newcommand\Pfeil... angeben, dass du ein Argument übergeben möchtest, dass dann in der Node ausgegeben werden soll.
In der tikzlibrary shapes.symbols ist die Form signal definiert, die sich gut für deinen Wunsch verwenden lässt. Hier sind mal ein paar Vorschläge. Was davon für dich sinnvoll ist, hängt davon ab, wie der umgebrochene Text ausgerichtet sein soll (zentriert oder linksbündig) und was gemacht werden soll, wenn der Text mal noch länger ist.
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols}% fuer shape=signal
\tikzset{baust/.style={inner sep=0pt}}
\newcommand*\Pfeil[1]{%
\begin{tikzpicture}%
\draw[fill=yellow] (1,-1) -- (2,0) -- (1,1) -- (-2,1) -- (-1,0) -- (-2,-1) -- cycle;%
\node[outer sep=0pt,inner sep=0.5mm,text width=1.9cm,align=center]{#1};%
\end{tikzpicture}%
}
\newcommand*\PfeilA[2][center]{%
\tikz\node[draw,fill=yellow,outer sep=0pt,minimum width=4cm,minimum height=2cm,%
shape=signal,signal from=west,%
inner sep=0.5mm,text width=1.9cm,align=#1]{#2};%
}
\newcommand*\PfeilL[2][1.9cm]{%
\tikz\node[draw,fill=yellow,outer sep=0pt,minimum width=4cm,minimum height=2cm,%
shape=signal,signal from=west,%
inner sep=0.5mm,text width=#1]{#2};%
}
\newcommand*\PfeilC[2][1.9cm]{%
\tikz\node[draw,fill=yellow,outer sep=0pt,minimum width=4cm,minimum height=2cm,%
shape=signal,signal from=west,%
inner sep=0.5mm,text width=#1,align=center]{#2};%
}
\begin{document}
\begin{tikzpicture}
\node[baust](one) {\Pfeil{ABC soll hier hin und innerh. umgebr.}};
\node[baust, below of=one, yshift=-2cm](two) {\Pfeil{DEF}};
%moegliche Alternative
\node[baust, left of=one, xshift=6cm](three) {\PfeilA[left]{ABC soll hier hin und innerhalb umgebrochen werden}};
\node[baust, below of=three, yshift=-2cm](four) {\PfeilA{DEF}};
%weitere Alternative
\node[baust, left of=three, xshift=6cm](five) {\PfeilL[2.5cm]{ABC soll hier hin und innerhalb umgebrochen werden}};
\node[baust, below of=five, yshift=-2cm](six) {\PfeilC{DEF}};
\end{tikzpicture}
\end{document}
Gruß
Elke
Hallo,
in jedem Fall musst du bei \newcommand\Pfeil... angeben, dass du ein Argument übergeben möchtest, dass dann in der Node ausgegeben werden soll.
In der tikzlibrary shapes.symbols ist die Form signal definiert, die sich gut für deinen Wunsch verwenden lässt. Hier sind mal ein paar Vorschläge. Was davon für dich sinnvoll ist, hängt davon ab, wie der umgebrochene Text ausgerichtet sein soll (zentriert oder linksbündig) und was gemacht werden soll, wenn der Text mal noch länger ist.
[code]
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols}% fuer shape=signal
\tikzset{baust/.style={inner sep=0pt}}
\newcommand*\Pfeil[1]{%
\begin{tikzpicture}%
\draw[fill=yellow] (1,-1) -- (2,0) -- (1,1) -- (-2,1) -- (-1,0) -- (-2,-1) -- cycle;%
\node[outer sep=0pt,inner sep=0.5mm,text width=1.9cm,align=center]{#1};%
\end{tikzpicture}%
}
\newcommand*\PfeilA[2][center]{%
\tikz\node[draw,fill=yellow,outer sep=0pt,minimum width=4cm,minimum height=2cm,%
shape=signal,signal from=west,%
inner sep=0.5mm,text width=1.9cm,align=#1]{#2};%
}
\newcommand*\PfeilL[2][1.9cm]{%
\tikz\node[draw,fill=yellow,outer sep=0pt,minimum width=4cm,minimum height=2cm,%
shape=signal,signal from=west,%
inner sep=0.5mm,text width=#1]{#2};%
}
\newcommand*\PfeilC[2][1.9cm]{%
\tikz\node[draw,fill=yellow,outer sep=0pt,minimum width=4cm,minimum height=2cm,%
shape=signal,signal from=west,%
inner sep=0.5mm,text width=#1,align=center]{#2};%
}
\begin{document}
\begin{tikzpicture}
\node[baust](one) {\Pfeil{ABC soll hier hin und innerh. umgebr.}};
\node[baust, below of=one, yshift=-2cm](two) {\Pfeil{DEF}};
%moegliche Alternative
\node[baust, left of=one, xshift=6cm](three) {\PfeilA[left]{ABC soll hier hin und innerhalb umgebrochen werden}};
\node[baust, below of=three, yshift=-2cm](four) {\PfeilA{DEF}};
%weitere Alternative
\node[baust, left of=three, xshift=6cm](five) {\PfeilL[2.5cm]{ABC soll hier hin und innerhalb umgebrochen werden}};
\node[baust, below of=five, yshift=-2cm](six) {\PfeilC{DEF}};
\end{tikzpicture}
\end{document}[/code]
Gruß
Elke