颜色取决于部分编号

颜色取决于部分编号

我正在处理一份分为几章的文档。每章分为 4 个部分。我想创建一个命令,根据部分编号定义颜色。

我一直在尝试使用ifthen包来做到这一点:

\usepackage{ifthen}
...
\newcommand{\myColor}{%
    \ifthenelse{\thesection = 1}{DarkOrange}{%
        \ifthenelse{\thesection = 2}{DeepSkyBlue}{%
            \ifthenelse{\thesection = 3}{MediumSeaGreen}{%
            DimGray}%
        }%
    }%
}%

我用titlesec来自定义我的章节标题。

我收到以下错误:

Use of \@undeclaredcolor doesn't match its definition \section{exploration}

指向我的第一部分的那行。

我该如何纠正这个问题?

答案1

您的代码无法运行,因为的参数\color必须是可扩展的,但事实\ifthenelse并非如此。

定义四种颜色,其后缀取决于部分编号:

\documentclass{book}
\usepackage{titlesec}
\usepackage[svgnames]{xcolor}

\titleformat{\section}[hang]
 {\Large\bfseries\color{sectioncolor\arabic{section}}}
 {\thesection}
 {1em}
 {}

\colorlet{sectioncolor1}{DarkOrange}
\colorlet{sectioncolor2}{DeepSkyBlue}
\colorlet{sectioncolor3}{MediumSeaGreen}
\colorlet{sectioncolor4}{DimGray}

\begin{document}

\chapter{Title}

\section{First is DarkOrange}

\section{Second is DeepSkyBlue}

\section{Third is MediumSeaGreen}

\section{Fourth is DimGray}

\end{document}

在此处输入图片描述

答案2

由于您没有提供最小的工作示例(一个完整的 LaTeX 程序,虽然很短,但可以说明您遇到的问题),我不知道您的意图是什么。但以下内容有效。

\documentclass{article}

\usepackage[svgnames]{xcolor}
\usepackage{ifthen}
\usepackage{lipsum}

\newcommand{\myColor}{%
    \ifthenelse{\thesection = 1}{\color{DarkOrange}}{%
        \ifthenelse{\thesection = 2}{\color{DeepSkyBlue}}{%
            \ifthenelse{\thesection = 3}{\color{MediumSeaGreen}}{%
            \color{DimGray}}%
        }%
    }%
}%

%\def\couleur\expandafter\color{\myColor}

\begin{document}

{\myColor section 0}

\section{hello}

{\myColor
\lipsum[1-2]}

\section{howdy}

{\myColor \lipsum[3-4]}
\end{document}

相关内容