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.

Formato

Hasta ahora escribiste un informe con algo de texto, unas cuantas ecuaciones e imágenes. Sin embargo, todavía se ve muy simple. Tu docente auxiliar aún no sabe que estás usando un nuevo sistema de composición tipográfica, y querés que tu informe encaje con las entregas del resto de los estudiantes. En este capítulo vamos a ver cómo dar formato a tu informe con el sistema de estilos de Typst.

Reglas set

Como vimos en el capítulo anterior, Typst tiene funciones que insertan contenido (por ejemplo, la función image) y otras que manipulan el contenido que reciben como argumentos (por ejemplo, la función align). El primer impulso que podrías tener cuando querés, por ejemplo, cambiar la fuente, es buscar una función que lo haga y envolver el documento completo con ella.

#text(font: "New Computer Modern")[ = Antecedentes En el caso de los glaciares, se pueden usar los principios de la dinámica de fluidos para entender cómo el movimiento y el comportamiento del hielo están influidos por factores como la temperatura, la presión y la presencia de otros fluidos (como el agua). ]

Un momento: ¿no deberían especificarse todos los argumentos de una función entre paréntesis? ¿Por qué hay un segundo par de corchetes con contenido después de los paréntesis? La respuesta es que, como pasarle contenido a una función es algo tan común en Typst, hay una sintaxis especial para eso: en lugar de poner el contenido dentro de la lista de argumentos, podés escribirlo entre corchetes justo después de los argumentos normales, ahorrando puntuación.

Como vimos arriba, eso funciona. Con la función text podemos ajustar la fuente de todo el texto que contiene. Sin embargo, envolver el documento en innumerables funciones y aplicar estilos de forma selectiva y puntual puede volverse engorroso rápidamente.

Por suerte, Typst tiene una solución más elegante. Con las reglas set, podés aplicar propiedades de estilo a todas las apariciones de un tipo de contenido. Una regla set se escribe con la palabra clave set, seguida del nombre de la función cuyas propiedades querés establecer y una lista de argumentos entre paréntesis.

#set text( font: "New Computer Modern" ) = Antecedentes En el caso de los glaciares, se pueden usar los principios de la dinámica de fluidos para entender cómo el movimiento y el comportamiento del hielo están influidos por factores como la temperatura, la presión y la presencia de otros fluidos (como el agua).

¿Querés saber en términos más técnicos qué está pasando acá?

Las reglas set se pueden concebir como la definición de valores por defecto para algunos de los parámetros de una función, para todos los usos futuros de esa función.

El panel de autocompletado

Si seguiste el tutorial y probaste algunas cosas en la app, es posible que hayas notado que siempre que ingresás un carácter # aparece un panel que te muestra las funciones disponibles y, dentro de una lista de argumentos, los parámetros disponibles. Ese es el panel de autocompletado. Puede ser muy útil mientras escribís tu documento: podés aplicar sus sugerencias presionando la tecla Enter o navegar hasta la opción deseada con las flechas. El panel se puede cerrar presionando la tecla Escape y volver a abrir escribiendo # o presionando Ctrl + Espacio. Usá el panel de autocompletado para descubrir los argumentos correctos de las funciones. La mayoría de las sugerencias vienen con una pequeña descripción de lo que hacen.

Configurar la página

Volviendo a las reglas set: cuando escribís una regla, elegís la función según el tipo de elemento al que querés darle estilo. Esta es una lista de algunas funciones que se usan comúnmente en las reglas set:

No todos los parámetros de una función se pueden establecer. En general, solo se pueden establecer los parámetros que le dicen a una función cómo hacer algo, no los que le dicen con qué hacerlo. Las páginas de referencia de las funciones indican qué parámetros son configurables.

Agreguemos algunos estilos más a nuestro documento. Queremos márgenes más grandes y una fuente con serifas. A los fines del ejemplo, también vamos a establecer otro tamaño de página.

#set page( paper: "a6", margin: (x: 1.8cm, y: 1.5cm), ) #set text( font: "New Computer Modern", size: 10pt ) #set par( justify: true, leading: 0.52em, ) = Introducción En este informe, exploraremos los diversos factores que influyen en la dinámica de fluidos en los glaciares y cómo contribuyen a la formación y al comportamiento de estas estructuras naturales. ... #align(center + bottom)[ #image("glacier.jpg", width: 70%) *Los glaciares son una parte importante del sistema climático de la Tierra.* ]

Hay algunas cosas para destacar acá.

Primero, la regla set de page. Recibe dos argumentos: el tamaño de la página y los márgenes. El tamaño de página es una cadena de texto. Typst acepta muchos tamaños de página estándar, pero también podés especificar un tamaño personalizado. Los márgenes se especifican como un diccionario. Los diccionarios son colecciones de pares clave-valor. En este caso, las claves son x e y, y los valores son los márgenes horizontal y vertical, respectivamente. También podríamos haber especificado márgenes separados para cada lado pasando un diccionario con las claves left, right, top y bottom.

Lo siguiente es la regla set de text. Acá establecemos el tamaño de fuente en 10pt y la familia de fuente en "New Computer Modern". La app de Typst viene con muchas fuentes que podés probar en tu documento. Cuando estás dentro de la lista de argumentos de la función text, podés descubrir las fuentes disponibles en el panel de autocompletado.

También establecimos el espaciado entre líneas (también llamado interlineado o leading): se especifica como un valor de longitud, y usamos la unidad em para indicar el interlineado relativo al tamaño de la fuente: 1em equivale al tamaño de fuente actual (que por defecto es 11pt).

Por último, alineamos la imagen abajo agregando una alineación vertical a nuestra alineación centrada. Las alineaciones vertical y horizontal se pueden combinar con el operador + para obtener una alineación 2D.

Un toque de sofisticación

Para estructurar nuestro documento con más claridad, ahora queremos numerar los títulos. Podemos hacerlo estableciendo el parámetro numbering de la función heading.

#set heading(numbering: "1.") = Introducción #lorem(10) == Antecedentes #lorem(12) == Métodos #lorem(15)

Especificamos la cadena "1." como parámetro numbering. Esto le indica a Typst que numere los títulos con números arábigos y que ponga un punto entre el número de cada nivel. También podemos usar letras, números romanos y símbolos para nuestros títulos:

#set heading(numbering: "1.a") = Introducción #lorem(10) == Antecedentes #lorem(12) == Métodos #lorem(15)

Este ejemplo también usa la función lorem para generar texto de relleno. Esta función toma un número como argumento y genera esa cantidad de palabras de texto Lorem Ipsum.

¿Te preguntaste por qué las reglas set de text y heading se aplican a todo el texto y a todos los títulos, aunque no se produzcan con las funciones respectivas?

Typst llama internamente a la función heading cada vez que escribís = Conclusion. De hecho, la llamada a función #heading[Conclusion] equivale al marcado de título de arriba. Otros elementos de marcado funcionan de manera similar: son solo azúcar sintáctico de las llamadas a funciones correspondientes.

Reglas show

Ya estás bastante conforme con cómo quedó. Pero falta arreglar una última cosa: el informe que estás escribiendo es parte de un proyecto más grande, y el nombre de ese proyecto siempre tiene que ir acompañado de un logo, incluso en la prosa.

Evaluás tus opciones. Podrías agregar una llamada #image("logo.svg") antes de cada aparición del logo usando buscar y reemplazar. Eso suena muy tedioso. En cambio, quizás podrías definir una función personalizada que siempre devuelva el logo con su imagen. Sin embargo, hay una forma todavía más fácil:

Con las reglas show, podés redefinir cómo Typst muestra ciertos elementos. Especificás qué elementos tiene que mostrar Typst de forma diferente y cómo deben verse. Las reglas show se pueden aplicar a instancias de texto, a muchas funciones e incluso a todo el documento.

#show "ArtosFlow": name => box[ #box(image( "logo.svg", height: 0.7em, )) #name ] Este informe está incluido en el proyecto ArtosFlow. ArtosFlow es un proyecto del Instituto Artos.

Hay mucha sintaxis nueva en este ejemplo: escribimos la palabra clave show, seguida de una cadena de texto que queremos mostrar de forma diferente y de dos puntos. Después, escribimos una función que recibe como argumento el contenido que se va a mostrar. Acá llamamos name a ese argumento. Ahora podemos usar la variable name en el cuerpo de la función para imprimir el nombre ArtosFlow. Nuestra regla show agrega la imagen del logo delante del nombre y pone el resultado en un box para evitar que se produzcan saltos de línea entre el logo y el nombre. La imagen también se pone dentro de un box, para que no aparezca en su propio párrafo.

Las llamadas a la primera función box y a la función image no necesitaron un # inicial porque no estaban incrustadas directamente en el marcado. Cuando Typst espera código en lugar de marcado, el # inicial no hace falta para acceder a funciones, palabras clave y variables. Esto se puede observar en las listas de parámetros, en las definiciones de funciones y en los bloques de código.

Repaso

Ahora sabés cómo aplicar formato básico a tus documentos de Typst. Aprendiste a establecer la fuente, justificar los párrafos, cambiar las dimensiones de la página y agregar numeración a los títulos con reglas set. También aprendiste a usar una regla show básica para cambiar cómo aparece el texto en todo tu documento.

Entregaste tu informe. ¡A tu supervisor le gustó tanto que quiere adaptarlo como un trabajo para una conferencia! En la próxima sección, vamos a aprender a dar formato a tu documento como un trabajo científico usando reglas show y funciones más avanzadas.