Saltar al contenido principal

Typst

Instalación

Binario global

  • Arch Linux: sudo pacman -S typst
  • macOS: brew install typst
  • Windows: winget install --id Typst.Typst

Editores de código

  • Visual Studio Code: instalar la extensión myriad-dreamin.tinymist

Notas

  • Los archivos usan la extensión .typ

Configuración global

#set page(paper: "us-letter", margin: 2.54cm)
#set text(font: "Inter", size: 12pt)
#set heading(numbering: "1.")

Texto

  • Negrita: *Negrita*
  • Cursiva: _Cursiva_
  • Código inline: encerrar entre acentos graves simples. Ejemplo: `fn main() {}`
  • Salto de línea:
Contenido contenido.
\
Otro párrafo.
\ \ \
Otro párrafo con tres saltos de línea.
  • Texto personalizado:
#text(size: 15pt, weight: "bold")[Texto o contenido con estilo personalizado]
  • Alineación:
#align(center)[
#text(size: 16pt, weight: "bold")[Contenido o título centrado]
]

Estructura

  • Títulos:
= Título Nivel 1
== Título Nivel 2
=== Título Nivel 3
==== Título Nivel 4
===== Título Nivel 5
====== Título Nivel 6
  • Lista desordenada:
- Elemento 1
- Subelemento 1.1
- Subelemento 1.2
- Subelemento 1.2.1
- Subelemento 1.2.2
- Elemento 2
- Elemento 3
  • Lista ordenada:
+ Elemento 1
+ Subelemento
+ Subelemento
+ Subelemento
+ Subelemento
+ Elemento 2
+ Elemento 3

Bloques de código

Encerrar el código entre tres acentos graves, igual que en Markdown:

```rs
fn main() {
println!("Hola, mundo!");
}
```

Imágenes y figuras

  • Imagen simple:
#image("img/rust.png")
  • Figure (agrega etiqueta y numeración automática):
#figure(image("img/ferris.svg"), caption: "Ferris, la mascota de Rust")

Grid

#grid(
columns: (40%, 60%),
gutter: 1.5cm,
[#figure(image("img/rust.png"), caption: "Logo de Rust")],
[#figure(image("img/ferris.svg"), caption: "Ferris, la mascota de Rust")],
)

Tablas

#table(
columns: (auto, 1fr),
align: (center, left),
table.header([*Crate*], [*Descripción*]),
[serde], [Serialización y deserialización de datos],
[tokio], [Runtime asíncrono para Rust],
[reqwest], [Cliente HTTP fácil de usar],
)
#table(
columns: 3,
table.header([*Tipo*], [*Descripción*], [*Ejemplo*]),
[i32], [Entero de 32 bits con signo], [let x: i32 = 42;],
[f64], [Flotante de 64 bits], [let y: f64 = 3.14;],
[bool], [Booleano], [let is_active: bool = true;],
[char], [Carácter Unicode], [let letter: char = 'A';],
)