我正在使用二十二简历模板。这会将主列中部分标题的前 3 个字母着色。我想将其扩展为将部分标题的第一个单词着色。
据我所知,.cls 文件的相关部分从第 238 行开始:
\newcounter{colorCounter}
\def\@sectioncolor#1#2#3{
{%
% Switch between blue and gray
\round{#1#2#3}{%
\ifodd\value{colorCounter}%
mainblue%
\else%
maingray%
\fi%
}%
}%
\stepcounter{colorCounter}%
}
\renewcommand{\section}[1]{
\par%
{%
\LARGE
\color{headercolor}%
\@sectioncolor #1%
}
\par\vspace{\parskip}
}
我知道这@sectioncolor#1#2#3
会取章节标题的前三个字母/标记并为其着色,而且我可以通过附加#4...等来扩展它(至少与章节标题一样长)。我还可以更改整个标题的颜色,但还没有想出如何只更改第一个单词。
我已经阅读了有关类似主题的其他一些问题,但他们使用了不同的 CV 模板,我无法将这些解决方案转换为这个特定问题:
- 更改章节标题的颜色以在 Awesome CV 中包含整个单词
- 更改 AwesomeCV 部分突出显示以突出显示整个第一个单词
- friggeri Latex CV 中所有章节标题采用统一颜色
- latex def 的解释
- 这种部分字符串颜色突出显示如何工作?
- 章节标题的可变颜色
编辑:
根据下面的 Simon 的回答,我对.cls
文件做了一些编辑,通过列表旋转颜色。
RequirePackage{parskip}
\RequirePackage{xstring}
%%% Counter and colour first word
\newcounter{colorCounter}
\makeatletter
\def\@sectioncolor#1{%
\StrBetween[1,2]{ #1 }{ }{ }[\FirstWord]
\StrBehind{#1}{\FirstWord}[\LastWords]
{\color{%
\ifcase\value{colorCounter}%
pblue\or%
red\or%
orange\or%
blue\or%
green\or%
purple\else%
pblue\fi%
}
\FirstWord}\LastWords
\stepcounter{colorCounter}%
}
\renewcommand{\section}[1]{%
\par%
{%
\LARGE
\color{headercolor}%
\@sectioncolor{#1}%
}
\par\vspace{\parskip}
}
\makeatother
%%
答案1
\documentclass[]{twentysecondcv}
在和之间添加此代码\begin{document}
% **************************************** added <<<<<<<<<<<<<<<<
\usepackage{xstring}
\makeatletter
\def\@sectioncolor#1{%
\StrBetween[1,2]{ #1 }{ }{ }[\FirstWord]
\StrBehind{#1}{\FirstWord}[\LastWords]
{\round{\FirstWord}{%
\ifodd\value{colorCounter}%
mainblue%
\else%
maingray%
\fi%
}\LastWords%
}%
\stepcounter{colorCounter}%
}
\renewcommand{\section}[1]{%
\par%
{%
\LARGE
\color{headercolor}%
\@sectioncolor{#1}%
}
\par\vspace{\parskip}
}
\makeatother
% *****************************************************