
Estou usando a awesome-cv
classe, que destaca as três primeiras letras do título da seção assim:
O código que produz esse efeito fica assim:
\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}%
}
O tamanho do texto e o negrito são adicionados posteriormente em
\newcommand*{\sectionstyle}[1]{{\fontsize{15pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
Como a primeira parte deste código destaca as três primeiras letras?
Entendo que este não é um MWE, mas não consegui criar um a partir do .cls
arquivo e não acho que esse código seja tão complexo para alguém que sabe o que está vendo. Se eu precisar e MWE, me avise.
Responder1
Na verdade, esse truque é bastante simples: argumentos para comandos normais do TeX podem ser tokens únicos (ou seja, caracteres ou \controlsequence
s) ou podem ser sequências de tokens entre colchetes. Por exemplo, é por isso que, no modo matemático, você pode escrever \frac 1 2
, \frac{1}{2}
ou até mesmo \frac1{2}
e obter o mesmo resultado.
Portanto, tudo o que você precisa fazer para obter os três primeiros caracteres de uma palavra é um comando com três argumentos. Por exemplo,
\newcommand\mycommand[3]{%
\textcolor{red}{#1}%
\textcolor{green}{#2}%
\textcolor{blue}{#3}%
}
permite destacar as três primeiras letras após uma invocação como \mycommand hello
. Neste lo
caso, simplesmente não faz parte do comando.
Para obter a sintaxe familiar com apenas um parâmetro entre colchetes, você pode agrupar este comando em outro comando:
\newcommand*\myothercommand[1]{%
\mycommand #1%
}
Isso permite que você escreva \myothercommand{hello}
.
Aqui está um MWE que demonstra uma versão simplificada do comando com cores diferentes:
\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}