Cómo ocultar iconos en moderncv

Cómo moderncv usa los iconos de Font Awesome y cómo desactivarlos con \renewcommand.

Cuando creas un PDF con LaTeX, los pequeños detalles visuales pesan mucho. La clase moderncv añade iconos junto a los campos de contacto (teléfono, email, página personal, etc.), lo que queda muy bien, pero no todo el mundo quiere iconos en su encabezado. Algunas personas prefieren un estilo más limpio y minimalista, o necesitan ajustarse a una plantilla corporativa que no permite pictogramas. En este post explicamos qué es moderncv, qué biblioteca de iconos utiliza, cómo ocultarlos y cómo el macro LaTeX \renewcommand lo hace posible.

1. ¿Qué es moderncv?

moderncv es una clase de documento LaTeX pensada específicamente para CVs y currículums. Ofrece un diseño consistente y profesional, además de un conjunto de macros de alto nivel para formatear los componentes habituales de un currículum: nombre, título, datos de contacto, encabezados de sección y entradas de trabajo o educación. En comparación con un LaTeX “en crudo”, moderncv te da un sistema de maquetación ya preparado con varias variantes de estilo (como banking, classic o casual) y una jerarquía visual que funciona muy bien en CVs de una página.

Un encabezado típico de moderncv podría verse así:

\name{}{Andy Dufresne}
\title{Software Engineer}
\phone[mobile]{+1 555 123 456}
\email{jane@example.com}
\homepage{https://example.com}

La clase toma estos comandos y los renderiza en un encabezado limpio. Por defecto, moderncv también muestra iconos junto a cada elemento, lo que facilita escaneo visual de la información de contacto.

2. ¿Qué biblioteca de iconos usa moderncv?

moderncv incluye soporte de iconos mediante el paquete fontawesome5. Font Awesome es un set de iconos muy popular, y fontawesome5 lo expone en LaTeX con comandos como \faEnvelope, \faMobileAlt y \faGlobe. En moderncv, esos iconos se conectan a macros de “símbolo” como \emailsymbol y \homepagesymbol. Cuando llamas a \email{...} o \homepage{...}, la clase antepone el macro de símbolo correspondiente, que a su vez usa un glifo de Font Awesome.

Como los iconos están enrutados a través de estos macros, puedes reemplazarlos o eliminarlos sin tocar el contenido real de contacto. Este diseño es importante: separa contenido y decoración, así que puedes optar por un estilo más limpio con unas pocas redefiniciones.

3. Cómo ocultar los iconos en moderncv

La forma más limpia de eliminar los iconos es redefinir los macros de símbolo a cadenas vacías. En LaTeX, \renewcommand te permite reemplazar un macro existente con un nuevo comportamiento. Si pones cada símbolo de moderncv a nada, las etiquetas siguen ahí pero los iconos desaparecen.

Aquí tienes el fragmento mínimo que puedes poner en el preámbulo, después de cargar moderncv:

% disable icons
\renewcommand*{\addresssymbol}{}
\renewcommand*{\mobilephonesymbol}{}
\renewcommand*{\fixedphonesymbol}{}
\renewcommand*{\faxphonesymbol}{}
\renewcommand*{\emailsymbol}{}
\renewcommand*{\homepagesymbol}{}

Este enfoque refleja lo que hace el renderer de moderncv en YAMLResume. En YAMLResume v0.10, el preámbulo de LaTeX inserta opcionalmente exactamente estas líneas de \renewcommand* cuando una opción de layout dentro de advanced, llamada showIcons, se establece en false. Eso significa que la salida PDF puede alternar iconos sin tocar el contenido del currículum.

Aquí tienes el currículum moderncv sin iconos:

Currículum moderncv sin iconos

El bloque de LaTeX relevante se ve así:

Si usas YAMLResume, puedes controlar este comportamiento desde la configuración de layout y dejar que el renderer inyecte esos overrides automáticamente. Si escribes LaTeX a mano, puedes copiar el fragmento en tu preámbulo. En ambos casos, el resultado es el mismo: el encabezado mantiene el texto pero pierde los pictogramas.

Por qué funciona

moderncv define un conjunto de macros para cada icono. Por ejemplo, \emailsymbol se usa para mostrar el icono de email. Cuando redefinimos ese macro a {}, LaTeX lo expande igualmente, pero no imprime nada. No estás eliminando el email; solo estás anulando la decoración que lo precede.

Consejo extra: ocultar iconos sociales

Si añades iconos manualmente en campos personalizados (por ejemplo, usando \faGithub o \faTwitter en una línea custom), también puedes eliminarlos simplemente dejando de llamar esos comandos. En el renderer de YAMLResume, esto se maneja comprobando un flag showIcons antes de insertar los glifos de Font Awesome para perfiles sociales. El patrón es el mismo: mantener el contenido del \href y omitir el prefijo del icono.

4. ¿Qué es el macro \renewcommand?

LaTeX usa macros para definir cómo se comportan los comandos. El macro \newcommand crea un nuevo comando, mientras que \renewcommand redefine uno existente. Piénsalo como “sobrescribe este comando con una nueva implementación”.

La sintaxis es:

\renewcommand{\commandname}{replacement}

La versión con asterisco \renewcommand* se comporta de forma similar, pero le indica a LaTeX que no permita un salto de párrafo en el texto de reemplazo. Para macros de símbolo cortos como \emailsymbol, el asterisco no cambia mucho, pero es común en clases y plantillas.

En moderncv, los macros de icono ya están definidos, así que debes usar \renewcommand en lugar de \newcommand. Si intentas redefinir un macro existente con \newcommand, LaTeX lanzará un error. Por eso el patch usa:

\renewcommand*{\emailsymbol}{}

Esta línea dice: “Reemplaza la definición existente de \emailsymbol con una cadena vacía”. El resto de la clase sigue funcionando, porque \email{...} aún se expande correctamente; simplemente ya no antepone el icono.

En resumen

  • moderncv es una clase de LaTeX para CVs con macros estructurados y buenos defaults.
  • Usa el paquete fontawesome5 para iconos, expuestos mediante macros como \emailsymbol y \homepagesymbol.
  • Puedes ocultar los iconos redefiniendo esos macros a cadenas vacías con \renewcommand*.
  • \renewcommand es el mecanismo de LaTeX para sobrescribir macros existentes.

Si quieres un encabezado minimalista solo con texto, esta técnica es la más robusta. Además, es futura: si luego cambias de estilo o añades nuevos campos de contacto, puedes mantener el mismo patrón redefiniendo los símbolos correspondientes. Y por cierto, esta opción advanced.showIcons funciona tanto para el motor HTML como para el motor LaTeX.

Written by

Xiao Hanyu

At

Wed Jan 21 2026