背景

背景

背景

我試圖使用該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但用rgb而不是術語一樣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}

具有替代顏色定義的心智圖

問題

究竟為什麼會發生這種情況?如果不像我在解決方法中那樣重新定義顏色,是否可以避免這種情況?

我擔心這個問題肯定是重複的,但到目前為止,搜尋還沒有發現任何特別有啟發性的結果。我發現一些線索表明 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}

相關內容