背景

背景

背景

我尝试使用该tikz mindmap库绘制思维导图,以便在beamer演示文稿中使用。

问题

根据我选择的颜色,节点的颜色与将它们连接到其他节点的连接器的颜色不匹配。无论是使用思维导图的层次结构自动创建连接,还是在操作之后手动添加连接,都是如此\path

平均能量损失

此代码演示了这个问题。第一张地图直接取自手册第 662 页,运行良好。第二张地图与第一张地图完全相同,只是使用的颜色不同。

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

思维导图颜色怪异

存在两个问题:

  1. 节点颜色不符合预期。黄色不太明显,但青色和洋红色非常明显。
  2. 颜色不是持续的。也就是说,连接器似乎使用的颜色与我预期的一致,但节点却并非如此。因此连接器无法顺畅地流向/流出节点。

调查

一致工作的颜色都是使用 RGB 模型定义的。产生不一致结果的颜色都是使用 CMYK 模型定义的。一种解决方法是在 RGB 模型中定义替代颜色。例如,要定义一种新颜色,rgbmagenta就像但就 而不是magenta而言。rgbcmyk

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

具有替代颜色定义的思维导图

问题

为什么会发生这种情况?是否可以避免这种情况,而无需像我在解决方法中所做的那样重新定义颜色?

我担心这个问题肯定是重复的,但到目前为止,搜索还没有找到特别有启发性的内容。我发现一些帖子暗示 TikZ 可能会将颜色从 CMYK 模型转换为 RGB,但尽管这可能解释了颜色不太符合预期,但并不能解释不一致之处。

答案1

更新

自 3.1.3 版本起,tikz支持 CMYK 阴影,因此下面的 MWE 无需加载即可工作pgf-cmykshadings


有一个新的包,pgf-cmykshadings支持pgf和中的 CMYK 阴影tikz。通过设置颜色模型,可以在同一文档中生成 RGB 和 CMYK 阴影xcolor。只需加载pgf-cmykshadings tikz

在下面的 MWE 中,第一个思维导图是 RGB 格式的,第二个是 CMYK 格式的。两者的颜色一致!

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

在此处输入图片描述

答案2

TikZ(3.1.3 之前的版本)使用 RGB 颜色进行颜色渐变。

使用 (和xcolor所需)包,您可以:tikzbeamer

  1. 将 CMYK 颜色转换为 RGB 颜色:

    \colorlet{yellow}[rgb]{yellow}
    
  2. 将 RGB 颜色转换为 CMYK 颜色:

    \colorlet{red}[cmyk]{red}
    

要始终使用 RGB 颜色,请将rgb选项传递给xcolor

\usepackage[rgb]{xcolor}

根据beamer要求xcolor,您必须在之前通过此选项:

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

相关内容