Copyright ©, marca registrada ®, calderón ¶, signo de sección §, por mil ‰, grado Celsius ℃: la idea heredada es que componer estos símbolos de texto en LaTeX exige \usepackage{textcomp}. Eso dejó de ser cierto con la versión del núcleo del 2 de febrero de 2020. Todo el repertorio de la codificación TS1 (Text Companion) se incorporó al propio LaTeX, y en TeX Live 2024 \textcopyright, \texttrademark y \textcelsius se imprimen sin una sola línea de paquete en el preámbulo. De hecho, textcomp.sty se ha convertido en un paquete que no define ningún símbolo: solo opciones. Esta página comprueba compilando qué es ya estándar y qué sigue necesitando un paquete, y reúne el resto en tablas: la familia de \S y \P, los palos de la baraja ♠ ♥ ♦ ♣, una tabla de números \ding de pifont obtenida por medición, los iconos de fontawesome5, y los números japoneses encerrados en círculo y los glifos variantes.
Ya no hace falta \usepackage{textcomp}: TS1 entró en el núcleo en 2020
Compón © ® ™ ℠ € ¢ ¥ £ ‰ ° ℃ • ¶ § ¦ ♪ ℮ ¤ № ※ ‽ Ω µ ₩ ₤ ƒ ₦ en TeX Live 2024 sin cargar ningún paquete: no aparece ni un aviso ni un error. Abre textcomp.sty y verás por qué. Empieza con \ProvidesPackage{textcomp}[2020/02/02 v2.0n], y su cuerpo son solo declaraciones de opciones: full, almostfull, euro, safe, error, warn, info, quiet, force. No queda en él ni una definición de símbolo; todas se mudaron a latex.ltx.
La mudanza no fue mero orden: arregló la salida. Antes de 2020, los valores por defecto de \textbullet, \textdagger, \textsection, \textparagraph, \textperiodcentered y compañía no eran TS1 sino OMS: la fuente de símbolos matemáticos. Es decir, el § del texto corrido venía prestado a escondidas de las matemáticas. La diferencia se mide: en un documento compuesto en Helvetica, \textsection mide 5,55994 pt (la § propia de Helvetica) mientras que \textlegacysection, que reproduce el comportamiento antiguo, mide 4,44447 pt (la § matemática de Computer Modern). Con \textbullet la brecha es mayor: 3,5 pt frente a 5,00002 pt. Quedan salidas de emergencia: \UseLegacyTextSymbols restaura en bloque el comportamiento antiguo, y existen comandos por símbolo como \textlegacybullet.
\documentclass{article}
% no \usepackage{textcomp} needed since the 2020-02-02 kernel
\begin{document}
Foo\textregistered{} is a trademark of Bar Inc.\texttrademark
\textcopyright\ 2026 \quad 40\textperthousand \quad 25\textcelsius \quad 90\textdegree
\end{document}Componer ©, ® y ™: \copyright frente a \textcopyright
En el texto corrido ambos imprimen el mismo ©. La diferencia está en qué ocurre en modo matemático. La definición en latex.ltx es \DeclareRobustCommand{\copyright}{\ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}: \copyright mira el modo y conmuta por su cuenta, mientras que \textcopyright es solo de texto. \pounds (£) está construido igual y dentro de una fórmula pasa a \mathsterling. En la práctica: en el cuerpo sirve cualquiera, y en un lugar donde no se ve el contexto —dentro de una macro, por ejemplo— \copyright es el más seguro.
También conviene mirar la implementación por defecto de \texttrademark. latex.ltx sigue llevando \DeclareTextCommandDefault{\texttrademark}{\textsuperscript{TM}}, y una definición de \textregistered construida sobre \textcircled{...}. Dicho de otro modo, en un entorno de fuentes que no llega a TS1, ™ no es un glifo real sino una falsificación hecha con una T y una M en superíndice, y ® un compuesto con un círculo superpuesto a una letra. Desde 2020 el valor por defecto es TS1, así que rara vez se ve; pero elige una tipografía sin los glifos TS1 y la vieja implementación reaparece. Ten en cuenta además que una palabra de control se come el espacio que la sigue: dentro de una palabra escribe \textregistered{} con llaves vacías, o añade \ .
| Comando | Símbolo | Significado | Notas |
|---|---|---|---|
\textcopyright | © | copyright | \copyright sirve también en modo matemático |
\textregistered | ® | marca registrada | sin TS1 recae en un compuesto \textcircled |
\texttrademark | ™ | marca comercial | el respaldo es una falsificación: \textsuperscript{TM} |
\textservicemark | ℠ | marca de servicio | para servicios en vez de bienes, sobre todo en EE. UU. |
\texteuro | € | euro | para una forma uniforme, ver \euro de eurosym más abajo |
\textcent | ¢ | centavo | \textsterling da £ y \textyen da ¥ |
\textperthousand | ‰ | por mil | por diez mil ‱ es \textpertenthousand |
\textdegree | ° | grado | junto a un número, \ang / \qty de siunitx son más seguros |
\textcelsius | ℃ | grado Celsius | la ligadura ℃; Computer Modern sí la tiene |
\textnumero | № | signo numeral | el «n.º» del uso ruso y francés |
\textmusicalnote | ♪ | corchea | para texto corrido; la edición musical es otra cosa |
\textbrokenbar | ¦ | barra partida | \textbardbl da la doble barra ‖; ninguna es la de matemáticas |
\textestimated | ℮ | signo estimado | la marca «e» de los envases de la UE |
\textinterrobang | ‽ | interrobang | la ligadura ?!; está en cmr, falta en muchas fuentes de texto |
\textcircled{a} | ⓐ | letra encerrada | un compuesto; Computer Modern superpone un círculo |
§, ¶ y †: \S, \P y \dag también funcionan en modo matemático
Estos cuatro son raros entre los símbolos porque comprueban el modo por sí mismos. Las definiciones de latex.ltx se leen tal cual: \DeclareRobustCommand{\S}{\ifmmode\mathsection\else\textsection\fi} y \DeclareRobustCommand{\P}{\ifmmode\mathparagraph\else\textparagraph\fi}. Por eso pasan igual una referencia legal \S 3 en el texto y una llamada de nota x^\dag dentro de una fórmula. \dag (†) y \ddag (‡) están construidos igual y en matemáticas pasan a \dagger y \ddagger. Ojo: \S es el signo de sección, no un capítulo: en la cita jurídica y en los documentos normativos es la marca habitual de un artículo numerado, y duplicarlo como \S\S significa por convención varios de ellos.
| Comando | Símbolo | Texto / matemáticas | Notas |
|---|---|---|---|
\S | § | ambos | signo de sección; \textsection es el sinónimo solo de texto |
\P | ¶ | ambos | calderón; \textparagraph da el mismo |
\dag | † | ambos | daga; en matemáticas pasa a \dagger |
\ddag | ‡ | ambos | doble daga; \ddagger en matemáticas |
\copyright | © | ambos | en matemáticas vuelve al texto mediante \nfss@text |
\pounds | £ | ambos | en matemáticas pasa a \mathsterling, la £ cursiva |
Cómo leer Symbol \textohm not provided by font family cmr in TS1 encoding.
El aviso informa de que el símbolo no está en tu fuente de texto y de que LaTeX lo ha tomado prestado de otra. TS1 tiene unas 128 posiciones, y solo una minoría de fuentes de texto las llena todas. Por eso LaTeX registra, con \DeclareEncodingSubset, qué parte de TS1 implementa cada familia. En latex.ltx se leen los valores reales: Computer Modern (cmr) está en el subconjunto 0, el completo, Latin Modern (lmr) en el 1, Helvetica (phv) y Courier (pcr) en el 5 —con un comentario que señala que allí blank, interrobang y ohm son tofu— y una familia desconocida está en el 9, el mínimo. Cuando el símbolo pedido queda fuera del subconjunto, LaTeX cambia a una familia sustituta, lo compone allí y emite este aviso.
Y aquí, por fin, textcomp se gana el sueldo. Por defecto este informe ni siquiera es un aviso: es un \@latex@info que solo llega al registro. Añade \usepackage[warn]{textcomp} y se convierte en un aviso de verdad; [error] lo eleva a error y [quiet] lo silencia del todo. Al revisar un documento cuya tipografía se ha cambiado, una pasada con [warn] muestra de un vistazo qué símbolos se están componiendo con una fuente prestada. De paso: \textbackslash y \textbar no pertenecen a TS1 en absoluto: su valor por defecto es OMS, la fuente de símbolos matemáticos, y solo cargando T1 se obtiene el carácter de la fuente de texto. \textasciitilde va aún más lejos: su implementación por defecto es un compuesto que pone una tilde sobre un carácter vacío.
% textcomp defines no symbols any more — it only sets the reporting policy
\usepackage[warn]{textcomp}
% options: full / almostfull / euro / safe / error / warn / info / quiet / force
%
% Package textcomp Warning: Symbol \textohm not provided by
% (textcomp) font family cmr in TS1 encoding.
% (textcomp) Default family used instead on input line 5.Solo para el signo del euro sigue en servicio un paquete dedicado. \usepackage{eurosym} ofrece \euro, y opciones como official y gen eligen una forma próxima al diseño oficial de la Comisión Europea. Pero extrae el texto de un PDF de TeX Live 2024 que contenga el \euro de eurosym y sale una simple e (mientras que \texteuro devuelve un € de verdad). Puede verse mejor en la página, pero para un documento que deba sobrevivir al copiar y pegar y a las búsquedas, \texteuro es la opción práctica.
Componer los palos ♠ ♥ ♦ ♣ y las formas △ □ ◇
Los palos son símbolos matemáticos del LaTeX estándar y no necesitan paquete: fontmath.ltx contiene cuatro líneas seguidas, de \DeclareMathSymbol{\clubsuit}{\mathord}{symbols}{"7C} hasta \spadesuit, así que basta escribir $\clubsuit$, $\diamondsuit$, $\heartsuit$ y $\spadesuit$ en modo matemático. \triangle (△) vive en la misma dirección. Ahora bien, los palos de Computer Modern son asimétricos: trébol y pica son macizos, corazón y diamante huecos (♣ ♢ ♡ ♠), y un corazón o un diamante relleno sencillamente no existe en el juego estándar. Si quieres cuatro palos homogéneos en modo texto, la respuesta es \ding{168} a \ding{171} de pifont, en la sección siguiente.
Los cuadrados y los rombos son donde más a menudo se equivoca uno de paquete. Las fuentes de TeX Live 2024 lo zanjan. \Box (□) y \Diamond (◇) vienen de latexsym y de su fuente lasy —latexsym.sty contiene \DeclareMathSymbol\Box{\mathord}{lasy}{"32}— y no están en amssymb. Lo que aporta amssymb son \square y \lozenge, con los rellenos \blacksquare y \blacklozenge, de la fuente AMSa. En corto: \Box es de latexsym, \square es de amssymb. La marca de verificación \checkmark y la cruz de Malta \maltese están definidas en amsfonts, que amssymb carga por ti.
| Comando | Símbolo | Paquete | Notas |
|---|---|---|---|
\clubsuit \spadesuit | ♣ ♠ | ninguno | macizos; se usan en modo matemático |
\heartsuit \diamondsuit | ♡ ♢ | ninguno | huecos; no hay versión rellena en el juego estándar |
\triangle | △ | ninguno | distinto de \triangleq (≜) y afines |
\Box \Diamond | □ ◇ | latexsym | necesidad y posibilidad en lógica modal; no es amssymb |
\square \lozenge | □ ◊ | amssymb | versiones rellenas: \blacksquare y \blacklozenge |
\checkmark \maltese | ✓ ✠ | amssymb | definidos en realidad en amsfonts; en modo matemático |
De nuevo, atención a lo que llega al PDF. La fuente lasy que hay detrás de latexsym no lleva tabla de correspondencia Unicode, así que extraer texto de un PDF de TeX Live 2024 con $\Box \Diamond \mho \Join$ devuelve la cadena de dígitos 2 3 0 1. Si tus lectores pueden copiar y buscar en el texto, prefiere \square y \lozenge de amssymb cuando el sentido lo permita. Conviene saber además que latexsym está escrito para hacer \endinput de inmediato, sin hacer nada, si las fuentes AMS ya están instaladas: eso ahorra muchas preocupaciones sobre el orden de carga de paquetes.
\usepackage{amssymb} % \square \lozenge \blacksquare \checkmark
\usepackage{latexsym} % \Box \Diamond \mho \Join
\usepackage{pifont} % \ding{168}--\ding{171}: solid suits in TEXT mode
% ...
Math: $\clubsuit\, \diamondsuit\, \heartsuit\, \spadesuit\, \triangle$
Text: \ding{168}\ding{169}\ding{170}\ding{171}\ding{N} de pifont: una tabla de números comprobada compilando
Los pictogramas —marcas de verificación, tijeras, estrellas, manos que señalan— están reunidos en la fuente Zapf Dingbats, a la que se llega con \usepackage{pifont} y luego \ding{NN}, que selecciona un glifo por su número. Esos números se consultan, no se memorizan; y como las tablas que circulan por internet se contradicen, esta se hizo componiendo 32–126 y 161–254 en TeX Live 2024 y releyendo el resultado con pdftotext. Los más útiles: \ding{51} da ✓ (marca fina), \ding{52} da ✔ (gruesa), \ding{53} da ✕, \ding{55} da ✗ (la equis de papeleta) y \ding{56} da ✘ (la equis gruesa). La estrella ★ es \ding{72}, \ding{43} es ☞, una mano que señala a la derecha, y \ding{164} es ❤, un corazón relleno.
| Forma | Resultado | Rango | Notas |
|---|---|---|---|
\ding{51} \ding{52} | ✓ ✔ | 51–56 | marca fina y gruesa; 53–56 son ✕ ✖ ✗ ✘ |
\ding{43} | ☞ | 42–43 | 42 es la mano hacia la izquierda ☛ |
\ding{72} | ★ | 65–107 | la gran franja de estrellas y flores; ★ es 72 |
\ding{168} | ♣ | 168–171 | en el orden ♣ ♦ ♥ ♠: palos macizos en modo texto |
\ding{164} | ❤ | 161–167 | un corazón relleno; 165–167 son ❥ ❦ ❧ |
\ding{172} | ① | 172–211 | 172–181 dan ①–⑩ y 182–191 dan ❶–❿ |
\ding{213} | → | 212–254 | la franja de flechas; 214 es ↔ y 215 es ↕ |
\dingline{56} | una línea decorativa hecha con ese símbolo | — | \dingfill{NN} es un \hfill relleno de símbolos |
dinglist | lista cuyos marcadores son un dingbat | — | dingautolist incrementa el número en cada elemento |
\Pisymbol{psy}{NN} | un glifo de la fuente Symbol | — | la llamada genérica para fuentes Pi distintas de ZapfDingbats |
\usepackage{pifont}
% ...
\ding{51}\ pass \qquad \ding{55}\ fail \qquad \ding{72}\ starred
\dingline{56} % a rule made of that symbol
\begin{dingautolist}{172} % numbers step: (1) (2) (3) ...
\item first step
\item second step
\end{dingautolist}Los iconos de fontawesome5: \faGithub y \faIcon{github}
Para logotipos de marca e iconos de interfaz —un engranaje, un sobre, un teléfono— carga \usepackage{fontawesome5}. Hay dos formas de invocarlos: un comando dedicado formado poniendo el nombre del icono en camel case con el prefijo fa (\faGithub, \faEnvelope, \faAddressBook), o el genérico \faIcon{github}, que recibe el nombre oficial entre llaves. Existen tres estilos —solid (el relleno por defecto), regular (contorno) y brands (logotipos)— elegidos con un argumento opcional, como en \faIcon[regular]{heart}; los logotipos de marca se tratan como brands automáticamente. Hay una dependencia del motor: pdfLaTeX ofrece el conjunto gratuito (Font Awesome 5 Free), pero el conjunto completo con todos los estilos, y el conjunto Pro de pago, necesitan XeLaTeX o LuaLaTeX.
\usepackage{fontawesome5}
% ...
Source: \faGithub\ github.com/example \quad \faEnvelope\ mail@example
\faIcon{rocket} \quad \faIcon[regular]{heart} % outlined style
\faCog \quad \faCheck \quad \faPythonNúmeros japoneses en círculo y kanji variantes: \ajMaru y \UTF de otf
La composición japonesa pide números en círculo ①②③, numerales en caja, números romanos Ⅰ Ⅱ Ⅲ y los kanji variantes que aparecen en los nombres propios (﨑, 髙, 𠮷). De eso se encarga el paquete otf (japanese-otf): \usepackage{otf} da una familia de comandos que acceden a glifos Adobe-Japan1. Los números en círculo o en caja simplemente toman el número como argumento: \ajMaru{3} es ③, \ajKaku{3} la versión en caja, \ajKuroMaru{3} el blanco sobre negro, \ajRoman{3} es Ⅲ, \ajroman{3} es ⅲ y \ajKakko{3} es (3). Para glifos sin comando propio, se llega por punto de código con \UTF{XXXX} (hexadecimal de cuatro o cinco dígitos) o por CID de Adobe-Japan1 con \CID{número}.
El motor importa. otf es solo para pLaTeX / upLaTeX y presupone la ruta por DVI y dvipdfmx hasta el PDF; no funciona con pdfLaTeX. En LuaLaTeX usa luatexja-otf; en XeLaTeX, zxotf. El propio paquete admite opciones como deluxe (varios pesos), expert (formas que cambian entre composición vertical y horizontal) y jis2004 (formas JIS 2004). Y ten en cuenta que para los números en círculo solos hay una alternativa independiente del motor en la sección anterior: \ding{172} a \ding{181} de pifont producen ①–⑩ y funcionan en un documento pdfLaTeX.
% pLaTeX / upLaTeX only; produce the PDF with dvipdfmx
\documentclass{ujarticle}
\usepackage[deluxe]{otf}
\begin{document}
\ajMaru{1}\ajMaru{2}\ajMaru{3} \quad \ajKakko{1} \quad \ajRoman{3}
\UTF{FA11} % a variant kanji, called by code point
\CID{13706} % or by Adobe-Japan1 CID
\end{document}Resumiendo el reparto: los símbolos occidentales (© ® ™ € § ¶ ‰ ° ℃) son LaTeX estándar; desde 2020 solo necesitas textcomp si quieres los informes de sustitución. Los palos de la baraja y △ también son estándar; □ y ◇ vienen de latexsym, y la familia \square de amssymb. Los pictogramas vienen de \ding en pifont, llamados por número, los iconos de interfaz y marca de fontawesome5, y los números en círculo y kanji variantes japoneses de \ajMaru y \UTF en otf. Solo una cosa se confunde con facilidad, y es el motor: textcomp (es decir, el núcleo) y pifont funcionan en todas partes, fontawesome5 quiere un motor Unicode para todo, y otf queda restringido a pLaTeX / upLaTeX.