0

我在 awesome-cv 文档类中遇到了这一行

\def\@sectioncolor#1#2#3{%
   \ifbool{acvSectionColorHighlight}{{\color{awesome}#1#2#3}}{#1#2#3}%
}

\newcommand*{\sectionstyle}[1]{{\fontsize{16pt}
   {1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}

它的作用是你给它一个单词,它会改变单词前三个字母的颜色。

但是,我不明白它是如何工作的。有人可以向我描述一下吗?

4

1 回答 1

2

在不考虑整体定义的情况下,重点关注以下内容:

\def\@sectioncolor#1#2#3{%
  % <some definition>
}

\newcommand*{\sectionstyle}[1]{{%
  % <some definition>
  \@sectioncolor #1}}

很明显,它\sectionstyle需要一个单一的强制性参数。这个强制参数是节的标题,\sectionstyle{Education}例如。这个参数被传递给\@sectioncolorvia

\@sectioncolor #1

但是,请注意,周围没有大括号#1,因为\@sectioncolor需要三个强制参数。为此,一个电话就像\sectionstyle{Education}翻译成

\@sectioncolor Education

where\@sectioncolor将前三个标记作为其强制参数。也就是说,几乎可以假设以下传输的输入:

\@sectioncolor {E}{d}{u}cation

\@sectioncolor的定义内,E将是#1d将是#2u将是#3#1#2#3如果您不希望您的部分以颜色突出显示,它们将按顺序设置,或者awesome如果您这样做,则使用颜色对它们进行着色。

于 2017-06-22T15:35:34.027 回答