Quando crias um PDF com LaTeX, os pequenos
detalhes visuais pesam muito. A classe
moderncv adiciona ícones junto aos campos de
contacto (telemóvel, email, página pessoal, etc.), o que fica muito bem, mas
nem toda a gente quer ícones no seu cabeçalho. Algumas pessoas preferem um
estilo mais limpo e minimalista, ou precisam de se adaptar a um modelo
corporativo que não permite pictogramas. Neste post explicamos o que é
moderncv, que biblioteca de ícones utiliza, como ocultá-los e como a macro
LaTeX \renewcommand o torna possível.
1. O que é moderncv?
moderncv é uma classe de documento LaTeX
pensada especificamente para CVs e currículos. Oferece um design consistente e
profissional, além de um conjunto de macros de alto nível para formatar os
componentes habituais de um currículo: nome, título, dados de contacto,
cabeçalhos de secção e entradas de trabalho ou educação. Em comparação com um
LaTeX "em bruto", moderncv dá-te um sistema de layout já preparado com
várias variantes de estilo (como banking, classic ou casual) e uma hierarquia
visual que funciona muito bem em CVs de uma página.
Um cabeçalho típico de moderncv poderia ver-se assim:
\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}A classe toma estes comandos e renderiza-os num cabeçalho limpo. Por
defeito, moderncv também mostra ícones junto a cada elemento, o que facilita
a leitura visual da informação de contacto.
2. Que biblioteca de ícones usa moderncv?
moderncv inclui suporte de ícones através do pacote
fontawesome5. Font
Awesome é um conjunto de ícones muito popular, e
fontawesome5 expõe-o em LaTeX com comandos como \faEnvelope,
\faMobileAlt e \faGlobe. Em moderncv, esses ícones ligam-se a macros de
"símbolo" como \emailsymbol e \homepagesymbol. Quando chamas
\email{...} ou \homepage{...}, a classe antepõe a macro de símbolo
correspondente, que por sua vez usa um glifo de Font Awesome.
Como os ícones são encaminhados através destas macros, podes substituí-los ou removê-los sem tocar no conteúdo real de contacto. Este design é importante: separá conteúdo e decoração, então podes opting por um estilo mais limpo com umas poucas redefinições.
3. Como ocultar os ícones em moderncv
A forma mais limpa de remover os ícones é redefinir as macros de símbolo para
cadeias vazias. Em LaTeX, \renewcommand permite substituir uma macro
existente com um novo comportamento. Se definires cada símbolo de moderncv
para nada, as etiquetas permanecem mas os ícones desaparecem.
Aqui tens o fragmento mínimo que podes colocar no preâmbulo, depois de
carregar moderncv:
% disable icons
renewcommand*{addresssymbol}{}
renewcommand*{mobilephonesymbol}{}
renewcommand*{fixedphonesymbol}{}
renewcommand*{faxphonesymbol}{}
renewcommand*{emailsymbol}{}
renewcommand*{homepagesymbol}{}Esta abordagem reflete o que faz o renderer de moderncv em
YAMLResume. Em YAMLResume
v0.10, o preâmbulo LaTeX
insere opcionalmente
estas linhas de \renewcommand* quando uma opção de layout dentro de
advanced, chamada showIcons, está definida como false. Isso significa que
a saída PDF pode alternar ícones sem tocar no conteúdo do currículo.
Aqui tens o currículo moderncv sem ícones:
![]()
O bloco de LaTeX relevante ver-se-ia assim:
Se usas YAMLResume, podes controlar este comportamento desde a configuração de layout e deixar que o renderer injete esses overrides automaticamente. Se escreves LaTeX à mão, podes copiar o fragmento para o teu preâmbulo. Em ambos os casos, o resultado é o mesmo: o cabeçalho mantém o texto mas perde os pictogramas.
Por que funciona
moderncv define um conjunto de macros para cada ícone. Por exemplo,
\emailsymbol é usado para mostrar o ícone de email. Quando redefinimos essa
macro para {}, LaTeX expande-a igualmente, mas não imprime nada. Não estás
a remover o email; apenas estás a anular a decoração que o precede.
Conselho extra: ocultar ícones sociais
Se adicionas ícones manualmente em campos personalizados (por exemplo, usando
\faGithub ou \faTwitter numa linha custom), também podes removê-los
simplesmente deixando de chamar esses comandos. No renderer de YAMLResume, isto
é tratado verificando uma flag showIcons antes de inserir os glifos de Font
Awesome para perfis sociais. O padrão é o mesmo: manter o conteúdo do
\href e omitir o prefixo do ícone.
4. O que é a macro \renewcommand?
LaTeX usa macros para definir como os comandos se comportam. A macro
\newcommand cria um novo comando, enquanto \renewcommand redefine um
existente. Pensa nisto como "sobrescreve este comando com uma nova
implementação".
A sintaxe é:
renewcommand{\commandname}{replacement}A versão com asterisco \renewcommand* comporta-se de forma semelhante, mas
indica a LaTeX que não permita uma mudança de parágrafo no texto de
substituição. Para macros de símbolo curtos como \emailsymbol, o asterisco
não muda muito, mas é comum em classes e modelos.
Em moderncv, as macros de ícone já estão definidas, então deves usar
\renewcommand em vez de \newcommand. Se tentares redefinir uma macro
existente com \newcommand, LaTeX lançará um erro. Por isso o patch usa:
renewcommand*{emailsymbol}{}Esta linha diz: "Substitui a definição existente de \emailsymbol com uma
cadeia vazia". O resto da classe continua a funcionar, porque \email{...}
ainda expande corretamente; simplesmente já não antepõe o ícone.
Em resumo
moderncvé uma classe de LaTeX para CVs com macros estruturados e bons padrões.- Usa o pacote
fontawesome5para ícones, expostos através de macros como\emailsymbole\homepagesymbol. - Podes ocultar os ícones redefinindo essas macros para cadeias vazias com
\renewcommand*. \renewcommandé o mecanismo de LaTeX para sobrescrever macros existentes.
Se queres um cabeçalho minimalista apenas com texto, esta técnica é a mais
robusta. Além disso, é futura: se depois mudares de estilo ou adicionares
novos campos de contacto, podes manter o mesmo padrão redefinindo os símbolos
correspondentes. E a propósito, esta opção advanced.showIcons funciona tanto
para o motor HTML como para o motor
LaTeX.
Written by
Xiao HanyuAt
Wed Jan 21 2026