557 - ¿Terminará typst con markdown?
¿Es el fin de #markdown ? Ha llegado #typst un nuevo lenguaje de marcado ligero a reemplazar a nuestro querido markdown. ¿Es el principio del fin?
Llevo ya algún tiempo viendo distintos artículos referentes a typst
, y durante los últimos días estuve leyendo y probando typst
como lenguaje de marcado. No te engañaré, por un momento, estuve pensando en reemplazar a mi querido markdown, pero, spoiler, al final va a ser que no. Sin embargo, esto no quita que encuentre a typst increíblemente interesante y posiblemente, y a medio o largo plazo, un reemplazo de LaTeX. Así, a la pregunta de ¿Terminará typst con markdown?, la respuesta es, no, al menos en mi flujo de trabajo.
¿Terminará typst con markdown?
Un paseo por el pasado
Como ya he comentado en alguna que otra ocasión, Neovim es mi editor y markdown mi lenguaje de marcado. Son las herramientas que utilizo por defecto, y con lo que me encuentro realmente cómodo, desde hace ya algunos años.
Es muy posible, que pienses, que con las herramientas que hay hoy en día, esta combinación está completamente obsoleta, que vivo anclado en el pasado. Pero, lo cierto es que me encuentro a nivel de productividad, que yo no había visto nunca. Por supuesto que esto es con las circunstancias y el uso que yo le doy, que puede ser que sea radicalmente distinto al tuyo.
Tengo que decirte que no previsualizo markdown, si no que lo veo tal y como es el formato. En Neovim, ya me muestra las cursivas y negritas, eso si, envueltas por su código. Pero para mi es mas que suficiente. Aunque en alguna ocasión utilizo Glow
, para mostrar el resultado final. Herramienta que también está integrada en Neovim.
mkdnflow
Para que te hagas una idea general, actualmente, todos los documentos, tanto tutoriales, como guiones, como artículos, etc, los tengo organizados por directorios, dentro de un directorio general llamado notas
. De este cuelgan el resto, por ejemplo el de podcast, y dentro de él, se encuentra organizado por temporadas. Parecido sucede con el directorio de tutoriales, debajo del cual se encuentran los distintos tutoriales, organizado cada uno por capítulos.
En el encabezado de cada uno de estos se encuentra la meta información del artículo, podcast, capítulo o lo que sea, en formato YAML
, donde indico el título, cuando fue creado y algunas etiquetas. Estas etiquetas me permiten realizar búsquedas, aunque lo cierto es que podría ahorrarme esto.
Todo esto además de organizado por directorios, está organizado por índices, de forma que tengo un índice general, y luego índices particulares por cada una de las colecciones, lo que me permite navegar de forma sencilla, sin necesidad de tocar la terminal, es decir, sin salir de Neovim.
Todo esto lo tengo configurado utilizando un plugin para Neovim que se llama mkdnflow
, y que es el que se encarga de facilitarme todo el trabajo.
pandoc
Llegados a este punto, queda la parte de los libros. Y es que algunos de los tutoriales, los he convertido en libros. No todos los tutoriales. Y ahora me doy cuenta que no están actualizados, otra tarea pa-la-saca.
Para crear los libros utilizo una fantástica herramienta conocida como Pandoc
junto a una pandilla de LaTeX
, que me permite un resultado, que a mi me parece mas que excepcional.
Por supuesto, que esto está implementado en un script en Bash, que me permite compilarlo todo de forma sencilla, y actualizar el libro a voluntad.
Sobre typst
¿Que es typst?
Según los propios desarrolladores de typst
, se trata de un nuevo lenguaje de marcado para ciencias. Está pensado como una alternativa para herramientas avanzadas como LaTeX, como a herramientas mas simples como Word, Writer o Google Docs. El objetivo de los desarrolladores de typst
al crear este lenguaje de marcado, no es otro que el de conseguir crear una herramienta potente y un placer de usar.
Claro que llegados a este punto te estarás preguntando, ¿esto parece el reemplazo de LaTeX
, no el de markdown
?. Y si, tienes razón, está pensado para el primero y no tanto para el segundo, pero, creo, que hay muchas mas posibilidades que tu utilices markdown que utilices LaTeX. De hecho, yo utilizo LaTeX de forma, muy, pero que muy esporádica, y sin embargo, markdown
lo utilizo a diario. Y ¿entonces?
La cuestión, es que como verás mas adelante, typst y markdown tienen un lenguaje de marcado muy similar, y que con poco puedes reemplazar uno por el otro. Es decir, todo lo que hago con markdown, lo podría hacer prácticamente igual con typst, simplemente cambiando ligeramente la sintaxis que utilizo. Pero, typst viene sobrecargado con el potencial que ofrece LaTeX, es decir, digamos que typst ofrece la facilidad de markdown con el potencial de LaTeX.
La sintaxis en typst
Para que te hagas una idea de la similitud entre markdown y typst,
- Para indicar un encabezado se utiliza
=
en lugar de la#
. El número de=
indica el nivel del encabezado. - Los párrafos se realizan exactamente de la misma forma en ambos lenguajes de marcado.
- Las listas numeradas se hacen con el signo
+
, mientras que las no numeradas con el signo-
. - La negrita se hacen con
*
y la cursiva_
. - Para escribir código se utiliza la misma nomenclatura en ambos lenguajes de marcado.
- Los enlaces se escriben tal cual. Sin embargo si quieres añadir un título, tienes que utilizar un regla. Algo parecido a
#link(https://example.com)[Ejemplo]
.
Hay mucho mas, dado que la sintaxis de typst es bastante mas rica que la de markdown, y como consecuencia de ello, es mas complicada de aprender. Un claro ejemplo de esto es las posibilidades matemáticas, que este lenguaje de marcado ofrece.
Sistema de estilo de typst
A diferencia de lo que sucede con markdown, typst permite aplicar estilos. Es posible utilizar reglas para configurar las propiedades básicas de los distintos elementos que constituyen tu documento. Pero, no solo puedes aplicar las reglas que tiene typst definidas por defecto, sino que puedes crear tus propias reglas personalizadas. De esta forma, puedes redefinir por completo la apariencia de tu texto. Básicamente tienes el control total para darle el aspecto, exactamente que tu quieres a tu documento.
Es precisamente en este sistema de estilos de typst donde se diferencia typst de markdown y donde se aproxima a LaTeX.
Para que te hagas una idea de que van esto de las reglas, te comento algunas,
#set heading(numbering: "I.")
te permite definir el formato de la numeración de los encabezados.#set text(font: "New Computer Modern")
selecciona la fuente#set list(marker: [--])
elige el signo de marcado para las listas#set text(red)
selecciona el color rojo para el texto
Scripting en typst
Y si el sistema de estilo de typst te parece poco, decirte que además tiene su propio lenguaje de scripting embebido. Es decir, que puedes automatizar tus propios documentos y crear estilos todavía mas sofisticados utilizando código.
Puedes embeber tu código en el texto, o al revés el texto en el propio código. Y de la misma forma, puedes utilizar condicionales, bucles, métodos, campos, módulos y paquetes.
Se trata de todo un lenguaje de scripting, al que le podría dedicar, no solo un episodio, sino que podría dedicarle varios.
Conclusiones
Como puedes ver, realmente se trata de un auténtico killer de LaTeX, porque te aporta la facilidad de uso de markdown y la potencia de trabajo de LaTeX.
¿Que voy a hacer? Pues, como puedes imaginarte, he estado muy tentando de dar el salto. Pero, la verdad es que actualmente únicamente estoy utilizando markdown, salvo para los libros, que es donde empleo una plantilla de LaTeX. Veo mas inconveniente que ventaja, en mi caso.
Desde luego, que si fuera al revés, es decir, si estuviera utilizando LaTeX, ni me lo pensaba. De cabeza a typst.
Más información,
He probado Typst, la verdad me ha gustado bastante, pero bueno he tenido un error al importar una imagen de JPG que no sé exactamente como funciona
Además, Markdown y orgmode son bastante más fáciles de usar que LaTeX, ya que te permiten hacer cosas sin necesidad de usar una sintaxis tan compleja además me gusta el orgmode debido a su potencia y versatilidad incluso puedes usar algo de codigo LaTeX embebido en orgmode para asi mejorarlo todo al exportar a pdf y demás eso si para sacarle la maxima funcionalidad a org mode es necesario emacs de hecho yo uso emacs principalmente por org mode. Viva los zorros precioso animal