- Typst es un programa de composición de documentos desarrollado en Rust, del que se habla como una alternativa a LaTeX optimizada para redactar material técnico con matemáticas, tablas e inserción de figuras
- Resuelve los problemas de LaTeX relacionados con su sintaxis compleja, compilación lenta y mensajes de error difíciles de entender, y ofrece una sintaxis similar a Markdown junto con un lenguaje integrado basado en funciones
- Con compilación incremental rápida, indicadores de error claros y una sintaxis concisa, incluso los documentos grandes pueden previsualizarse en tiempo real, y las funciones de programación están integradas de forma natural en el sistema
- Entre sus desventajas se señalan la falta de un ecosistema amplio de paquetes especializados, soporte insuficiente para plantillas de revistas, dificultad en la documentación y ausencia de algunas funciones, pero los paquetes están aumentando rápidamente y también es posible convertir mediante Pandoc
- Typst aún está en una etapa inicial, pero gracias a su adopción por parte de algunas revistas académicas, más de 800 paquetes y una comunidad activa, está surgiendo como un fuerte candidato para reemplazar a LaTeX
Introducción e importancia de Typst
- Typst es un programa de composición de documentos con una estructura adecuada para documentos técnicos, como fórmulas, tablas e imágenes
- Ofrece resultados de alta calidad comparables a LaTeX con un marcado más simple y compilación más rápida
- Typst es software de código abierto desarrollado en Rust y está bajo la licencia Apache-2.0
- Sus grandes fortalezas son la velocidad al manejar documentos grandes, la simplificación de la sintaxis y la facilidad de personalización
Limitaciones de LaTeX y necesidad de una alternativa
- LaTeX es un sistema basado en TeX y consolidado como herramienta estándar para artículos académicos en matemáticas e informática
- Sin embargo, se ha señalado de forma constante que tiene una instalación pesada y problemas de baja velocidad de compilación, mensajes de error difíciles de interpretar y personalización compleja basada en el lenguaje de macros
- Durante décadas se ha hablado de reemplazarlo, pero no había una alternativa realista debido al enorme ecosistema de paquetes y a la dependencia de la base de usuarios existente
Aparición de Typst y contexto de desarrollo
- Comenzó en 2019 como un proyecto personal de los desarrolladores alemanes Laurenz Mädje y Martin Haug, y luego evolucionó a través de una tesis de maestría y lanzamientos beta
- Desde la publicación de la v0.1.0 en 2023 ha crecido hasta la v0.13.1, y en GitHub participan más de 365 colaboradores
- A medida que algunas revistas académicas han empezado a aceptar manuscritos en Typst como formato de envío, se está ampliando su viabilidad para uso real
Funciones y ventajas de Typst
- Typst se ofrece como código fuente en Rust y como binarios compilados, y es compatible con Linux, macOS y Windows
- Funciona con un solo ejecutable (
typst), sin necesidad de distinguir entre varios motores como en LaTeX
- Con el comando
typst fonts es posible revisar y agregar fuentes disponibles
typst compile genera salidas en PDF/SVG/PNG, y el modo typst watch ofrece previsualización en tiempo real, actualizando automáticamente el PDF cuando cambia el código fuente
- Gracias a la compilación incremental rápida, incluso la vista previa en tiempo real de documentos grandes es muy veloz
- Su sintaxis combina un estilo similar a Markdown con una sintaxis especializada para matemáticas, por lo que es más concisa e intuitiva que LaTeX
- La experiencia de uso mejora gracias a mensajes de error claros, compilación incremental y soporte para un lenguaje funcional similar a Rust
- La representación de fórmulas matemáticas ofrece una calidad casi idéntica a la de LaTeX, y permite usar directamente símbolos Unicode
Mejoras de Typst frente a LaTeX
- Ofrece una sintaxis fuente más corta y fácil de leer que LaTeX
- Typst mantiene la calidad al usar el mismo algoritmo de salto de línea que LaTeX y un método similar de composición de fórmulas
- En lugar de macros complejas, asegura estabilidad y simplicidad con personalización basada en llamadas a funciones
- Typst incorpora un lenguaje de programación integrado con estilo Rust
- La mayoría de las funciones son puras, lo que proporciona resultados predecibles y facilita la depuración
- El lenguaje de programación y la composición de documentos están completamente integrados, lo que permite escribir código conciso
- La personalización del documento, como cambiar la fuente o el estilo de las secciones, también se hace mediante llamadas a funciones
- Ofrece una estructura de programación más coherente y simple que las extensiones Lua de LaTeX
- También puede resolver problemas típicos de LaTeX, como el manejo de elementos flotantes y la división de tablas, gracias a un modelo de diseño mejorado
Ejemplos de marcado y estructura
- Encabezados: símbolo
=, listas numeradas automáticas: +, listas con viñetas: -, todo de forma simple
- Las transformaciones de texto, como Bold e Italic, también se introducen de manera intuitiva
- Algunas funciones se manejan mediante llamadas a funciones: por ejemplo,
#underline[Good] gin
- Existen tres modos de entrada: texto, código y matemáticas
- El modo de fórmulas se escribe entre
$, y permite ingresar directamente símbolos Unicode y letras griegas
Desventajas y limitaciones de Typst
- Frente a LaTeX, tiene menos refinamiento en el diseño de página (como la prevención de viudas y huérfanas)
- Todavía tiene pocos paquetes especializados, aunque actualmente ya supera los 800 y sigue expandiéndose rápido
- Falta soporte para plantillas de revistas académicas, por lo que se requiere conversión con Pandoc
- La documentación oficial es insuficiente y tiene dificultades para seguir el ritmo de las actualizaciones rápidas
- Carece de algunas funciones avanzadas, como inserción de PDF y soporte para parshape
- Debido a que el proyecto está en una etapa temprana, existe riesgo de cambios incompatibles (breaking changes)
Conclusión y perspectivas
- El autor de hecho usa Typst para escribir artículos de física, y emplea Pandoc para la conversión a LaTeX
- Lo ha combinado con Neovim + Tree-sitter para crear un entorno de escritura eficiente, y está satisfecho con la velocidad de Typst y la experiencia de visualización de errores
- Ofrece eficiencia real en el trabajo gracias a entrada rápida e intuitiva de fórmulas, soporte de editor/herramientas visuales y retroalimentación de compilación rápida
- Typst es evaluado como un fuerte candidato con potencial para reemplazar a LaTeX; ya es bastante práctico hoy y se espera que siga expandiéndose
Comentarios destacados de LWN
- Compatibilidad y estabilidad a largo plazo
- Una de las razones del éxito de TeX/LaTeX fue mantener la compatibilidad con versiones futuras (spacefrogg)
- Pero también hay quejas de que, en la práctica, muchos documentos antiguos se rompen en entornos nuevos o deben reescribirse por cambios en los paquetes (wtarreau, warrax)
- Algunos usuarios compartieron experiencias de artículos o tesis de hace décadas que todavía compilaban sin problemas, y señalaron que la clave está en la diferencia de estabilidad entre los paquetes usados (dskoll, anton)
- Problemas con plantillas de editoriales y paquetes
- Se señala que, al publicar en revistas académicas, el uso de plantillas LaTeX y paquetes anticuados proporcionados por la editorial suele ser obligatorio, lo que debilita la supuesta ventaja de compatibilidad real (NYKevin, aragilar)
- Al final, lo importante no es conservar el formato del documento durante mucho tiempo, sino si el texto principal puede migrarse fácilmente a una plantilla nueva, una visión más realista (anton)
- Diseño del lenguaje y ventajas de Typst
- A diferencia de LaTeX, en Typst la sintaxis de código y la sintaxis de composición están claramente separadas, lo que reduce los efectos secundarios de las macros y aporta funciones modernas del lenguaje (spacefrogg)
- Permite escribir documentos simples rápidamente, y la legibilidad de los mensajes de error junto con la compilación incremental son grandes ventajas (spacefrogg, notriddle)
- Sin embargo, dado que Typst también es Turing completo, algunos opinan que a largo plazo podría repetir problemas de compatibilidad similares (epa, smoogen, taladar)
- Ecosistema y comunidad
- El desarrollo de paquetes en Typst es activo, y hay casos en que se agregaron funciones rápidamente tras ser solicitadas (leephillips, adnl)
- Aunque se critica la falta de documentación oficial, también se comparten experiencias positivas sobre una comunidad amable y activa en los foros (al4711)
- Se mencionaron otros proyectos alternativos como SILE o el antiguo Lout, pero también se recordó que fracasaron en expandirse por falta de efecto de red (rogerwhittaker, ceplm, anton)
- Evolución continua de LaTeX y comparación
- LaTeX también ha incorporado recientemente funciones modernas como Tagged PDF (mejora de accesibilidad), y sigue siendo mejorado activamente por investigadores y desarrolladores (jschrod)
- Herramientas como Overleaf y LyX también mejoran la usabilidad de LaTeX, y se consideran útiles para la colaboración o para que principiantes aprendan (smitty_one_each, paulj, callegar)
- Aunque Typst tiene la ventaja de ser más simple y moderno que LaTeX, sigue habiendo una visión escéptica de que todavía le cuesta alcanzar el ecosistema y las funciones especializadas acumuladas durante décadas (norbusan, callegar)
- Otras discusiones
- La función de incluir PDF en Typst se agregó recientemente, y también apareció mediante paquetes una función similar a parshape (Delio, yashi)
- También hay críticas de que dentro de décadas Typst terminará repitiendo los mismos problemas de compatibilidad y complejidad que LaTeX (norbusan)
- Algunos señalan problemas de detalle como la falta de corrección de cursivas en Typst y subrayan que, frente a las funciones tradicionales finas de LaTeX, todavía se queda corto (callegar)
3 comentarios
Parece que habrá que esperar un poco hasta que se forme el ecosistema...
Creo que Typora supera a LaTeX en muchos aspectos.
Eso sí, todavía quedan algunos bugs menores, y da pena que pase demasiado tiempo antes de que salga una nueva versión.
Como empezaron a operar su propia comunidad e intentaron monetizar el editor + la nube, y no les fue muy bien, siento que el ritmo de desarrollo ya no es como antes.
Comentarios en Hacker News
Me alegra ver que Typst recibe cada vez más atención; en mi organización, Zerodha, migramos trabajo real a Typst hace 2 años. Era una tarea de generar más de 1.5 millones de PDF al día y enviarlos por correo electrónico. Antes usábamos un pipeline basado en LaTeX (al principio
pdflatex, despuéslualatex), pero siempre teníamos problemas con errores de memoria desconocidos en documentos grandes y con imágenes de Docker demasiado pesadas, lo que hacía lento el arranque de workers efímeros. Al cambiar a Typst pudimos usar una imagen muy ligera con un solo binario estático, y la velocidad de arranque mejoró claramente. La mejora de rendimiento también fue enorme. El tiempo total de compilación fue entre 3 y 4 veces más rápido que con LaTeX, y en el caso de documentos grandes de más de 2000 páginas, Typst terminaba en 1 minuto mientras quelualatextardaba 18 minutos. La experiencia para desarrolladores también mejoró, y los mensajes de error son mucho más amables, así que estamos muy satisfechos. Publiqué un post detallando toda la arquitectura y la experiencia de migración a Typst, así que si te interesa, revísalo aquíYo genero distintos tipos de documentos, como texto, facturas y formularios, con un pipeline de LaTeX basado en snippets desde una base de datos. La configuración fue bastante compleja, pero el resultado me deja muy satisfecho. Sí me gustaría usar un lenguaje de marcado más sencillo, pero me preocupa perder tiempo y luego toparme con límites. Las condiciones que sí o sí necesito son: poder especificar saltos de columna/página con sentido en múltiples columnas (por ejemplo, indicar un mínimo de líneas al pasar a nueva columna/página), auto-guionado confiable en varios idiomas (inglés/alemán, y más adelante francés/italiano/español), colocación automática de imágenes dentro de columnas, saltos automáticos de página en tablas y formularios complejos, imágenes de fondo, y distintas regiones tratadas como minipáginas. Me pregunto si Typst puede hacer todo eso
Sería realmente interesante si pudieras compartir muestras o ejemplos de los documentos que generan
En las empresas donde he trabajado, a menudo se envían de forma periódica PDF con estadísticas, reportes pequeños y otros documentos de negocio. La mayoría se generan con MJML, HTML hecho a mano, Puppeteer, etc. Me pregunto si Typst también encajaría bien en esos casos
Me da curiosidad por qué usaron LaTeX al principio en su caso de uso. Más que que Typst lo reemplace, me sorprende más que LaTeX haya sido el punto de partida
Comparar Typst con LaTeX es como el día y la noche. Estoy escribiendo mi tesis doctoral en Typst, y la verdad fue una decisión casi aventurera. Todavía no tiene una base de usuarios grande ni es totalmente estable. Pero una vez que lo probé, ya no hubo vuelta atrás. Aún me queda el trabajo de igualar al píxel la plantilla de LaTeX que exige la universidad, pero me convencí de que Typst definitivamente era más adecuado. Incluso después de más de 10 años usando LaTeX, no podía decir que realmente entendiera TeX. En cambio, con Typst en pocos días ya podía usarlo con mucha eficiencia. Si falta un paquete, puedo hacerlo yo mismo rápidamente, y aun así una buena parte ya está cubierta por paquetes excelentes. Cosas que en LaTeX jamás habría imaginado hacer, en Typst resultan fáciles. Uno de los factores que más me bajaba la productividad en TeX eran los conflictos entre paquetes, compatibilidad y versiones, y en Typst eso no pasa en absoluto. Es porque ofrece un lenguaje de programación real y un sistema de módulos. La velocidad de compilación también es rápida, y la experiencia general de uso es realmente sobresaliente. Eso sí, no es 100% perfecto. Hay algunos detalles de diseño mejorables y partes que todavía están en desarrollo, como por ejemplo la función de insertar un PDF como si fuera una imagen. La calidad tipográfica también se siente como si convergiera a un 95% respecto a TeX (TeX siempre es perfecto). A veces también hay que ajustar manualmente el kerning. Aun así, espero que siga mejorando
Igualar al píxel la plantilla de LaTeX de la universidad podría ser hasta una suerte. La mayoría ha tenido que replicar en LaTeX la plantilla de MS Word de su universidad tal cual
Creo que Typst seguirá mejorando. Eso sí, a veces ha habido cambios grandes que rompen compatibilidad. No era difícil arreglarlos, pero depurarlos no era muy intuitivo. Parece que mucha gente quiere que Typst tenga éxito. TeX y LaTeX son enormes y complejos, y da la impresión de que hace falta algo así como una “distribución” de LaTeX más limpia. Estaría bien poder armarlo bien como una unidad atomizada en un contenedor. Siempre pasa que te pasan una plantilla y al tratar de compilarla falta algo. Da gusto ver que siga habiendo innovación en este campo
Me parece interesante que, después de usar LaTeX por más de 10 años, hayas podido dominar Typst en pocos días. ¿A qué se deberá? ¿Será por tu formación en ciencias de la computación?
Me pregunto si lo de la réplica al píxel es literal o una exageración. En LaTeX hay muchos paquetes que hacen casi imposible una réplica pixel-perfect, sobre todo
microtype, que se usa mucho en artículos científicosTambién puede servir revisar esta entrada de blog sobre la experiencia de escribir una tesis en Typst
Resumo algunas cosas que sentí al usar Typst comparado con LaTeX
-,[item], etc.; si usas la forma con corchetes, en vim es fácil emparejarlos con%, así que se puede navegar listas largas con facilidad\document{}, pero en Typst puedes ponerlas directamente cerca de donde las necesitasjson("some_file.json"). Al escribir artículos, cargo en Typst los datos JSON generados por scripts de benchmark y los uso directamente al compilar el PDFNo hace falta poner las declaraciones de macros solo arriba; se pueden declarar en cualquier parte. En LaTeX también: los paquetes sí se cargan solo en el preámbulo, pero las macros pueden declararse en cualquier lugar. Tampoco hay mayor problema con semantic line break en LaTeX. Sí coincido con lo de la velocidad de compilación y los mensajes de diagnóstico. Esa es la mayor desventaja de LaTeX
En efecto, como dice el punto 5, las macros pueden declararse en cualquier lugar. Es solo una convención ponerlas en el preámbulo
Me pregunto si alguien ha escrito cosas como artículos reales en Typst. Yo solo he tenido éxito de forma muy limitada, y como todavía no lo usa tanta gente, uno termina teniendo que resolver los problemas por su cuenta
Typst no es solo macros, sino un lenguaje de programación de verdad, con funciones, tipos, módulos (también hay namespaces), y muchas otras capacidades. Gracias a eso, el sufrimiento se reduce como en un 80% frente a trabajar con TeX (sobre todo en cualquier cosa más compleja que un simple reporte de laboratorio universitario). No es perfecto, pero esa diferencia es enorme y muy valiosa
TeX en sí, por sí mismo, es mucho más simple y directo que LaTeX. De hecho, hasta da un poco de vértigo por lo mucho que controlas. Por ejemplo, esto es un documento válido de plain TeX: $$\aleph_0$$ \bye. Ni siquiera hace falta usar begin/end. Si usas una colección de macros como extended plain, puedes ampliar sus funciones. Yo mismo escribí toda mi tesis en extended plain, pero al presentarla en la biblioteca me pidieron reescribirla con archivos de estilo de LaTeX, así que al final la pasé a LaTeX
Para que Typst se convierta en un verdadero competidor de LaTeX, las plantillas de Typst tienen que ser adoptadas oficialmente en artículos académicos y conferencias. Su expansión en las universidades, al final, depende de que las editoriales lo adopten. Todavía casi no hay apoyo para Typst dentro de la comunidad investigadora. Todo el mundo ya escribe artículos/diapositivas/reportes con plantillas de LaTeX, y para que Typst importe de verdad, primero tendría que ser aprobado en algún profesor/laboratorio, luego expandirse a toda la universidad, y después llegar a conferencias y revistas. Ese proceso es muy largo, tedioso y sigue en curso. Pero es una etapa indispensable
Puede ser que no lo vea porque no sé bien qué problemas existen en composición más profesional, como al enviar a revistas, pero la verdad no sé qué tan importante sea la composición tipográfica en los artículos de investigación. En la práctica, creo que bastaría con un formato más simple y centrado en el contenido. Las editoriales de artículos o libros podrían componer el material enviado según su propio estilo. Desde el punto de vista del investigador, sería mejor preocuparse solo por un formato simple centrado en el contenido. De hecho, más que LaTeX o Typst, me gustaría que el estándar fuera algún formato markdown orientado a investigación
Desde la perspectiva del investigador, LaTeX ya resuelve bastante bien el problema, así que no hay mucha razón para cambiar
He escrito varias notas de clase y una tesis de maestría en matemáticas con LaTeX. Si solo vas a escribir texto sobre una plantilla hecha por otra persona, LaTeX está bastante bien. Pero cuando intentas crear tus propios paquetes o entender la estructura interna, de verdad se siente como magia negra. Había que estar muy pendiente de que los paquetes no chocaran entre sí, y había muchísimos workarounds raros, así que siempre era complejo. Si Typst llega a ser un reemplazo de LaTeX que además permita manejar layout y diseño con facilidad, sería genial. Solo he probado Typst de manera experimental, pero me gustó el lenguaje en sí. La verdad, al escribir texto, no creo que la sintaxis sea un problema tan importante. Como referencia, cuando escribí mi tesis de maestría empecé en reStructuredText y generaba LaTeX y PDF con Pandoc; una vez que la estructura general estuvo lista, retoqué la parte de LaTeX y rehice el formato/las figuras que hacían falta para terminar. La ventaja era poder empezar de inmediato sin un preámbulo largo. Sigo pensando que el problema no es la sintaxis, sino que si te preocupas demasiado por el diseño en la fase inicial, luego no escribes bien el contenido
No he usado tanto Typst todavía, pero por lo que siento, al escribir plantillas hay mucho menos “magia negra” que en LaTeX. Ya da la impresión de permitir estructuras más libres que LaTeX
Si lo que quieres es más control directo y más potencia para el diseño/layout de documentos, entonces te recomendaría ConTeXt en lugar de LaTeX o Typst. Como diseñador gráfico, me encanta tanto ConTeXt que no pienso cambiarlo por otra herramienta. Eso sí, cuando solo quieres escribir texto y no preocuparte por el diseño, LaTeX o Typst siguen siendo excelentes
Yo también escribí una tesis en reStructuredText, generando PDF con Pandoc y
latexmk, e insertando sin pérdida gráficos PDF hechos con matplotlib y Python. Me pregunto si hubo algo que no pudiste hacer con reStructuredText. También puedes usar plantillas de LaTeX, y reStructuredText en sí me parece más potente que Markdown y otros formatos parecidos, así que incluso diría que seguir con reStructuredText está perfectamente bienTu nota al pie, en realidad, muestra que LaTeX no es precisamente una opción tan buena. Yo también escribí hace poco una tesis en Typst, y antes escribía en LaTeX. Con LaTeX escribía en Markdown y luego lo convertía a LaTeX, pero con Typst ya no tuve que hacerlo. Si Typst sigue así sin deteriorarse en calidad de servicio, pienso simplemente seguir usándolo
Últimamente estoy escribiendo un libro reemplazando Pandoc + LaTeX por Typst (enlace de GitHub). La sintaxis de Typst es tan fácil como Markdown, y es muchísimo más sencillo de programar que LaTeX (aunque todavía tiene partes ásperas). En LaTeX siempre dependía de paquetes y además había que evitar sus interacciones extrañas, así que daba mucho trabajo. En Typst es fácil implementar uno mismo lo que necesita. Es muy rápido y tampoco deja un montón de archivos inútiles en el sistema. Si trabajas con documentación técnica centrada en PDF, de verdad lo recomiendo
Como sistema alternativo de composición, también está SILE. Soporta tanto XML como estilos tipo TeX, y permite scripting en lua. A diferencia de (La)TeX y Typst, también tiene una especificación comparable a la documentación oficial. Para fórmulas, incluso puedes usar MathML directamente. Eso sí, no he usado personalmente ni Typst ni SILE; solo he leído la documentación. HTML + MathML también está bien, y hay casos de escritura con fuente XML + XSLT usando plantillas, como los libros de texto de OpenStax (basados en CNXML). También existen varias combinaciones como troff (más eqn), Texinfo, org-mode, incrustación de LaTeX, Markdown + HTML/MathML, etc.
Como alguien que lleva mucho tiempo usando LaTeX, me pesa cambiarme a un sistema nuevo porque ya pasé por un montón de casos especiales en LaTeX y ya conozco las soluciones. Por muy bueno que sea Typst, me da miedo tener que repetir todo ese proceso otra vez, y también me preocupa que su comunidad todavía no sea tan grande como para que ya exista alguien que haya tenido mi mismo problema y compartido la solución. Si uno ve solo los ejemplos oficiales, se ve muy bien, pero una de las fortalezas de LaTeX es el nivel de personalización detallada que permite (sangría, símbolos de marcador, espaciado, etc.), y me pregunto si Typst también ofrece ese nivel de control
Pienso lo mismo. Sin duda es un lenguaje de layout muy bueno, y la calidad de producción también es mucho más alta. Pero inevitablemente te volverás a topar con casos raros nuevos y con limitaciones. La base de usuarios de Typst todavía no es lo bastante grande. Además, cuando probé el año pasado si una IA como Claude Code entendía bien Typst, vi que no mucho
Typst todavía no ofrece una función nativa para hacer que las imágenes floten de manera natural dentro del texto (por ejemplo, con texto rodeándolas). Puedes poner imágenes arriba o abajo de la página, pero no hay soporte nativo para una “imagen flotante” dentro del cuerpo del texto
La capacidad de control para personalizar listas (sangría, espaciado, símbolos, etc.) puede revisarse en la documentación oficial: documentación del modelo de listas de Typst
Si otra institución (biblioteca, conferencia, etc.) solo acepta tu tesis o artículo en LaTeX, también tendrías que pensar qué harías en ese caso
Typst es realmente asombroso. Ya hasta circula el chiste de que los estudiantes de matemáticas ahora no escriben tesis, sino que se distraen haciendo paquetes de Typst. Será interesante ver hasta dónde llega en 10 años más. Ventajas: la compilación es instantánea, así que con solo guardar el archivo
.typel PDF se genera de inmediato. También se usa mucho como reemplazo de Markdown, porque incluso sin preparación especial produce PDF bonitos enseguida. Desventajas: a veces los mensajes de error son tan concisos que se vuelven excesivamente comprimidos y complican la depuración, y si hay un solo error de sintaxis ni siquiera se genera el PDF, así que cuesta usar algunos trucos de depuración de LaTeX. También hay problemas al usar paquetes externos, aunque eso no sorprende a quien haya usado LaTeX por mucho tiempo