情节和章节特定颜色

情节和章节特定颜色

我有一个像这样的颜色切换功能

\definecolor{chap1}{RGB}{68, 114, 148}
\definecolor{chap2}{RGB}{10,130,124}
\definecolor{chap3}{RGB}{250,72,46}
\definecolor{chap4}{RGB}{244,163,46}

\usepackage{etoolbox}
\newcommand{\basecolor}{
    \ifcase\arabic{chapter} black\or chap1\or chap2\or chap3\or chap4\else black\fi%
}

\newcommand{\chaptercolor}{\basecolor}

这样我就可以\chaptercolor根据文档中的位置使用任意位置来获取为该章节选择的颜色。除了一件事外,效果很好。

我无法让它与情节一起工作。

以此简单的情节为例:

\tikzset{>=stealth}
\begin{tikzpicture}
    \begin{axis}[
            domain=0:1, range=0:1,
            axis lines=none,
          ]   
          \addplot [->] plot coordinates {(0,0) (0,1)}; 
          \addplot [->, color=\chaptercolor, fill=\chaptercolor, draw=\chaptercolor] plot coordinates {(0,0) (1,0)};
        \end{axis}
\end{tikzpicture}

这给了我错误包 xcolor 错误:未定义颜色“chap2”。

里面全是奇怪的符号。

如果我直接使用颜色,效果会很好。如果绘图总是使用颜色,chap2那就太好了,但到目前为止,这会给出更糟糕的错误消息。\chaptercolor\tikzset{}

关于如何修复此问题,您有什么意见吗,或者是否可以采用不同的颜色循环方法?

编辑:
添加一个相同的颜色并在其名称前面加一个空格即可解决问题。

\definecolor{ chap1}{RGB}{68, 114, 148}
\definecolor{ chap2}{RGB}{10,130,124}
\definecolor{ chap3}{RGB}{250,72,46}
\definecolor{ chap4}{RGB}{244,163,46}
\definecolor{chap1}{RGB}{68, 114, 148}
\definecolor{chap2}{RGB}{10,130,124}
\definecolor{chap3}{RGB}{250,72,46}
\definecolor{chap4}{RGB}{244,163,46}

有点不雅,但还不算太糟,因为它只是在序言中。

答案1

我认为问题出在\basecolor定义上。它在颜色名称前插入一个空格,这就是它起作用的原因\definecolor{ chap1}...

\documentclass{book}
\usepackage{pgfplots}

\definecolor{chap1}{RGB}{68, 114, 148}
\definecolor{chap2}{RGB}{10,130,124}
\definecolor{chap3}{RGB}{250,72,46}
\definecolor{chap4}{RGB}{244,163,46}

\usepackage{etoolbox}
\newcommand{\basecolor}{%
    \ifcase\value{chapter}
    black%
    \or% 
    chap1%
    \or% 
    chap2%
    \or% 
    chap3%
    \or% 
    chap4%
    \else% 
    black%
    \fi%
}

\newcommand{\chaptercolor}{\basecolor}

\begin{document}

\foreach \i in {1,...,5}
{
    \chapter{\i}
    \tikzset{>=stealth}
    \begin{tikzpicture}
        \begin{axis}[
                domain=0:1, range=0:1,
                axis lines=none,
              ]   
              \addplot [->] plot coordinates {(0,0) (0,1)}; 
              \addplot [->, color=\chaptercolor, fill=\chaptercolor, draw=\chaptercolor] plot coordinates {(0,0) (1,0)};
            \end{axis}
    \end{tikzpicture}
}
\end{document}

在此处输入图片描述

相关内容