2017-06-22 6 views
0

私は何それがないことは、あなたがそれに言葉を与えることであり、それが単語の最初の3つの文字の色を変更し説明デフ

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

素晴らしい-CVのドキュメントクラスでこのラインに出くわしました。

しかし、どのように動作するのか分かりません。誰かがそれを私に説明してもらえますか?その全体の定義を考慮せずに

答えて

1

、次のように焦点を当てる:

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

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

\sectionstyleは、単一、必須の引数を取ることは言うまでもないです。この必須の引数は、セクションのタイトルです(例:\sectionstyle{Education})。この引数は

\@sectioncolor #1 

経由\@sectioncolorに渡され\@sectioncolorがの必須の引数を期待しかし、#1周りに括弧がないことに注意してください。そのために、\sectionstyle{Education}のような呼び出しが\@sectioncolorがその必須の引数として最初の3つのトークンを取る

\@sectioncolor Education 

に変換されます。 E#3なり#1d#2uあろうなり、\@sectioncolorの定義内

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

:すなわち、一つはほぼ次の転送入力をとることができます。セクションを色で強調表示したくない場合は、#1#2#3の順番で設定されます。そうであれば、色はawesomeで色付けされます。

+0

ありがとうございます。この動作はdefの場合のみですか?あるいはnewcommandでも同じことが起こりますか? – Ashkan

+0

@Ashkan:\ newcommand {\ @ sectioncolor} [3] {...} 'でも同じことが起こります。 – Werner