El gancho del signo radical √ y la barra que lo cruza por arriba nacieron con 112 años de diferencia. El gancho a secas apareció impreso en 1525, en Die Coss de Christoff Rudolff; fue Descartes quien en 1637 lo unió a la barra superior (el vínculo) para formar el símbolo que se usa hoy. La barra de fracción es aún más antigua: se atribuye al matemático magrebí al-Hassar, del siglo XII, y llegó a Europa de la mano de Fibonacci. LaTeX sigue ensamblando por separado esas piezas nacidas por separado. Esta página recorre fracciones, raíces y exponentes partiendo de un hecho: \frac es \over por debajo. Trata el reparto de papeles entre \dfrac, \tfrac, \cfrac, \binom y \genfrac, cuándo elegir \nicefrac o \sfrac, y qué hacer ante los síntomas reales: una fracción que sale demasiado pequeña, un índice de raíz mal colocado.
\frac es \over con llaves alrededor
\frac pertenece al núcleo de LaTeX; no hace falta amsmath. La definición está a la vista en la línea 12700 de latex.ltx: \DeclareRobustCommand\frac[2]{{\begingroup#1\endgroup\over#2}}. Leída en voz alta dice: envuelve todo en { }, encierra el numerador en \begingroup … \endgroup y coloca entre ambos la primitiva de TeX \over. Por eso \frac{a+b}{c} y {a+b \over c} producen la misma salida. Medido en TeX Live 2024 a 10pt con Computer Modern, ambas cajas dan exactamente 24,19968pt de ancho, 13,70952pt de alto y 6,85951pt de profundidad.
¿Por qué, entonces, se repite tanto «usa \frac, no \over»? La diferencia son las llaves. \over es una primitiva y se traga como numerador todo lo que queda a su izquierda dentro del grupo actual. Por eso {x + y \over 2} no da «x más y medios» sino (x+y)/2, mientras que x + \frac{y}{2}, escrito con la misma intención, da correctamente x + y/2. \frac evita ese accidente de raíz, al recibir el numerador como argumento explícito. Además, dos \over en un mismo grupo dejan a TeX sin poder decidir cuál va primero: se detiene con ! Ambiguous; you need another { and }.
% same shape in the source, two different formulas
\[
{x + y \over 2} \qquad x + \frac{y}{2}
\]
% error: Ambiguous; you need another { and }.
% \[ 1 \over 2 \over 3 \]Cargar amsmath deja esta política escrita en el código. amsmath.sty guarda primero la primitiva con \@saveprimitive\over\@@over y a continuación sustituye \over, \atop y \above (y sus formas …withdelims) para que su uso emita Package amsmath Warning: Foreign command \over; \frac or \genfrac should be used instead. Después redefine el propio \frac, en la línea 234, como {{\begingroup#1\endgroup\@@over#2}}, para que llame al \over auténtico que había apartado. Efecto colateral: el antiguo {n \choose k} dispara el mismo aviso a través de \atopwithdelims. Es una advertencia, no un error, así que la salida se genera igual, pero la corrección correcta es \binom.
Por qué la fracción sale pequeña: \dfrac y \tfrac
Porque \frac cambia de tamaño por su cuenta según el estilo en el que cae. Dentro de $ … $ en texto corriente (estilo de texto) se compone pequeño para no romper la altura de línea; dentro de \[ … \] (estilo display) se compone grande y holgado. Al medir la misma \frac{a+b}{c}, la versión display da 24,19968pt de ancho y 13,70952pt de alto, y la de texto 16,39322pt y 8,79842pt: alrededor de una mitad más. Para desactivar esa decisión automática están \dfrac (siempre tamaño display) y \tfrac (siempre tamaño de texto) de amsmath, que no son más que alias de \genfrac: se definen como \genfrac{}{}{}0 y \genfrac{}{}{}1. La medición lo confirma: un \tfrac dentro de un display sale idéntico a un \frac en texto hasta la cienmilésima de punto.
% preamble: \usepackage{amsmath}
Small in running text: $\frac{a+b}{c}$, forced large: $\dfrac{\partial f}{\partial x}$.
\[
\frac{a+b}{c} \qquad \tfrac{a+b}{c} \qquad \dfrac{1}{1 + \dfrac{1}{x}}
\]Al anidar, el asunto se vuelve más apremiante. TeX solo tiene cuatro estilos —display, texto, script y scriptscript— y el numerador y el denominador de una fracción se componen siempre un escalón por debajo. Por eso apilar \frac encoge el tipo display → texto → script → scriptscript, y toca fondo en el cuarto nivel. La medición lo corrobora: \frac{1}{2} mide 7,40001pt de ancho en estilo display, 6,38612pt en estilo de texto, 5,80283pt en estilo script… y también 5,80283pt en scriptscript. El tercer y el cuarto nivel son del mismo tamaño; ya no hay adónde encoger. Para entonces, claro, hace rato que no se lee. Para mantener todos los niveles iguales, apila \dfrac o usa \cfrac, de la sección siguiente.
\frac— la opción por defecto. Cuando quieras el tamaño natural, dejado al contexto. No requiere paquete.\dfrac— cuando una fracción en texto corrido deba mantenerse a tamaño completo en vez de comprimirse, o cuando todos los niveles de un anidamiento deban ser iguales. Ensancha la altura de línea; una página llena de ellas hace saltar la interlínea.\tfrac— cuando solo una fracción dentro de un display deba quedar compacta. Va bien para fracciones en coeficientes y junto a los índices.\cfrac— solo para fracciones continuas. El tamaño no cambia por muchos niveles que haya.
Fracciones continuas: \cfrac y su argumento [l] / [r]
Para las fracciones continuas se usa \cfrac, de amsmath. Anidar \frac encoge nivel a nivel, como mostró la sección anterior; \cfrac compone cada nivel a tamaño display, así que el tipo no cambia por muchos niveles que apiles. La definición de la línea 913 de amsmath.sty cuenta el mecanismo entero: \DeclareRobustCommand{\cfrac}[3][c]{{\displaystyle\frac{\strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}\kern-\nulldelimiterspace}. Declara \displaystyle de forma explícita, iguala la altura de todos los niveles con un \strut y anula con el \kern-\nulldelimiterspace final el hueco que queda a la derecha de la barra.
Como indica el [3][c] de esa definición, \cfrac toma primero un argumento opcional de alineación, con c (centrado) por defecto. \cfrac[l] alinea el numerador a la izquierda y \cfrac[r] a la derecha. El truco es sencillo: con r inserta un \hfill antes del numerador y con l, después. En una fracción continua el denominador se alarga a medida que se desciende, de modo que la barra cambia de ancho en cada nivel; [l] es lo que alinea los numeradores por el borde izquierdo.
% preamble: \usepackage{amsmath}
\[
x = 1 + \cfrac{1}{2 + \cfrac{1}{2 + \cfrac{1}{2 + \cdots}}}
\qquad
\cfrac[l]{1}{2 + \cfrac[l]{1}{2 + \cfrac[l]{1}{2}}}
\]Coeficientes binomiales: \binom es una fracción con barra de 0pt
\binom{n}{k} (amsmath) compone el coeficiente binomial «n sobre k» como una pila vertical sin barra dentro de paréntesis. Que no se dibuje barra no se debe a un tratamiento especial, sino a que es una fracción cuyo grosor de barra vale 0pt. La línea 240 de amsmath.sty dice \DeclareRobustCommand{\binom}{\genfrac()\z@{}}: un \genfrac con ( y ) como delimitadores, \z@ (o sea, 0pt) como grosor de la barra y estilo vacío, para que siga al contexto. Si quieres fijar el tamaño están \dbinom (siempre display) y \tbinom (siempre texto), que igualmente no son más que \genfrac(){0pt}0 y \genfrac(){0pt}1.
\genfrac es el comando general sobre el que se construyen todos los anteriores, y toma seis argumentos: \genfrac{delimitador izquierdo}{delimitador derecho}{grosor de barra}{estilo}{numerador}{denominador}. El cuarto, el estilo, es un entero 0–3 que selecciona \displaystyle, \textstyle, \scriptstyle y \scriptscriptstyle en ese orden; déjalo vacío para seguir al contexto. Así, \genfrac[]{1pt}{0}{a}{b} da una fracción entre corchetes con una barra gruesa de 1pt, siempre a tamaño display. Esta es la salida de emergencia cuando necesitas un aspecto que los comandos estándar no ofrecen. La grafía antigua {n \choose k} provoca la advertencia de amsmath vista antes: sustitúyela por \binom.
% preamble: \usepackage{amsmath}
\[
\binom{n}{k} = \frac{n!}{k!\,(n-k)!}
\qquad \dbinom{n}{k} \qquad \tbinom{n}{k}
\qquad \genfrac[]{1pt}{0}{a}{b}
\]\sqrt y raíces n-ésimas: el índice cabalga sobre \root … \of
\sqrt{contenido} es un comando del núcleo de LaTeX; no hace falta amsmath. El radical y la barra que sube hacia su derecha (el vínculo) se estiran automáticamente hasta la altura y la anchura del contenido. Para una raíz n-ésima se pasa el índice como argumento opcional entre corchetes: \sqrt[3]{x+y}. Son dos implementaciones distintas. La línea 12701 de latex.ltx dice \DeclareRobustCommand\sqrt{\@ifnextchar[\@sqrt\sqrtsign} —si sigue un [, va a \@sqrt; si no, al glifo desnudo \sqrtsign— y la línea 12702, \def\@sqrt[#1]{\root #1\of}, encamina el caso con índice por \root … \of. El índice se compone en \scriptscriptstyle, con un hueco de \mkern5mu, y se eleva 0,6 veces la altura del signo. El gancho de Rudolff y la barra de Descartes nacieron separados, y la implementación aún lo delata.
Conocido el mecanismo, la queja clásica cobra sentido: con un radicando alto, el índice acaba en un sitio ridículo. Se eleva en proporción a la altura del signo radical, de modo que cuanto más alto es el contenido, más se aleja hacia la izquierda del signo. amsmath ofrece \leftroot{n} y \uproot{n} para ajustarlo, escritos justo antes del índice, como en \sqrt[\leftroot{2}\uproot{3}\beta]{x}. La unidad es mu (unidad matemática, 1/18 de em). Medida, la caja de \sqrt[3]{x} tiene 8,00272pt de alto; con \uproot{10} se estira hasta 12,14214pt. \leftroot, en cambio, no altera nunca la anchura: \r@@t, en amsmath.sty, inserta \mkern-\leftroot@ mu y \mkern\leftroot@ mu como par que se cancela, así que el avance no cambia y solo el índice se desplaza a los lados. Recurre a ellos únicamente cuando el resultado se vea realmente mal; la colocación por defecto suele bastar.
% \sqrt is core LaTeX; \leftroot and \uproot need amsmath
\[
\sqrt{x^2 + y^2} \qquad \sqrt[3]{x+y} \qquad \sqrt[n]{a}
\qquad \sqrt[\leftroot{2}\uproot{3}\beta]{\frac{a}{b}}
\]Exponentes y ! Double superscript
Los exponentes son superíndices y se escriben con el acento circunflejo ^: x^2 es «x al cuadrado». Es una función del núcleo, así que no requiere paquete. La trampa está en los exponentes de más de un carácter, porque ^ solo recoge el único token que le sigue. x^10 se compone como «x a la primera» seguido de un 0 suelto, y como no se emite ningún error, cuesta detectarlo. Ponle siempre llaves: x^{10}. En cambio, dos superíndices sobre la misma base, como en x^2^3, sí detienen la compilación con ! Double superscript., y TeX ofrece amablemente su propia lectura: I treat x^1^2 essentially like x^1{}^2. Si de verdad quieres un exponente doble, anídalo: x^{2^3}. Poner subíndice y superíndice en la misma letra, y las unidades del espaciado matemático, corresponden a la página aparte «Índices y espaciado».
% braces decide the scope; x^10 is x-to-the-first followed by 0
\[
x^{10} \qquad x^{2^3} \qquad
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
\]Fracciones con barra oblicua: \nicefrac y \sfrac en texto corrido
Si solo quieres decir «unos 3/4 de hora» en texto corrido, una fracción oblicua pequeña altera la línea mucho menos que una pila vertical. El veterano es \nicefrac{a}{b}, del paquete nicefrac, en uso desde 1998 como parte del conjunto units. La opción más reciente es \sfrac{a}{b}, del paquete xfrac, que pertenece a los l3packages de LaTeX3; la copia incluida en TeX Live 2024 lleva fecha 2024-02-13. La propia descripción de nicefrac en CTAN dice que el paquete xfrac ofrece sus mismas prestaciones de forma más limpia, así que para documentos nuevos \usepackage{xfrac} con \sfrac es el valor seguro por defecto.
La diferencia aparece al medir. En texto corrido (modo texto), la caja de \sfrac{3}{4} mide 9,00314pt de ancho con 0,13495pt de profundidad, mientras que \nicefrac{3}{4} mide 11,30565pt de ancho con 2,5pt de profundidad. \sfrac recurre a las cifras de numerador y denominador reales de la fuente, así que es más estrecho y apenas baja de la línea base: justo por eso altera menos la interlínea. En modo matemático ($ … $), en cambio, ambas cajas salieron idénticas, 11,30565pt de ancho por 2,5pt de profundidad: la ventaja de \sfrac es una ventaja en el texto. El reparto es sencillo: \frac o \dfrac para las fracciones que quieras apiladas, y \sfrac para las que deban quedar pequeñas dentro de una frase (\nicefrac si un documento existente ya lo usa).
% \usepackage{nicefrac} (the older one)
It takes about \nicefrac{3}{4} of an hour.
% \usepackage{xfrac} (recommended for new documents)
That is roughly \sfrac{1}{2} of the total, or $\sfrac{1}{2}$ in math mode.| Comando | Paquete necesario | Qué produce |
|---|---|---|
\frac{a}{b} | ninguno (núcleo de LaTeX) | fracción con barra; el tamaño sigue al contexto; por dentro es \over |
\dfrac{a}{b} | amsmath | siempre a tamaño display; alias de \genfrac{}{}{}0 |
\tfrac{a}{b} | amsmath | siempre a tamaño de texto; alias de \genfrac{}{}{}1 |
\cfrac{a}{b} | amsmath | fracción continua; todos los niveles iguales; [l] / [r] alinean el numerador |
\binom{n}{k} | amsmath | binomial sin barra entre paréntesis; también \dbinom y \tbinom |
\genfrac | amsmath | la forma general: delimitadores, grosor de barra y estilo en seis argumentos |
\over | ninguno (primitiva de TeX) | toma como numerador todo lo que hay a su izquierda en el grupo; avisa bajo amsmath |
\sqrt{x} | ninguno (núcleo de LaTeX) | raíz cuadrada; \sqrt[n]{x} para la raíz n-ésima; ajusta el índice con \leftroot / \uproot (amsmath) |
\nicefrac{a}{b} | nicefrac | fracción oblicua pequeña a/b; del conjunto units de 1998 |
\sfrac{a}{b} | xfrac | fracción oblicua pequeña; en modo texto usa las cifras propias de la fuente y apenas altera la línea |