Introducció a Quarto

Joaquim Puig

Quarto, Markdown+Pandoc

  • Modificacions del format md estàndar: ‘xerrada.qmd’
  • Encara que ja es pot exportar, amb l’encapçalament definim com es renderitza el document per defecte:
---
title: "Introducció a Quarto"
author: Joaquim Puig
format: html
---

i aleshores quan ho renderitzem crearà ‘xerrada.html’.

quarto render xerrada.qmd

o bé de forma integrada i/o visual a RStudio, VSCode…

Generació de PDF

Generació de PDF/Latex ‘xerrada.pdf’

---
title: "Introducció a Quarto"
author: Joaquim Puig
format: pdf
---

usant PDF/Typst https://typst.app ‘xerrada.pdf’

---
title: "Introducció a Quarto"
author: Joaquim Puig
format: typst
---

Més control sobre LaTeX

A part d’usar ‘format: latex’ com a opció, també

---
title: "Introducció a Quarto"
author: Joaquim Puig
format:
  pdf:
    include-in-header:
      - text: |
          \usepackage{times}
    keep-tex: true
---

això ens crearà un fitxer ‘xerrada.tex’ que usarà el paquet times per a generar un ‘xerrada.pdf’. Podem També especificar macros, paquets locals, fitxers bibtex…

Generació de PPT/ODT

Per a presentacions, podem usar html a través de RevealJS com aquesta mateixa presentació ‘index.qmd’ o bé PowerPoint:

---
title: "Introducció a Quarto"
author: Joaquim Puig
format: pptx
---

i ens crearà ‘xerrada.pptx’. Les equacions no es visualitzen bé en LibreOffice 😞.

Generació de DOCX/ODT

MS Word: xerrada.docx

---
title: "Introducció a Quarto"
author: Joaquim Puig
format: docx
---

ODT: xerrada.odt

---
title: "Introducció a Quarto"
author: Joaquim Puig
format: odt
---

Templates per a articles

Caldrà que ens instal·lem una extensió per a articles:

$ quarto use template quarto-journals/plos

format ‘plos-docx’ o bé ‘plos-pdf’:

---
title: "PLOS template"
format:
  plos-docx:
(...)

Crearà un directori en un projecte amb:

Integració amb codi

Literate Programming (Programació lletrada?)

  • Integrar documentació i codi, veieu Wikipedia.
  • Ja implementat per Knuth (1987) a través de WEB.
  • En l’univers R, ja fou desenvoupat per Yihui Xie.
  • La meva opinió personal és que els càlculs forts convé fer-los a part de cara a la reproductibilitat i disponibilitat de dades (FAIR).
  • Podem usar l’opció ‘cache:true’ per no haver de tornar a córrer càlculs.

Literate programming: R

---
title: "Literate Programming in R"
engine: R
---
quarto render dashboard-R.qmd

Literate programming: Python

---
title: "Literate programming"
jupyter: python3
---

i fem

quarto render calculs-python.qmd

Exemples:

Literate programming: Julia

---
title: "Usant Quarto amb Julia (quarto 1.5)"
engine: julia
---

Interactivitat en el client

Output interactiu amb R+htmlwidgets:

Observable permet fer càlculs al client.

Aplicacions interactives al navegador

Execució Client vs Servidor

  • Fins ara els exemples que hem vist permeten interactivitat en la visualització però no en els càlculs (excepte OJS).
  • Si es vol interactivitat (en R/Python/Julia) s’ha d’usar un servidor on es fan els càlculs, que es visualitzen interactivament en el client. A R s’usa ‘shiny’ i hi ha altres frameworks per a Python.
  • En els darrers mesos (o setmanes 🙈 …) hi ha hagut grans avenços en WASM: la possibilitat de compilar codi en R, Python o fins i tot Julia en el navegador.

Aplicacions interactives: R + WebR

$ quarto add coatless/quarto-webr

Exemples:

Versió en Python: Python + Pydiode