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, 13:42

BineMaja's gravatar image

BineMaja
99447
Akzeptiert-Rate: 0%

bearbeitet 10 Feb '14, 21:50

esdd's gravatar image

esdd
17.8k284257


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, 15:33

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 10 Feb '14, 15: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, 17:24) BineMaja
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:

×730
×298
×32

gestellte Frage: 10 Feb '14, 13:42

Frage wurde gesehen: 10,258 Mal

zuletzt geändert: 10 Feb '14, 21:50