Hintergrund
Ich habe versucht, mithilfe der Bibliothek eine Mindmap zu zeichnen, tikz
mindmap
um sie möglicherweise in einer beamer
Präsentation zu verwenden.
Das Problem
Abhängig von meiner Farbwahl stimmt die Farbe der Knoten nicht mit den Farben der Konnektoren überein, die sie mit anderen Knoten verbinden. Dies gilt unabhängig davon, ob die Verbindungen automatisch anhand der Hierarchie der Mindmap erstellt werden oder ob die Verbindungen nachträglich in einem \path
Vorgang manuell hinzugefügt werden.
MWE
Dieser Code veranschaulicht das Problem. Die erste Karte stammt direkt von Seite 662 des Handbuchs und funktioniert einwandfrei. Die zweite Karte ist genau wie die erste, außer dass die verwendeten Farben anders sind.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\tikz[mindmap,concept color=blue!80]
\node [concept] {Root concept}
child[concept color=red,grow=30] {node[concept] {Child concept}}
child[concept color=orange,grow=0] {node[concept] {Child concept}};
\tikz[mindmap,concept color=magenta]
\node [concept] {Root concept}
child[concept color=cyan,grow=30] {node[concept] {Child concept}}
child[concept color=yellow,grow=0] {node[concept] {Child concept}};
\end{document}
Es gibt zwei Probleme:
- Die Knotenfarben entsprechen nicht den Erwartungen. Bei Gelb ist dies weniger offensichtlich, bei Cyan und Magenta jedoch sehr deutlich.
- Die Farben sind nichtkonsistent. Das heißt, die Konnektoren scheinen die Farben zu verwenden, die ich erwarten würde, obwohl die Knoten dies nicht tun. Die Konnektoren fließen also nicht reibungslos zu/von den Knoten.
Untersuchung
Die Farben, die konsistent funktionieren, werden alle mithilfe des RGB-Modells definiert. Die Farben, die inkonsistente Ergebnisse liefern, werden alle mithilfe des CMYK-Modells definiert. Eine Problemumgehung besteht darin, alternative Farben im RGB-Modell zu definieren. Beispielsweise können Sie eine neue Farbe rgbmagenta
genau wie definieren, magenta
jedoch in Bezug auf rgb
statt cmyk
.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\definecolor{rgbmagenta}{rgb}{1,0,1}
\definecolor{rgbcyan}{rgb}{0,1,1}
\definecolor{rgbyellow}{rgb}{1,1,0}
\begin{document}
\tikz[mindmap,concept color=rgbmagenta]
\node [concept] {Root concept}
child[concept color=rgbcyan,grow=30] {node[concept] {Child concept}}
child[concept color=rgbyellow,grow=0] {node[concept] {Child concept}};
\end{document}
Frage
Warum genau passiert das? Kann es vermieden werden, ohne die Farben neu zu definieren, wie ich es in der Problemumgehung getan habe?
Ich fürchte, diese Frage ist sicherlich ein Duplikat, aber die Suche hat bisher nichts besonders Erhellendes ergeben. Ich habe Threads gefunden, die darauf hindeuten, dass TikZ Farben vom CMYK-Modell in RGB konvertiert. Das könnte zwar erklären, warum die Farben nicht ganz wie erwartet sind, aber es erklärt nicht die Inkonsistenzen.
Antwort1
Aktualisieren
Seit Version 3.1.3 tikz
werden CMYK-Schattierungen unterstützt, sodass das folgende MWE ohne Laden funktioniert pgf-cmykshadings
.
Es gibt ein neues Paket, das CMYK-Schattierungen in und pgf-cmykshadings
unterstützt . Es ist möglich, RGB- und CMYK-Schattierungen im selben Dokument zu erzeugen, indem man das Farbmodell einstellt. Laden Sie einfachpgf
tikz
xcolor
pgf-cmykshadings
Vor tikz
.
Im folgenden MWE ist die erste Mindmap in RGB und die zweite in CMYK. Beide haben einheitliche Farben!
\documentclass{standalone}
\usepackage{pgf-cmykshadings}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\selectcolormodel{rgb}
\tikz[mindmap,concept color=blue!80]
\node [concept] {Root concept}
child[concept color=red,grow=30] {node[concept] {Child concept}}
child[concept color=orange,grow=0] {node[concept] {Child concept}};
\selectcolormodel{cmyk}
\tikz[mindmap,concept color=magenta]
\node [concept] {Root concept}
child[concept color=cyan,grow=30] {node[concept] {Child concept}}
child[concept color=yellow,grow=0] {node[concept] {Child concept}};
\end{document}
Antwort2
TikZ (vor Version 3.1.3) verwendet RGB-Farben für Farbverläufe.
Mit dem Paket xcolor
(erforderlich für tikz
und beamer
) können Sie:
Konvertieren einer CMYK-Farbe in eine RGB-Farbe:
\colorlet{yellow}[rgb]{yellow}
Konvertieren einer RGB-Farbe in eine CMYK-Farbe:
\colorlet{red}[cmyk]{red}
Um immer RGB-Farben zu verwenden, übergeben Sie die rgb
Option an xcolor
:
\usepackage[rgb]{xcolor}
Wie beamer
erforderlich xcolor
müssen Sie diese Option vor Folgendem übergeben:
\PassOptionsToPackage{rgb}{xcolor}
\documentclass{beamer}