Traducción no oficial al español rioplatense, generada con IA (Claude Sonnet 5.5) bajo la dirección y revisión de Jassiel Ovando. No es una publicación de Typst GmbH ni cuenta con su aval; ante cualquier duda, prevalece la documentación oficial en inglés. ¿Un error de traducción o una sugerencia? Reportalo. Tipografía: Reforma, de PampaType.

Typst 0.15.0 (15/06/2026)

Esta sección documenta todos los cambios del lenguaje y del compilador de Typst entre Typst 0.14.2 y 0.15.0. Si estás migrando un documento existente a Typst 0.15, fijate en la Guía de migración. Ahí se repasan los cambios que quizás tengas que hacer en tus documentos para asegurar la compatibilidad con Typst 0.15.

Novedades destacadas

Lenguaje

Sintaxis

Estilos

Scripting

Biblioteca

Fundamentos

Modelo

Texto

Matemática

Símbolos

Diseño

Visualización

Introspección

Carga de datos

Exportación

Bundle

HTML

PDF

SVG

PNG

Interfaz de línea de comandos

Herramientas

Obsolescencias

Eliminaciones

Desarrollo

Guía de migración

Esta sección te explica los cambios que quizás tengas que hacer en tus documentos existentes para asegurar la compatibilidad con Typst 0.15.

Typst 0.15 elimina definiciones de la biblioteca estándar de Typst que ya estaban obsoletas en versiones anteriores. Si todavía dependés de ellas, consultá también las guías de migración de Typst 0.14 y de Typst 0.13.

Líneas base

Typst ahora conserva la información de línea base en más partes del motor de diseño (sobre todo para cajas, bloques, elementos de lista y ecuaciones). Esto puede producir cambios de diseño silenciosos. En general son mejoras, pero si antes corregiste resultados poco prolijos con ajustes explícitos, quizás tengas que revisarlos.

En particular, Typst ahora establece la línea base de un box en la línea base de su primera línea de contenido y la usa para alinear el box con el texto que lo rodea. Esto produce mejores resultados sin hacer nada.

// Typst 0.15+ Lorem #box(inset: 0.3em, stroke: 1pt)[ipsum] dolor. // Typst 0.14 and below Lorem #box(inset: 0.3em, stroke: 1pt)[ipsum] dolor.

Rutas de archivo

Si usás Typst en Windows, es posible que hayas usado barras invertidas en tus rutas de archivo. Esta sintaxis ya no está admitida. Usar barras normales de forma consistente asegura que tu documento compile en todas las plataformas admitidas.

// Typst 0.15+ ✅
#include "chapters/introduction.typ"

// Typst 0.14 and below ❌
#include "chapters\\introduction.typ"

Además, la CLI de Typst ya no admite rutas de entrada que no sean Unicode. Hoy esas rutas son extremadamente raras.

Estiramiento de glifos matemáticos

En la composición matemática, los glifos con frecuencia deben estirarse hasta el tamaño de alguna parte de una ecuación. Esto se aplica principalmente a los paréntesis, pero también a acentos, flechas y más. En Typst, esto ocurre de forma implícita mediante delimitadores emparejados o de forma explícita mediante las funciones lr y stretch.

Typst 0.15 hace algunos ajustes en cómo se resuelven las proporciones que se pasan a estas funciones. Antes, un tamaño de 200% pasado a lr.size o stretch.size se interpretaba respecto de un tamaño de glifo que podía estar ya afectado por el tamaño de display. Ahora las proporciones siempre se resuelven respecto del tamaño del glifo base. En la práctica, esto significa que, para conservar el mismo aspecto, quizás tengas que aumentar los tamaños objetivo que configuraste para glifos que ya son más grandes por defecto en estilo display (p. ej., las integrales).

Delimitadores matemáticos como funciones

En el modo matemático de Typst, varios símbolos definidos en Símbolos generales se pueden llamar como una función, ya sea para aplicarlos como acento o para delimitar contenido. Typst 0.15 extiende este manejo a delimitadores adicionales como chevron.l. Esto puede cambiar el resultado de llamadas existentes, que antes recurrían a mostrar los paréntesis (algo que rara vez producía un resultado deseable en el caso de los delimitadores).

// Typst 0.15+ ✅ $ chevron.l(x) $ // Typst 0.14 and below ⚠️ $ chevron.l(x) $

Clases matemáticas

La función class define cómo debe diseñarse una parte de una ecuación (principalmente el espaciado a su alrededor). En Typst 0.14 y anteriores, la función class se aplicaba de forma recursiva: si se aplicaba a un fragmento de contenido más grande, todos sus elementos recibían la clase. En Typst 0.15, la clase solo se aplica al contenido envuelto directamente. Es sobre todo una corrección de errores, pero puede producir cambios sutiles de diseño.

Formas caligráficas en la fuente matemática predeterminada

Con la actualización a New Computer Modern Math 8.1.0, se cambiaron las formas caligráficas predeterminadas. Las formas anteriores todavía se pueden obtener seleccionando el conjunto estilístico 6.

// Typst 0.15, default style. $ R != cal(R) $ // Typst 0.15, with stylistic set 6. // Reproduces the default style from Typst 0.14 and below. #show math.equation: set text(stylistic-set: 6) $ R != cal(R) $

Párrafos, cajas y bloques en HTML

Typst agrupa automáticamente el contenido en línea en párrafos. En Typst 0.14 y anteriores, se usaban exactamente las mismas reglas para agrupar elementos HTML en línea (p. ej., un <span>) en párrafos de Typst, que a su vez producen elementos <p>. Esto tenía el efecto desafortunado de que incluso el uso de la API HTML tipada de bajo nivel podía hacer que aparecieran elementos <p> automáticamente. Considerá el siguiente ejemplo:

#html.div({
  html.span[Hello]
  html.div[World]
})

Donde Typst 0.14 insertaría un elemento <p> adicional inesperado, Typst 0.15 produce el resultado esperado:

<!-- Typst 0.14 and below ⚠️ -->
<div>
  <p><span>Hello</span></p>
  <div>World</div>
</div>

<!-- Typst 0.15+ ✅ -->
<div>
  <span>Hello</span>
  <div>World</div>
</div>

Este cambio en la salida se logra con algunas reglas nuevas sobre cómo se agrupan los párrafos en la exportación a HTML. Antes, Typst siempre clasificaba los elementos como de línea o de bloque. Luego forzaba a los elementos en línea a formar un párrafo siempre que hubiera al menos un elemento de bloque en el mismo flujo de contenido. En Typst 0.15, los elementos se pueden considerar en cambio de línea, de bloque o neutros:

Los elementos neutros no fuerzan que el contenido en línea contiguo pase a párrafos. Pueden coexistir con contenido en línea en un flujo mixto. Así se asegura que el uso de la API HTML tipada no produzca párrafos superfluos.

Por su parte, los elementos de Typst que son de bloque por defecto (p. ej., heading) ahora usan explícitamente un block en su regla show predeterminada para asegurar que sigan forzando a los elementos en línea contiguos a formar párrafos. Esto garantiza la consistencia del agrupamiento de párrafos entre la exportación paginada y la HTML. Los autores de paquetes también deberían usar explícitamente bloques al crear componentes HTML que Typst deba considerar de bloque.

Para que este cambio sea posible, se ajustó el comportamiento de cajas y bloques en la exportación a HTML: en lugar de envolver siempre su contenido en un <span> o un <div>, ahora hacen solo lo necesario para que los navegadores consideren su contenido de línea o de bloque. Si contienen varios hijos, igualmente crean un elemento contenedor, pero si hay un único hijo, en cambio configuran la propiedad CSS display. Y si ese único hijo ya tiene por defecto la propiedad display adecuada, se omite por completo. Así, el efecto de box o block se limita a influir en el agrupamiento de párrafos de Typst.

Elementos script y style de HTML

Las funciones tipadas de HTML para los elementos HTML script y style antes aceptaban cualquier contenido como cuerpo y solo fallaban durante la serialización a HTML si el contenido producía elementos no textuales. En Typst 0.15, en cambio, aceptan solo cadenas de texto desde el principio. Tené en cuenta que también podés usarlas con la sintaxis de raw accediendo al campo .text.

// Typst 0.15+ ✅
#html.style("a { color: red }")
#html.style(
  ```css
  a { color: red }
  ```.text
)

// Typst 0.14 ❌
#html.style[
  a { color: red }
]

Clases en la exportación a SVG

Typst 0.14 y anteriores generaban los atributos class typst-frame, typst-doc, typst-group, typst-shape y typst-text en los elementos SVG de la exportación a SVG. Ya no se emiten. Si usás la clase typst-frame para darle estilo a elementos html.frame en la exportación a HTML, vas a tener que adaptar tu hoja de estilos.

Nombres de familias de fuentes variables

Typst busca unificar las distintas fuentes de una misma familia bajo un único nombre de familia. Con ese fin, recorta automáticamente de los nombres de familia los sufijos de estilo comunes, como “Bold” o “Condensed”. En lugar de elegirlos mediante el nombre, hay que acceder a ellos a través de los mecanismos integrados de Typst (como los parámetros weight y stretch).

En Typst 0.15, además se recortan los sufijos “Variable”, “Var” y “VF” para unificar las fuentes estáticas y variables en una sola familia. Si antes usabas una fuente con alguno de estos sufijos en el nombre de su familia, ahora tendrías que omitir el sufijo al especificar la font.

Próximos cambios en las etiquetas de lenguaje de raw

En la próxima versión de Typst, vamos a cambiar cómo se analizan las etiquetas de lenguaje de raw. Si este cambio próximo afecta a tu documento, el compilador ya hoy te va a advertir y a sugerirte cómo ajustarlo para que no te afecte.

Alternativa de numeración para el número cero

No todos los sistemas de numbering pueden expresar el número cero. En Typst 0.14 y anteriores, esos sistemas recurrían silenciosamente a numerales arábigos para 0. Este comportamiento está obsoleto en Typst 0.15. Usar el cero con esos sistemas pasará a ser un error grave en el futuro.

Validación más estricta en algunas funciones

La función array.slice, el constructor str y el parámetro text.features ahora validan sus entradas de forma más estricta. Si antes pasabas entradas inválidas o sin sentido, ahora vas a recibir un error.

Estilos de cita renombrados

Typst 0.15 renombra algunos estilos de cita para mantenerse alineado con los cambios de CSL en upstream. Si dependés de alguno de ellos, el compilador te va a advertir y a sugerirte el nuevo nombre.

Símbolos renombrados

Typst 0.15 también renombra algunos símbolos de Símbolos generales. Si usás alguno de ellos, el compilador te va a advertir y a sugerirte el nuevo nombre.

Colaboradores

¡Gracias a todos los que contribuyeron a esta versión!

  1. 1Hay algunas excepciones: algunos elementos como <script> se consideran contenido de fraseo según las especificaciones de HTML, pero no tienen sentido en párrafos porque por defecto tienen display: none.