La tiza no se puede escribir en negrita. Por eso, en las aulas de mediados del siglo XX, los matemáticos empezaron a repasar ciertos trazos una segunda vez: la línea duplicada hacía las veces de negrita. Esa costumbre de pizarra acabó grabada en tipos de imprenta con el nombre de negrita de pizarra, de la que descienden los ℝ, ℕ y ℤ impresos. LaTeX ofrece cuatro alfabetos ornamentales: la caligráfica \mathcal, la script \mathscr, la fraktur \mathfrak y la negrita de pizarra \mathbb. Lo incómodo es que \mathbb, el más solicitado, no viene incorporado, mientras que \mathcal, que sí lo está, acepta una letra minúscula sin protestar y compone en silencio un símbolo completamente distinto. Esta página sirve para distinguir los cuatro y usarlos sin tropiezos.
\mathcal, \mathscr, \mathfrak, \mathbb: las diferencias
Los cuatro solo se diferencian en qué fuente invocan y en cuánto del alfabeto contiene realmente esa fuente. Y aquí está el eje de toda la página: \mathcal{A} no es un comando que convierta la A en una letra caligráfica. Lo único que cambia es la familia de fuentes matemáticas vigente sobre su argumento; la posición del carácter (la casilla) queda intacta. La A sigue siendo la instrucción «casilla 65 de la fuente actual», solo que dirigida ahora a otra fuente, y se compone lo que haya en esa casilla. Casi todos los accidentes con estos cuatro alfabetos nacen de ese único hecho.
| Comando | Aspecto | Paquete necesario | Caracteres presentes |
|---|---|---|---|
\mathcal | mayúsculas caligráficas fluidas | ninguno: incorporado | solo mayúsculas A–Z |
\mathscr | script formal muy inclinada | mathrsfs (o eucal) | solo mayúsculas A–Z |
\mathfrak | letra gótica angulosa | amssymb o amsfonts | mayúsculas, minúsculas y dígitos |
\mathbb | negrita de trazo duplicado | amssymb o amsfonts | solo mayúsculas A–Z (más \Bbbk) |
De la tabla saltan dos asimetrías: solo \mathcal viene incorporado y solo \mathfrak trae minúsculas. Entre ambas explican casi todas las trampas que siguen. Empecemos por la pregunta más buscada: ¿cómo se escribe ℝ?
Cómo escribir ℝ, ℕ y ℤ — y por qué \mathbb necesita amssymb
Añade \usepackage{amssymb} en el preámbulo y escribe $\mathbb{R}$ en el cuerpo: esa es toda la receta. amsfonts da el mismo \mathbb (amssymb carga amsfonts internamente). Si olvidas el paquete, la compilación se detiene con ! Undefined control sequence. LaTeX puro no tiene ninguna negrita de pizarra, así que no es un fallo de configuración sino una decisión de diseño.
\usepackage{amssymb} % gives \mathbb, \mathfrak and \Bbbk
% ...
\[
\mathbb{N} \subset \mathbb{Z} \subset \mathbb{Q}
\subset \mathbb{R} \subset \mathbb{C}
\]¿Por qué no viene incorporado? Por el gusto de Knuth. La negrita de pizarra parece haber nacido en Francia a finales de los años cincuenta y haberse afianzado en el departamento de matemáticas de Princeton a principios de los sesenta; llegó a la imprenta a mediados de esa década, con Analytic Functions of Several Complex Variables de Gunning y Rossi (1965) entre los primeros libros. Knuth, en cambio, prefería la negrita de verdad y dejó fuera a propósito la negrita de pizarra de Computer Modern, el tipo que creó para TeX. El hueco lo llenó la AMS en 1985 con una negrita de pizarra de aire tizoso para AMS-TeX, accesible entonces mediante el comando \Bbb, nombre que aún sobrevive dentro de amsfonts.sty como alias obsoleto redirigido a \mathbb. Como nota al margen sobre gustos: Jean-Pierre Serre usaba negrita de pizarra en sus clases, pero negrita corriente, sin excepción, en lo que publicaba.
\mathbb{R}— los números reales ℝ.\mathbb{C}— los números complejos ℂ.\mathbb{Z}— los números enteros ℤ, del alemán Zahlen («números»); la elección se atribuye a Hilbert y el uso más antiguo conocido en un manual está en el Algèbre de Bourbaki (1947).\mathbb{Q}— los números racionales ℚ.\mathbb{N}— los números naturales ℕ.\mathbb{F}_q— el cuerpo finito de q elementos; el subíndice queda en cursiva corriente.
\mathbb{k} imprime ℸ: para minúsculas, \Bbbk
Nunca entregues una minúscula a \mathbb. Si buscas una k en negrita de pizarra y escribes \mathbb{k}, obtienes, sin aviso ni error, la letra hebrea dálet ℸ. Es consecuencia directa del principio anterior: la k sigue siendo la instrucción «casilla 107», esa instrucción se entrega a la fuente msbm, y lo que ocupa allí esa casilla es \daleth. Por lo mismo, \mathbb{a} sale como la G invertida ⅁ (\Game) y \mathbb{1} como ⊮ (\nVdash). Todo ello compila limpiamente, de modo que nada te avisa hasta que miras el PDF.
% lowercase blackboard bold is its own command, not \mathbb{k}
\[
\Bbbk = \overline{\Bbbk}, \qquad V \otimes_{\Bbbk} W
\]La forma correcta es \Bbbk. amssymb ofrece la k minúscula en negrita de pizarra como símbolo independiente, justo lo que necesitan los textos de álgebra que llaman k a un cuerpo. Fíjate en que no admite argumento: \Bbbk, no \mathbb{k}. Para cualquier otra minúscula o dígito —un 1 o un 2 en negrita de pizarra, una h minúscula— hace falta otro paquete de fuentes. dsfont da las mayúsculas más h, k y el dígito 1 mediante \mathds; bbm aporta minúsculas y dígitos mediante \mathbbm; bbold redefine el propio \mathbb y cubre un rango mucho mayor. Este último choca con amssymb, así que, si ambos conviven en el documento, decide primero cuál se queda con \mathbb.
\mathcal solo tiene mayúsculas: \mathcal{a} imprime ⊣
Limita el argumento de \mathcal a las mayúsculas A–Z. Escribir \mathcal{a} no produce una a caligráfica deforme, sino un ⊣ (\dashv) sin relación alguna, y ni siquiera una advertencia. \mathcal está definido como \DeclareSymbolFontAlphabet{\mathcal}{symbols}, es decir, un cambio a la fuente de símbolos matemáticos cmsy10: esta aloja las mayúsculas caligráficas en las casillas 65 a 90, mientras que las posiciones de minúsculas y dígitos guardan símbolos completamente distintos. Y como todas las casillas de esa fuente están ocupadas, TeX nunca llega a decir «ese carácter no existe»: compone en silencio el vecino que encuentra.
| Lo que escribes | Lo que aparece | Símbolo alojado en esa casilla |
|---|---|---|
\mathcal{a} | ⊣ | \dashv |
\mathcal{b} | ⌊ | \lfloor |
\mathcal{g} | } | \rbrace |
\mathcal{o} | ≀ | \wr |
\mathcal{1} | ∞ | \infty |
\mathcal{2} | ∈ | \in |
Por la misma lógica, \mathcal{Hom} no compone la palabra «Hom», ni tres letras caligráficas: solo la H lo es, y la o y la m salen como ≀ y ⇕. Recuerda que el argumento de un alfabeto ornamental se trata como una sucesión de símbolos, no como una palabra. La regla práctica es simple: pásale a \mathcal siempre una sola mayúscula. \mathcal{A} para una familia de conjuntos, \mathcal{F} para la transformada de Fourier, \mathcal{B} para una σ-álgebra, \mathcal{O} para un anillo de enteros: para eso está.
Diferencia entre \mathcal y \mathscr: cargar mathrsfs
\mathcal es el alfabeto caligráfico de la cmsy10 incorporada; \mathscr es la script de rsfs10, que llega con \usepackage{mathrsfs}. Puestas una junto a otra son claramente dos manos distintas: \mathcal es ancha y de ornamentación discreta; \mathscr se inclina mucho hacia la derecha, con fuerte contraste entre trazos gruesos y finos: una script formal de verdad, la habitual para la \mathscr{L} de una transformada de Laplace o de un lagrangiano. Si quieres dos alfabetos ornamentales distinguibles en un mismo artículo, esta pareja es la menos problemática.
\usepackage{mathrsfs} % adds \mathscr (RSFS); \mathcal is left alone
% ...
\[
\mathcal{F} \subset \mathcal{P}(X), \qquad
\mathscr{L}\{f\}(s) = F(s)
\]RSFS es la abreviatura de Ralph Smith’s Formal Script. Ralph Smith, físico de la Universidad de California en San Diego, la dibujó en Metafont y publicó la versión 1.0 en octubre de 1991. En el README que acompaña a la fuente explica que imitó de cerca una script formal diseñada por R. Hunter Middleton, descendiente a su vez de las escrituras spenceriana e inglesa (Copperplate) que dominaron el siglo XVIII. Ese mismo README recoge su deseo de añadir algún día las minúsculas y convertirla en una fuente de texto, revisión que nunca llegó. Por eso, todavía hoy, escribir \mathscr{a} deja esto en el registro: Missing character: There is no a in font rsfs10!
Esa línea es, en realidad, una buena noticia. Donde \mathcal sustituye en silencio por otro símbolo, \mathscr declara honestamente el carácter que falta: rsfs10 solo contiene mayúsculas, de modo que TeX puede decirlo. Detrás de \mathscr hay además una segunda familia, la Euler Script que invoca el paquete eucal. Euler la dibujó Hermann Zapf en 1980-81 por encargo de la AMS, y trata de recoger la escritura de un matemático en la pizarra: vertical en lugar de inclinada. Su carácter no se parece en nada a la mano clásica y muy tumbada de RSFS.
| Forma de cargarlo | Lo que obtienes | Tipo obtenido |
|---|---|---|
\usepackage{mathrsfs} | \mathscr (\mathcal intacto) | RSFS |
\usepackage[scr]{rsfso} | \mathscr | RSFS con inclinación más suave |
\usepackage[mathscr]{eucal} | \mathscr (\mathcal intacto) | Euler Script |
\usepackage{eucal} | \mathcal reemplazado | Euler Script |
\usepackage{calrsfs} | \mathcal reemplazado | RSFS |
Las trampas están en la mitad inferior de la tabla. calrsfs y un eucal sin opciones sobrescriben el propio \mathcal. Buena parte de las consultas del tipo «mi \mathcal cambió de forma de repente» o «las letras no coinciden con la compilación de mi coautor» se remontan a que alguien añadió uno de estos paquetes. Además, si cargas a la vez mathrsfs y eucal con la opción mathscr, el último cargado se queda con \mathscr y obtienes un tipo que no elegiste. Quédate con una sola familia de script. No hay otra defensa fiable.
Por qué \mathfrak es el alfabeto de los ideales y las álgebras de Lie
\mathfrak también llega con amssymb (o amsfonts), pero es el único de los cuatro que trae mayúsculas, minúsculas y dígitos. Y es también el único cuyo trabajo diario recae en las minúsculas. Los ideales se escriben \mathfrak{p} para uno primo, \mathfrak{m} para uno maximal, \mathfrak{a} en general; las álgebras de Lie son \mathfrak{g}, \mathfrak{h}, \mathfrak{sl}, y así se distinguen de un vistazo de los grupos de Lie G y H correspondientes.
¿Por qué gótica? La razón está en la historia de la imprenta, no en las matemáticas. En la Alemania del siglo XIX, los libros en alemán se componían normalmente en fraktur. En 1876, Richard Dedekind, en los suplementos que escribió para la tercera edición de las Vorlesungen über Zahlentheorie de Dirichlet, sustituyó los números ideales de Kummer por conjuntos concretos de números y los llamó ideales. La fraktur era sencillamente el alfabeto contrastante que un cajista alemán tenía a mano, así que los ideales se escribieron en minúscula gótica. Mucho después de que la imprenta alemana abandonara ese tipo, solo la notación del álgebra mantiene viva la costumbre.
\usepackage{amsmath,amssymb} % amssymb: \mathfrak — amsmath: \operatorname
% ...
\[
\mathfrak{g} = \operatorname{Lie}(G), \qquad
\mathfrak{p} \subset \mathfrak{m} \subset \mathcal{O}
\]La fraktur que invoca amssymb no es, por cierto, un tipo del siglo XIX, sino la Euler Fraktur (fuente eufm10), dibujada por Hermann Zapf como parte de AMS Euler. La legibilidad mejora mucho, pero sigue siendo un alfabeto recargado. Si acumulas \mathfrak dentro de subíndices, o en cualquier sitio donde el cuerpo sea pequeño, \mathfrak{p} deja de distinguirse de \mathfrak{q}. Donde el tamaño baje, conviene pasar a otro símbolo o nombrar la letra una vez en el texto corrido.
Con XeLaTeX y LuaLaTeX: unicode-math y \symbb
Con XeLaTeX o LuaLaTeX y unicode-math, los cuatro alfabetos ornamentales proceden de una única fuente matemática OpenType y se invocan con \symbb, \symcal, \symscr y \symfrak. Como lo que se selecciona es el propio carácter Unicode, casi todas las trampas de esta página se desvanecen: \symbb{k} sí da 𝕜 y no hay ningún \Bbbk que recordar. Ahora bien, lo que obtengas depende de cuánto contenga la fuente matemática elegida: que \symcal y \symscr puedan verse distintos, por ejemplo, es una propiedad de la fuente. La elección según el motor se trata en la página «Fuentes matemáticas».
% XeLaTeX or LuaLaTeX only
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
% ...
\[
\symbb{R}, \quad \symcal{F}, \quad \symscr{L},
\quad \symfrak{g}, \quad \symbb{k}
\]