
Ich verwende die awesome-cv
Klasse, die die ersten drei Buchstaben der Abschnittsüberschrift wie folgt hervorhebt:
Der Code, der diesen Effekt erzeugt, sieht folgendermaßen aus:
\RequirePackage{xcolor}
\RequirePackage{xifthen}
\RequirePackage{etoolbox}
\RequirePackage[quiet]{fontspec}
\RequirePackage{fontawesome}
\definecolor{awesome-red}{HTML}{DC3522}
\colorlet{awesome}{awesome-red}
\newcounter{colorCounter}
\def\@sectioncolor#1#2#3{%
{%
\color{%
\ifcase\value{colorCounter}%
awesome\or%
awesome\or%
awesome\or%
awesome\or%
awesome\else%
awesome\fi%
} #1#2#3%
}%
\stepcounter{colorCounter}%
}
Die Textgröße und Fettschrift werden später hinzugefügt in
\newcommand*{\sectionstyle}[1]{{\fontsize{15pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
Wie hebt der erste Teil dieses Codes die ersten drei Buchstaben hervor?
Mir ist klar, dass dies kein MWE ist, aber ich konnte aus der .cls
Datei keins erstellen und ich glaube nicht, dass dieser Code für jemanden, der weiß, was er sieht, so komplex ist. Wenn ich ein MWE brauche, lassen Sie es mich wissen.
Antwort1
Eigentlich ist dieser Trick ganz einfach: Argumente für normale TeX-Befehle können entweder einzelne Token (also Buchstaben oder \controlsequence
Buchstaben) oder in Klammern eingeschlossene Token-Sequenzen sein. Aus diesem Grund können Sie im Mathematikmodus beispielsweise , oder sogar schreiben \frac 1 2
und \frac{1}{2}
erhalten \frac1{2}
das gleiche Ergebnis.
Um die ersten drei Buchstaben eines Wortes zu erhalten, genügt also ein Befehl mit drei Argumenten. Zum Beispiel:
\newcommand\mycommand[3]{%
\textcolor{red}{#1}%
\textcolor{green}{#2}%
\textcolor{blue}{#3}%
}
ermöglicht das Hervorheben der ersten drei Buchstaben nach einem Aufruf wie \mycommand hello
. Das lo
ist in diesem Fall einfach nicht Teil des Befehls.
Um die bekannte Syntax mit nur einem Parameter in Klammern zu erhalten, können Sie diesen Befehl in einen anderen Befehl einschließen:
\newcommand*\myothercommand[1]{%
\mycommand #1%
}
Dies ermöglicht Ihnen das Schreiben \myothercommand{hello}
.
Hier ist ein MWE, das eine abgespeckte Version des Befehls mit verschiedenen Farben demonstriert:
\documentclass{article}
\RequirePackage{xcolor}
\RequirePackage{xifthen}
\definecolor{awesome-red}{HTML}{DC3522}
\colorlet{awesome}{awesome-red}
\newcounter{colorCounter}
\newcommand\sectioncolor[3]{%
{%
\color{%
\ifcase\value{colorCounter}%
awesome\or%
green\or%
blue\or%
orange\or%
yellow\else%
cyan\fi%
} #1#2#3%
}%
\stepcounter{colorCounter}%
}
\newcommand*{\sectionstyle}[1]{{\fontsize{15pt}{1em}\bfseries\sectioncolor #1}}
\begin{document}
\sectionstyle{first}\par
\sectionstyle{second}\par
\sectionstyle{third}\par
\sectionstyle{fourth}\par
\sectionstyle{fifth}\par
\sectionstyle{sixth}\par
\sectionstyle{seventh}
\end{document}