Editor y fórmulas

Ocho fórmulas para probar una app de notas con LaTeX

Esta noche tienes que pasar a limpio una página de ecuaciones, y tu teléfono tiene una app de notas con LaTeX, o eso dice. Esa promesa abarca cuatro implementaciones distintas, y la diferencia entre ellas aparece en la tercera fórmula.

Leer la guía
Bloque de fórmula

x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}

La barra va entre las dos partes, no al lado.
Lo que un motor de fórmulas tiene que resolver bien y lo que revisa la prueba
La respuesta rápida

Pega ocho fórmulas de prueba en la app y mira qué devuelve. Fracciones anidadas, una suma con sus límites arriba y abajo, una pmatrix, paréntesis extensibles, un bloque align, una definición por casos con cases, una macro \def y una fórmula química con \ce separan una app de notas con LaTeX de verdad de una que dibuja unas cuantas fracciones en línea. Si devuelve texto plano o una imagen que no se puede editar, no pasa la prueba.

01

Pega estas ocho fórmulas y mira qué devuelve la app

La prueba lleva menos de un minuto y no necesita cuenta. Copia el bloque de abajo en una nota nueva de la app que estés evaluando, fragmento a fragmento o todo a la vez, y compara el resultado con la línea que sigue a cada fragmento. Todos los fragmentos son LaTeX válido que KaTeX renderiza, así que si algo falla, es la app y no la entrada.

Autoprueba de LaTeX en ocho fórmulas
AUTOPRUEBA DE LATEX PARA UNA APP DE NOTAS
Pega un bloque cada vez. Compáralo con la línea CORRECTO.

1. FRACCIONES ANIDADAS
\frac{1}{1 + \frac{1}{1 + \frac{1}{x}}}
CORRECTO: tres barras de fracción apiladas, cada una más corta que la
de fuera y compuesta en un tamaño menor.

2. OPERADOR CON LÍMITES
\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}
CORRECTO: en modo display, el n=1 y el infinito quedan justo debajo y
encima de la sigma, no a su derecha, y la sigma es más alta que el texto
que la rodea.

3. ENTORNO DE MATRIZ
\begin{pmatrix} a & b \\ c & d \end{pmatrix}^{-1} =
\frac{1}{ad - bc} \begin{pmatrix} d & -b \\ -c & a \end{pmatrix}
CORRECTO: dos filas, paréntesis que crecen hasta la altura completa de
la matriz y el -1 elevado arriba a la derecha del paréntesis de cierre.

4. DELIMITADORES EXTENSIBLES
\left( \sum_{i=1}^{n} a_i b_i \right)^2 \le
\left( \sum_{i=1}^{n} a_i^2 \right) \left( \sum_{i=1}^{n} b_i^2 \right)
CORRECTO: cada paréntesis crece hasta la altura de la suma que contiene,
y los dos de cada par se dibujan a la misma altura.

5. ALINEACIÓN
\begin{align}
(a+b)^2 &= a^2 + 2ab + b^2 \\
(a-b)^2 &= a^2 - 2ab + b^2
\end{align}
CORRECTO: un bloque de dos líneas cuyos signos igual quedan en la misma
columna.

6. DEFINICIÓN POR CASOS
f(x) = \begin{cases}
  x^2 & \text{si } x \ge 0 \\
  -x^2 & \text{si } x < 0
\end{cases}
CORRECTO: una sola llave que abarca las dos filas, texto redondo (no
cursiva) en las dos condiciones y las condiciones en su propia columna.

7. DEFINICIÓN DE MACRO
\def\dd#1{\mathrm{d}#1}
\int_0^1 x^2 \dd{x} = \frac{1}{3}
CORRECTO: la macro se expande, así que aparece una d redonda antes de la
x, con 0 y 1 en el signo de integral.

8. QUÍMICA
\ce{H2SO4 + 2NaOH -> Na2SO4 + 2H2O}
CORRECTO: dígitos en subíndice, símbolos de los elementos en redonda y no
como variables en cursiva, y una flecha de reacción completa.

DESPUÉS DE LAS OCHO
- Pon el cursor dentro de una fórmula renderizada y selecciona un carácter.
  Si no puedes, la fórmula es una imagen.
- Cambia el sistema a modo oscuro. Una fórmula que sigue en negro lleva
  un fondo claro incrustado.
- Pon la nota en el tamaño de letra más grande. Una imagen se ve borrosa.
  Una fórmula compuesta sigue nítida.
Descargar archivo de texto

Fíjate en los fallos, no en los aciertos. El fragmento 1 te dice si la app hace composición tipográfica o sustitución de cadenas. Los fragmentos 3 y 6 son donde se detiene un renderizador basado en una tabla corta de sustituciones. El fragmento 7 marca la línea entre un analizador de LaTeX y algo que solo parece LaTeX, porque una app que ignora \def muestra el texto literal o da un error de análisis. El fragmento 8 necesita mhchem, un paquete que se apoya en la gramática matemática básica, así que una app puede pasar los siete primeros y aun así fallar el último.

02

Cuatro cosas que una app puede querer decir con compatibilidad con LaTeX

Dos apps pueden poner LaTeX en su página de funciones y no parecerse en nada. Cada una de las cuatro implementaciones de abajo falla de una forma que se ve desde fuera, sin leer el código fuente de nadie.

NivelCómo funcionaCómo detectarloDónde falla
Subconjunto en líneaUna tabla corta de sustituciones cubre fracciones, superíndices y letras griegas entre signos de dólarEl fragmento 3 vuelve con la palabra pmatrix todavía visible, o en una sola línea seguidaLa primera matriz, integral o definición por casos que escribas
Imagen renderizadaEl LaTeX va a un conversor y vuelve como un mapa de bits o un SVG colocado en la notaNo puedes poner el cursor dentro de la fórmula, y la imagen se ve borrosa con un tamaño de letra mayorEl modo oscuro deja glifos negros sobre una página oscura, y para editar hay que volver a escribir el código
Motor de navegadorUn WebView oculto ejecuta KaTeX o MathJax en JavaScriptLa primera fórmula de una sesión aparece un instante después que el resto de la notaDe 50 a 150 MB de RAM para el WebView, y latencia de arranque antes de esa primera fórmula
Motor nativoLas reglas de cajas y pegamento de TeX se ejecutan en el código de la propia app, sin ningún navegador de por medioLas fórmulas se dibujan cuando la fila entra en pantalla y cambian de color con la apariencia del sistemaLa pregunta pasa a ser la cobertura y no la velocidad, así que prueba los ocho fragmentos de todos modos

Las cifras de la tercera fila vienen del README de SwaTex, que describe así la solución multiplataforma habitual: un WebView oculto que consume de 50 a 150 MB de RAM, latencia de arranque antes de la primera fórmula y ninguna garantía sin conexión. Ese es el precio de reutilizar una biblioteca de JavaScript que la app no escribió. El cuarto nivel cuesta mucho más de construir y saca el navegador de la página.

03

Qué hace distinto un motor de composición nativo

Phrase renderiza las matemáticas con SwaTex, un motor de renderizado matemático compatible con KaTeX escrito íntegramente en Swift, sin JavaScript, sin WebView y sin DOM. Tiene licencia MIT, es público en github.com/PhraseHQ/SwaTex y es una reescritura desde cero en Swift de RaTeX, el renderizador matemático compatible con KaTeX escrito en Rust. SwaTex renderiza todas las fórmulas de las notas con IA de Phrase. Su motor de maquetación aplica las reglas de cajas y pegamento de TeX a partir de las métricas de las fuentes de KaTeX que incluye, no de las API de texto de la plataforma, así que el resultado coincide glifo a glifo con KaTeX y RaTeX.

Una nota de reunión terminada en Phrase: el resumen, el plan de apertura como diagrama de flujo, la fórmula del punto de equilibrio y las tareas.
Una fórmula del punto de equilibrio compuesta por SwaTex, junto a un diagrama de flujo, en una nota de Phrase en el iPhone.

La cobertura es de 1007 de las 1008 entradas de la tabla oficial de compatibilidad de KaTeX. Ese conjunto incluye los entornos pmatrix, align, cases y CD, además de delimitadores extensibles, acentos y macros como \def, \newcommand y \expandafter. La química tiene compatibilidad completa con mhchem mediante \ce y \pu, gracias a una adaptación de su máquina de estados verificada byte a byte frente a RaTeX con un corpus de 253 casos. Los árboles de demostración usan prooftree al estilo de bussproofs para reglas de inferencia y cálculos de secuentes. Los fragmentos 3, 5, 6, 7 y 8 de arriba están todos dentro de ese conjunto.

Las cifras de velocidad de abajo se midieron frente al motor de referencia en Rust con los mismos corpus, en la misma máquina, como mediana de 3 ejecuciones, y las 2541 fórmulas de referencia salen idénticas bit a bit en los dos motores. Todas las cifras se pueden reproducir con los comandos del archivo BENCHMARKS.md del repositorio.

Carga de trabajoRaTeX (Rust)SwaTex
Análisis, maquetación y lista de dibujo41,4 µs/fórmula12,5 µs/fórmula (3,3×)
Lote PNG, 100 fórmulas a 40 px 2×~200 µs/fórmula34 µs efectivos (en paralelo, 5,9×)
Fórmula repetida, acierto de caché del editor41,4 µs105 ns (~390×)
Desplazamiento en el editorSin cifra equivalente0 rasterización de glifos (updateLayer)

La paridad se comprueba, no se da por hecha. El repositorio incluye scripts/diff_layout.py, que compara la herramienta LayoutDump con el binario de maquetación de RaTeX sobre el corpus de referencia de más de 1000 fórmulas, y la batería de pruebas lleva a Swift las propias pruebas de RaTeX para el analizador léxico, el analizador sintáctico, los entornos, mhchem y la maquetación. Dibujar una fórmula es la mitad del problema del editor. El bloque también necesita una altura exacta y tiene que sobrevivir a la reutilización de vistas, que es el tema de cómo obtiene su altura un bloque de fórmula y de mantener el cálculo junto a la explicación.

Cuando ya tengas la nota, pide al asistente una creación a partir de ella. Con Pro, Phrase convierte una nota en presentaciones, páginas, paneles, flashcards, cuestionarios y mapas mentales, y una página de derivaciones resueltas es una fuente natural para un cuestionario o un conjunto de flashcards. Lo mismo vale para los apuntes de una clase con ecuaciones.

04

La única entrada que SwaTex no renderiza

La entrada que falta es \includegraphics, la única excepción de las 1008, y el propio KaTeX condiciona ese comando a la opción trust. El comando inserta una imagen externa en una fórmula, así que el proyecto original lo trata como una cuestión de permisos y no de composición. Cuatro comandos \html* renderizan su contenido y descartan los atributos que solo tienen sentido en el DOM, porque un renderizador nativo no tiene DOM que esos atributos puedan describir.

1007 de 1008 entradas de la tabla de compatibilidad de KaTeX

  • Renderizadas1003
  • Renderizadas sin los atributos que solo tienen sentido en el DOM (los cuatro comandos \html*)4
  • Sin renderizar: \includegraphics, que KaTeX también condiciona a la opción trust1
SwaTex renderiza 1007 de las 1008 entradas de la tabla de compatibilidad de KaTeX. La única que falta es \includegraphics, que el propio KaTeX condiciona a la opción trust.
  • Las versiones mínimas son iOS 18, macOS 15, tvOS 18, watchOS 11 y visionOS 2, fijadas por Synchronization.Mutex. Las apps que apuntan a versiones anteriores del sistema todavía no pueden adoptar SwaTex.
  • Solo plataformas nativas de Apple. No hay envoltorios para React Native, Flutter ni la web.
  • Algunos comportamientos difieren de RaTeX a propósito, cada uno fijado con una prueba de regresión. Un \verb sin cerrar y x\limits^2 son errores de análisis en lugar de aceptarse sin avisar.
  • La entrada con anidamiento profundo está protegida por un contador de recursión y un margen de pila, que producen un error de análisis y nunca un cierre inesperado. Aun así, la app anfitriona debería limitar la longitud de una entrada malintencionada.

Esta página deja fuera dos cosas. Las matemáticas escritas a mano son otro problema, porque Phrase trabaja con material escrito con teclado, grabado o importado, no con tinta digital. Los diagramas y los bloques de código son una cuestión distinta de las fórmulas, y los dos artículos técnicos enlazados arriba describen cómo conviven en el mismo editor.

Separa otro par de datos. SwaTex compila para macOS 15, mientras que la app de Phrase para Mac requiere macOS 26 o posterior. Que un motor compile para una plataforma no dice nada de qué sistemas admite una app. Phrase funciona en iPhone, iPad y Mac, con una app para Apple Watch para grabar, y renderiza las fórmulas con SwaTex en cada uno.

Phrase para Mac: la biblioteca de notas junto al plan de apertura de una cafetería, con su foto, el resumen, un diagrama de flujo y la fórmula del punto de equilibrio.
El mismo tipo de nota en Phrase para Mac, que requiere macOS 26 o posterior.
05

Preguntas sobre LaTeX en una app de notas

¿Se pueden escribir matemáticas en Notas de Apple? Haz la autoprueba en la app que ya tienes en lugar de fiarte de algo que se escribió hace un año. Apple documenta lo que hace Notas en sus propias páginas de soporte, y la respuesta cambia entre versiones de iOS. Los fragmentos 1 y 3 lo resuelven en unos diez segundos.

¿Puedo escribir ecuaciones LaTeX en Notas de Apple? Escribir LaTeX y renderizar LaTeX son dos preguntas distintas. Cualquier app guarda los caracteres \frac{a}{b} como texto. Lo que cuenta es si aparece una barra horizontal con la a encima y la b debajo, que es lo que comprueba el fragmento 1.

¿Qué debería manejar una app de notas compatible con LaTeX? Usa la tabla de compatibilidad de KaTeX como vara de medir común, porque es pública y tiene 1008 entradas. Una app que cubre entornos, delimitadores extensibles, macros y mhchem trabaja con la misma gramática que las implementaciones de referencia. Una app que cubre fracciones en línea hace algo mucho más pequeño.

¿Una app de notas de matemáticas necesita conexión para dibujar una fórmula? Depende del nivel. Un conversor que devuelve una imagen necesita el viaje de ida y vuelta, y un motor WebView tiene un costo de arranque antes de la primera fórmula. SwaTex analiza y maqueta en el código de la propia app, sin ningún navegador de por medio.

Fuentes y notas editoriales

Fuentes revisadas el 25 de septiembre de 2026. Los pasos de las funciones de Apple siguen su documentación actual, enlazada abajo. Las condiciones cambian con cada versión de iOS.

Publicado por Eversight, los creadores de Phrase. Nuestro criterio editorial · Sugerir una corrección