背景

背景

背景

私はマインドマップを描こうとしていましたtikz mindmapプレゼンテーションで使用できるように、ライブラリbeamer

問題

色の選択によっては、ノードの色は他のノードにリンクするコネクタの色と一致しません。これは、マインドマップの階層を使用して接続が自動的に作成されるか、後で手動で接続が追加されるかどうかに関係なく当てはまります。\path

ムウェ

このコードは問題を示しています。最初のマップはマニュアルの 662 ページから直接引用したもので、正常に動作します。2 番目のマップは、使用されている色が異なることを除いて、最初のマップとまったく同じです。

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

マインドマップの色付けの奇妙さ

問題は2つあります。

  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 以降ではtikzCMYK シェーディングがサポートされているため、以下の MWE はロードせずに動作しますpgf-cmykshadings


pgf-cmykshadingsの CMYK シェーディングをサポートする新しいパッケージがあります。カラーモデルを設定することで、同じドキュメントで RGB と CMYK シェーディングを生成することができます。pgftikzxcolorpgf-cmykshadings 前に tikz

次の MWE では、最初のマインドマップは RGB で、2 番目は 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(および で必要tikz)beamerを使用すると、次のことが可能になります。

  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}

関連情報