我正在处理一份分为几章的文档。每章分为 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}