
Estoy usando la awesome-cv
clase, que resalta las primeras tres letras del encabezado de la sección así:
El código que produce este efecto se ve así:
\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}%
}
El tamaño del texto y la negrita se agregan más adelante en
\newcommand*{\sectionstyle}[1]{{\fontsize{15pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
¿Cómo resalta la primera parte de este código las tres primeras letras?
Entiendo que esto no es un MWE, pero no pude crear uno a partir del .cls
archivo y no creo que este código sea tan complejo para alguien que sabe lo que está viendo. Si necesito un MWE, házmelo saber.
Respuesta1
En realidad, este truco es bastante simple: los argumentos de los comandos TeX normales pueden ser tokens individuales (es decir, caracteres o \controlsequence
s), o pueden ser secuencias de tokens encerradas entre llaves. Por ejemplo, esta es la razón por la que, en modo matemático, puedes escribir \frac 1 2
, \frac{1}{2}
o incluso \frac1{2}
y obtener el mismo resultado.
Por lo tanto, todo lo que necesitas hacer para obtener los primeros tres caracteres de una palabra es un comando con tres argumentos. Por ejemplo,
\newcommand\mycommand[3]{%
\textcolor{red}{#1}%
\textcolor{green}{#2}%
\textcolor{blue}{#3}%
}
le permite resaltar las primeras tres letras después de una invocación como \mycommand hello
. En lo
este caso, simplemente no forma parte del comando.
Para obtener la sintaxis familiar con un solo parámetro entre llaves, puede incluir este comando en otro comando:
\newcommand*\myothercommand[1]{%
\mycommand #1%
}
Esto le permite escribir \myothercommand{hello}
.
Aquí hay un MWE que muestra una versión simplificada del comando con diferentes colores:
\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}