En este artículo, vamos a mostrarte cómo crear etiquetas avanzadas en QGIS mediante lenguaje HTML y CSS.
Esta nueva característica, es gracias a la implementación de Nyall Dawson de la empresa North Road, haciendo posible crear etiquetas mixtas en QGIS.
Esto ofrece una nueva posibilidad como es la de cambiar el carácter, el estilo, el color y el tamaño del texto interno de la etiqueta, sin modificar la capa duplicada ni emplear otras opciones.
Anteriormente, las etiquetas creadas mediante expresiones que combinaban varios campos se mostraban con un formato uniforme, haciendo imposible aplicar estilos diferentes a distintas partes del mismo texto sin recurrir a múltiples capas u otras soluciones alternativas más complejas.
Si quieres aprender más sobre etiquetado y simbología en QGIS, puedes visitar nuestro artículo Cómo crear simbología basada en reglas en QGIS.
Cómo habilitar el etiquetado HTML en QGIS
Para usar etiquetas HTML en las etiquetas, es necesario habilitar dicha opción, para ello:
En primer lugar, accede a las propiedades de la capa a etiquetar y sitúate en la pestaña Etiquetas, en el desplegable, selecciona Etiquetas sencillas.

En la sección Texto, habilitar la opción «Permitir formato HTML»

Una vez habilitado el etiquetado HTML, debemos de introducir la expresión con etiquetas HTML en el campo de texto de la etiqueta.

Etiquetas HTML compatibles
Estas son las etiquetas HTML que se pueden usar en QGIS:

Atributos CSS con <span>
La etiqueta <span> es la más versátil, nos permite aplicar estilos CSS en línea al texto.
Se pueden combinar varias propiedades separándolas con punto y coma (;).

Además, es posible combinar varias propiedades CSS en el mismo <span>:
'<span style="font-size: 10pt; color: #e31a1c; font-weight: bold">texto</span>'
A continuación, te mostramos una serie de ejemplos prácticos, empleando una capa de provincias de España.
Ejemplo 1: Nombres de provincias en negrita + acrónimo de provincia
Con la siguiente expresión obtenemos el nombre de la provincia en negrita (tamaño de fuente principal), insertamos un salto de línea y, a continuación, el código asociado a la provincia.
'<b>' || "DENOMINACI" || '</b><p><span style="font-size: 15pt">' || "fid" || '</span>'

Ejemplo 2: Nombre de la provincia en negrita + Código en color
Con la siguiente expresión etiquetamos el nombre de la provincia en negrita, un salto de línea y el código de la región en rojo (#e31a1c) con una fuente de 10 puntos.
'<b>' || "den_uts" || '</b><p><span style="font-size:15pt;color:#e31a1c">' || "COD_REG" || '</span>'

Ejemplo 3: Código de región grande + nombre de provincia en tamaño pequeño
Podemos establecer tamaños de texto diferentes combinando con colores.
'<span style="font-size:16pt;font-weight:bold">' || "CODE" || '</span>' || '<br><span style="font-size:10pt;color:red">' || "DENOMINACI" || '</span>'

Ejemplo 4: Texto mixto en negrita y cursiva
También podemos combinar formatos de texto, como negrita y cursiva, por ejemplo, para diferentes atributos.
'Nombre: <b>' || "DENOMINACI" || '</b><p>Código: <i>' || "CODE" || '</i>'

Ejemplo 5: Colores diferentes en función de condición
Una opción más avanzada, es imponer una condición en una sentencia CASE para aplicar un estilo, en este caso color, a uno o varios atributos.
CASE WHEN "AREA"/10e7 > 100 THEN '<span style="color:red;font-weight:bold">' || "DENOMINACI" || '</span>' WHEN "AREA"/10e7 > 50 THEN '<span style="color:orange">' || "sigla" || '</span>' ELSE '<span style="color:green">' || "DENOMINACI" || '</span>' END

Ejemplo 6: Diferentes fuentes para partes de la etiqueta
Otro ejemplo es aplicar diferentes tipos de fuente diferenciando atributos dentro de la etiqueta.
'<span style="font-family: INK FREE; font-weight: bold">' || "den_uts" || '</span>' || '<p><span style="font-family: Comic Sans MS; font-size: 9pt; color: #555555">' || "sigla" || '</span>'

Debemos de mencionar una característica importante, y es que el formato HTML también funciona con etiquetas a lo largo de líneas curvas, ampliando aún más las posibilidades cartográficas sin necesidad de colocarlas manualmente.
Tutor de los cursos de QGIS, QGIS avanzado, QGIS aplicado a Urbanismo y Catastro, PostGIS, Teledetección con QGIS y Google Earth Engine, PostGIS y ArcGIS. Licenciado en Geografía y Master en SIG y Ordenación del Territorio. Echa un vistazo a todos nuestros cursos de SIG online.