Nachdem ich hier Hilfe bekommen habe wie ich meine Grafik erstelle, hader ich grade mit dem Hintergrund der labels. Ich würde gerne den Hintergrund einzelner labels weiß machen, damit die Verbindungslinien nicht durch die Schrift gehen. Wenn ich aber in den every label-Optionen die Füllung für alle ändere, dann sind unnötige Lücken in den Linien.

Leider komm ich allein nicht weiter und auch mit der Doku nicht richtig zurecht.

Open in writeLaTeX
\documentclass{standalone}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}         % Codierung und Umlaute
\usepackage{setspace}
\usepackage{tikz}               % Tikz Picture Paket
\usetikzlibrary{matrix}
\tikzset{zeilenabstand/.style={%
execute at begin node=\begin{spacing}{#1}\hspace{0pt},%
execute at end node=\vspace{-\ht\strutbox}\end{spacing}}} % Eigener Stil Zeilenabstand
\begin{document}
\begin{tikzpicture}
  % Matrix der Kreise zeichnen:
\matrix (m) [matrix of nodes, nodes={circle,draw}, column sep=3.2em, row sep=2.2cm]{
& & & & & & & \\
{} &  & {} &  & {} &  & {} \\ 
 &  & {} &  & {} &  &  \\ 
{} &  & {} &  & {} &  & {} \\ 
{} & {} & {} & {} & {} & {} & {}\\
  };

% Verbindungslinien:
\draw (m-2-1) -- (m-3-3) -- (m-4-1) -- (m-5-3);

 % Beschriftungen:
\begin{scope}[every label/.style={text width=1.7cm,align=center,
execute at begin node=\hspace{0pt},zeilenabstand=0.8},label distance=3.5pt]

  \foreach \pos/\Text in {  2-1/Marktdurchdringung,
                            2-3/Marktentwicklung,
                            2-5/Produktentwicklung,
                            2-7/Diversifikation,
                            3-3/Präferenz $\;$ \\,
                            3-5/Preis-Mengen,
                            4-1/(total),
                            4-3/(partial),
                            4-5/(total),
                            4-7/(partial),
                            5-1/Lokal,
                            5-2/Regional,
                            5-3/Über-regional,
                            5-4/National,
                            5-5/Multinational,
                            5-6/International,
                            5-7/Weltmarkt}
  \path (m-\pos) [late options={label={[name=m-\pos-label]\Text}},];
\end{scope}
\path (m-4-1-label.north) -- node [above,fill=white] {Massenmarkt} (m-4-3-label.north);
\path (m-4-5-label.north) -- node [above] {Segmentierung} (m-4-7-label.north);   
\end{tikzpicture}
\end{document}

gefragt 10 Feb '14, 07:42

BineMaja's gravatar image

BineMaja
99247
Akzeptiert: 100%

bearbeitet 10 Feb '14, 15:50

esdd's gravatar image

esdd
14.2k53251


Wenn die Label eine unterschiedliche Farbe haben sollen, dann kann man in der \foreach Schleife einfach eine zusätzliche Variable dafür verwenden:

Open in writeLaTeX
\documentclass[margin=5mm,tikz]{standalone}
\usepackage{selinput} 
\SelectInputMappings{adieresis={ä},germandbls={ß},Euro={}} 
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
  % Matrix der Kreise zeichnen:
  \matrix (m) [matrix of nodes, nodes={circle,draw}, column sep=3.2em, row sep=2.2cm]{
    {} &  & {}\\ 
     &  & {}\\ 
    {} &  & {}\\ 
  };
% Beschriftungen:
  \begin{scope}[every label/.style={text width=1.7cm,align=center},label distance=3.5pt]
    \foreach \pos/\Text/\farbe in {
                              1-1/M/yellow,
                              1-3/M/green,
                              2-3/P/red!50,
                              3-1/(total)/orange,
                              3-3/(partial)/black!20
                              }
    \path (m-\pos) [late options={label={[name=m-\pos-label,fill=\farbe]\Text}},];
  \end{scope}
\end{tikzpicture}
\end{document}

alt text

Da in deinem Beispiel aber nur entweder keine Füllung oder eine Füllung mit weiß zur Auswahl stehen, ist es vermutlich bequemer zwei Schleifen zu verwenden und die Label bei der entsprechenden einzufügen:

Open in writeLaTeX
\documentclass[ngerman,margin=5mm]{standalone}
\usepackage{selinput} 
\SelectInputMappings{adieresis={ä},germandbls={ß},Euro={}} 
\usepackage{babel}
\usepackage{setspace}

\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{zeilenabstand/.style={%
    execute at begin node=\begin{spacing}{#1}\hspace{0pt},
    execute at end node=\vspace{-\ht\strutbox}\end{spacing}}}

\begin{document}
\begin{tikzpicture}
  % Matrix der Kreise zeichnen:
\matrix (m) [matrix of nodes, nodes={circle,draw}, column sep=3.2em, row sep=2.2cm]{
& & & & & & & \\
{} &  & {} &  & {} &  & {} \\ 
 &  & {} &  & {} &  &  \\ 
{} &  & {} &  & {} &  & {} \\ 
{} & {} & {} & {} & {} & {} & {}\\
  };

% Verbindungslinien:
\draw (m-2-1) -- (m-3-3) -- (m-4-1) -- (m-5-3);

 % Beschriftungen:
\begin{scope}[every label/.style={text width=1.7cm,align=center,%draw,
  zeilenabstand=0.8},label distance=3.5pt]
% transparenter Hintergrund
  \foreach \pos/\Text in {  2-1/Marktdurchdringung,
                            2-3/Marktentwicklung,
                            2-5/Produktentwicklung,
                            2-7/Diversifikation,
                            %3-3/Präferenz $\;$ \\,
                            3-5/Preis-Mengen,
                            4-1/(total),
                            4-3/(partial),
                            4-5/(total),
                            4-7/(partial),
                            5-1/Lokal,
                            %5-2/Regional,
                            %5-3/Über-regional,
                            5-4/National,
                            5-5/Multinational,
                            5-6/International,
                            5-7/Weltmarkt}
  \path (m-\pos) [late options={label={[name=m-\pos-label]\Text}},];
% weißer Hintergrund
  \foreach \pos/\Text in {
                            3-3/Präferenz,
                            5-2/Regional,
                            5-3/Über-regional
                            }
  \path (m-\pos) 
    [late options={label={[name=m-\pos-label,fill=white,inner xsep=0pt,]\Text}},];
%
\end{scope}
\path (m-4-1-label.north) -- node [above,fill=white] {Massenmarkt} (m-4-3-label.north);
\path (m-4-5-label.north) -- node [above] {Segmentierung} (m-4-7-label.north);   
\end{tikzpicture}
\end{document}

Die Label in der untersten Zeile sind eigentlich zu breit. Das wird sichtbar, wenn man die Option draw für die Label aktiviert. Ich habe deshalb bei denen mit weißem Hintergrund inner xsep=0pt gesetzt.

alt text

Permanenter link

beantwortet 10 Feb '14, 09:33

esdd's gravatar image

esdd
14.2k53251

bearbeitet 10 Feb '14, 09:39

Du bist der Held meiner Bachelorarbeit! Danke! Hatte die erste Variante so sogar auch mal, nur bei path das "fill" nach "Text" gesetzt, deswegen hat es nicht funktioniert. Nochmal riesen Danke!

(10 Feb '14, 11:24) BineMaja
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
×160
×20

Frage gestellt: 10 Feb '14, 07:42

Frage wurde angeschaut: 2,642 Mal

Zuletzt aktualisiert: 10 Feb '14, 15:50