乳胶定义的解释

Explanation for a latex def

我在 awesome-cv 文档中看到了这一行 class

\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}}

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

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

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

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

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

很明显,\sectionstyle 接受一个强制参数。此强制参数是该部分的标题,例如 \sectionstyle{Education}。此参数通过

传递给 \@sectioncolor
\@sectioncolor #1

但是,请注意 #1 周围没有大括号,因为 \@sectioncolor 需要 三个 个强制参数。为此,像 \sectionstyle{Education} 这样的调用转换为

\@sectioncolor Education

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

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

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