Seite 1 von 1

tikzstyle selbst definieren

Verfasst: Mi 16. Nov 2011, 21:31
von Patti
Hallo,

habe folgendes Problemmit tiks und komme einfach nicht weiter.
ich habe mir einen eignen block definiert. nun möchte ich diesen gerne als tikstyle verwenden, oder besser gesagt als \node verwenden können (wie z.B. rectangle)
\tikzstyle{block} = [draw, fill=blue!30, rectangle, 
    minimum height=3em, minimum width=10em, line width = 0.5pt]
\tikzstyle{line} = [draw, -latex']

\def\mfile#1{\node [block, node distance=2.5cm]{#1};
     \draw[line width=0.5pt] (-4.5em,-1.5em)--(-4.5em,1.5em);
		 \draw[line width=0.5pt] (4.5em,-1.5em)--(4.5em,1.5em);}

\begin{tikzpicture}[auto, node distance=2cm,>=latex']

\node [mfile] (test2) {test2};
\node [mfile, right of=go, node distance=3.75cm] (test1) {test1};
\end{tikzpicture} 
Hoffe es kann mir jemand weiterhelfen.

Besten Dank im voraus.

Verfasst: Fr 18. Nov 2011, 10:10
von esdd
Hallo,

hier ist ein Vorschlag, der vielleicht weiter hilft:
\documentclass[parskip=half-]{scrartcl}

\usepackage{tikz}
\usetikzlibrary{positioning}

\tikzset{%
  block/.style={draw,fill=blue!30,minimum height=3em,%
    minimum width=10em,line width=0.5pt,inner xsep=0.7em},
  aussen/.style={inner sep=0pt}}

\newcommand\mfile[1]{%
  \begin{tikzpicture}%
    \node[block,anchor=center]{#1}; 
    \draw[line width=0.5pt] (-4.5em,-1.5em)--(-4.5em,1.5em); 
    \draw[line width=0.5pt] (4.5em,-1.5em)--(4.5em,1.5em);
  \end{tikzpicture}}

\newcommand\mf[1]{%
  \begin{tikzpicture}%
    \node[block,anchor=center](n){#1}; 
    \draw[line width=0.5pt] ([xshift=0.5em]n.south west)--([xshift=0.5em]n.north west); 
    \draw[line width=0.5pt] ([xshift=-0.5em]n.south east)--([xshift=-0.5em]n.north east);
  \end{tikzpicture}}

\begin{document}

\begin{tikzpicture}%
  \node[aussen](test2) {\mfile{test2}}; 
  \node[aussen,right= 3.75cm of test2] (test1) {\mfile{test1}};
  \draw(test2)--(test1);
\end{tikzpicture}

\begin{tikzpicture}%
  \node[aussen](test2) {\mfile{test2}}; 
  \node[aussen,right= 3.75cm of test2] (test1) {\mfile{Ein deutlich laengerer Text}};
  \draw(test2)--(test1);
\end{tikzpicture}

\begin{tikzpicture}%
  \node[aussen](test2) {\mf{test2}}; 
  \node[aussen,right= 3.75cm of test2] (test1) {\mf{Ein deutlich laengerer Text}};
  \draw(test2)--(test1);
\end{tikzpicture} 

\end{document}
Gruß
Elke