Fondo

Fondo

Fondo

Estaba intentando dibujar un mapa mental usando la tikz mindmapbiblioteca para un posible uso en una beamerpresentación.

El problema

Dependiendo de mi elección de colores, el color de los nodos no coincide con los colores de los conectores que los conectan a otros nodos. Esto es cierto ya sea que las conexiones se creen automáticamente usando la jerarquía del mapa mental o si las conexiones se agregan manualmente después en una \pathoperación.

MWE

Este código demuestra el problema. El primer mapa proviene directamente de la página 662 del manual y funciona bien. El segundo mapa es igual al primero excepto que los colores utilizados son diferentes.

\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}

Rarezas para colorear mapas mentales

Hay dos problemas:

  1. Los colores de los nodos no son los esperados. Esto es menos obvio en el caso del amarillo pero muy obvio en el caso del cian y magenta.
  2. Los colores no soncoherente. Es decir, los conectores parecen usar colores como los que esperaría, aunque los nodos no. Por lo tanto, los conectores no fluyen suavemente hacia/desde los nodos.

Investigación

Todos los colores que funcionan de manera consistente se definen utilizando el modelo RGB. Todos los colores que producen resultados inconsistentes se definen utilizando el modelo CMYK. Una solución alternativa es definir colores alternativos en el modelo RGB. Por ejemplo, para definir un nuevo color, rgbmagentacomo magentapero en términos de rgben lugar de 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}

Mapa mental con definiciones de colores alternativas

Pregunta

¿Por qué sucede esto exactamente? ¿Se puede evitar sin redefinir los colores como hice en la solución alternativa?

Me temo que esta pregunta es seguramente un duplicado, pero hasta ahora la búsqueda no ha arrojado nada especialmente esclarecedor. He encontrado hilos que sugieren que TikZ puede estar convirtiendo colores del modelo CMYK a RGB, pero si bien eso podría explicar que los colores no sean como se esperaba, no explica las inconsistencias.

Respuesta1

Actualizar

Desde la versión 3.1.3, tikzadmite sombreados CMYK, por lo que el MWE a continuación funcionará sin cargar pgf-cmykshadings.


Hay un nuevo paquete pgf-cmykshadingsque admite sombreados CMYK en pgfy tikz. Es posible producir sombreados RGB y CMYK en el mismo documento configurando el xcolormodelo de color. solo cargapgf-cmykshadings antes tikz.

En el siguiente MWE, el primer mapa mental está en RGB y el segundo en CMYK. ¡Ambos tienen colores consistentes!

\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}

ingrese la descripción de la imagen aquí

Respuesta2

TikZ (antes de la versión 3.1.3) usa colores RGB para degradados de color.

Con el paquete xcolor(requerido por tikzy beamer), puedes:

  1. convertir un color CMYK a un color RGB:

    \colorlet{yellow}[rgb]{yellow}
    
  2. convertir un color RGB a un color CMYK:

    \colorlet{red}[cmyk]{red}
    

Para usar siempre colores RGB, pase la rgbopción a xcolor:

\usepackage[rgb]{xcolor}

Según beamerlo requerido xcolor, debes pasar esta opción antes:

\PassOptionsToPackage{rgb}{xcolor}
\documentclass{beamer}

información relacionada