Anexo F Quarto


Quarto es un entorno de trabajo que facilita estructurar un documento que reúna las salidas, tanto gráficas como de texto, junto con el código que las genera. Este entorno se basa en el lenguaje markdown y puede usarse desde RStudio. Quarto es presentado por sus desarrolladores como la siguiente generación de R Markdown (Anexo E).

Para facilitarles a los usuarios de R Markdown el proceso de migración hacia Quarto (recomendado), el presente anexo incluye una serie de cajas de borde amarillo (como la presente) en las que se resaltan las principales diferencias entre estas dos herramientas. No obstante, quienes estén iniciándose en Quarto sin haber trabajado previamente con R Markdown tendrán una lectura más fluida omitiendo estas cajas.

Habrá, sin embargo, cajas con bordes de otros colores que sí son relevantes para todos los usuarios.

El proceso involucra dos archivos: un archivo fuente y el documento de salida para la lectura. Los formatos más populares para documentos de salida son html, pdf y Word. Por su parte, el documento fuente de Quarto es un archivo de texto plano con extensión qmd, lo que lo hace identificable y procesable por RStudio.


F.1 Documento Quarto

La escritura de un reporte, artículo, libro, etc., comienza con un documento de Quarto (.qmd). Este documento contiene toda la información para generar el documento de salida.

F.1.1 Componentes del Documento Quarto

Los documentos de Quarto pueden estar conformados por tres tipos de contenidos:

  1. Un encabezado en formato YAML
  2. Fragmentos de código
  3. Texto

F.1.1.1 Encabezado YAML

El encabezado en formato YAML (YAML Ain’t Markup Language) aparece al principio del documento de Quarto. Aunque es optativo, bajo ciertas circunstancias se genera automáticamente durante el proceso de renderizado que genera el archivo de salida. Tanto el inicio como la finalización del encabezado YAML están definidos por tres guiones aislados en una línea. La información contenida dentro de esas dos líneas constituye el encabezado YAML. Allí suelen incluirse metadatos (tales como título, autor y fecha) y opciones generales que determinan la edición y las salidas (tales como el modo de edición predeterminado, el formato de salida y el tamaño de las imágenes). Cada uno de tales elementos ocupa una línea; para su definición se usa la sintaxis clave: valor.

---
title: "RESPUESTA FISIOLÓGICA"
author: "José Antonio Pérez"
date: 2023-09-20
format: html
---

Para definir el formato de salida, en lugar del valor html, pueden usarse los valores pdf o docx para generar documentos en pdf o Word, respectivamente.

La salida por defecto es en formato html, por lo que no haría falta especificarla si este fuera el formato deseado.

La definición del formato de salida en el encabezado YAML mediante la clave format es equivalente a la clave output en el encabezado de R Markdown:

output: html_document
output: pdf_document 
output: word_document 

F.1.1.2 Fragmentos de código

El documento Quarto puede incluir tantos fragmentos de código como sean necesarios. Cada fragmento de código debe iniciarse con tres comillas invertidas seguidas de la letra r dentro de llaves35. El fragmento finaliza con tres comillas invertidas aisladas en una línea. Todas las instrucciones incorporadas entre la línea de inicio y la de finalización constituyen un bloque de código o fragmento de código (code chunk). Los fragmentos de código tienen las mismas características que el código de los scripts clásicos de R.

```{r}
x <- c(4.1, 6.5, 4.8, 3.5, 2.7, 3.0, 5.9, 2.3)
var(x)
```

Este fragmento de código, además de crear el vector X, que podría usarse posteriormente, genera el siguiente resultado.

#> [1] 2.322857

Para facilitar la creación de un nuevo fragmento de código, puede usarse la combinación de teclas Ctrl + Alt + i (o el ícono Insert a new code chunk ), con lo cual se incluye un fragmento de código vacío en el documento.

```{r}

```
F.1.1.2.1 Opciones de los fragmentos de código

Los fragmentos de código pueden incluir opciones, de manera análoga a los argumentos de las funciones, pero, a diferencia de los argumentos de las funciones (que aplican únicamente a una función particular en una invocación específica) las opciones de los fragmentos de código aplican a todo el fragmento. Se trata de opciones generales, como el nombre del fragmento, si se ejecuta o no y si su contenido se muestra en el documento final (cf. sección F.2.1). A diferencia de los argumentos de las funciones —algunos de los cuales son obligatorios— todas las opciones de los fragmentos de código son optativas.

Cuando un fragmento de código incluye opciones, estas se indican con los símbolos #| y manejan la misma sintaxis de las opciones del encabezado YAML, es decir, clave: valor.

```{r}
#| label: Carga de paquetes
#| include: false

library(MASS)
library(car)
library(agricolae)
```

Al escribir las opciones de los fragmentos de código deben atenderse una serie de reglas:

  1. Las opciones deben aparecer en la primera línea del fragmento y posteriores, sin que medie ningún código ejecutable, comentario ni espacio entre ellas. Cada opción ocupa una línea.

  2. La etiqueta indicadora de las opciones de fragmento de código #| debe iniciar en la primera columna, sin que la anteceda ningún espacio.

  3. Tras la etiqueta #| es necesario dejar exactamente un espacio.

  4. Los dos puntos van pegados de la clave, sin dejar ningún espacio de separación (v. gr., include:).

  5. Debe dejarse al menos un espacio entre los dos puntos que anuncian el valor de la clave y el valor (v. gr., include: false).

  6. Cuando la clave tiene un valor lógico, este puede ser true o false.

En R Markdown, las opciones de los fragmento de código se escriben dentro de las llaves que dan inicio al fragmento, usando la sintaxis de programación de R. Para facilitar el proceso de migración, Quarto también reconoce esta forma de especificar las opciones, no siendo necesario realizar ninguna adecuación a tales opciones para pasar tales fragmentos de código de un documento de R Markdown a uno de Quarto

Una de las opciones de los fragmentos de código es un nombre o etiqueta de identificación (label), el cual puede constar de una o más palabras, sin que sea necesario entrecomillarlas. No obstante, en caso de optar por la inclusión de etiquetas, estas deben ser únicas.

Dos o más fragmentos de código no pueden tener el mismo nombre.

```{r}
#| label: resumen
summary(anova)
```

Cuando no se asignan etiquetas a los fragmentos de código, estos aparecen con un identificador genérico: chunk 5, chunk 6, chunk 7… Las etiquetas o nombres de los fragmentos pueden facilitar la navegación en documentos que contengan muchos fragmentos de código.

Para acceder al panel de navegación, se hace clic en el ícono que aparece la parte inferior izquierda de la ventana que contiene el documento Quarto.

Si bien es cierto que la asignación de etiquetas a los diferentes fragmentos de código puede facilitar la navegación a través de estos, también es cierto que su inclusión —así como la verificación de unicidad— puede exigir más tiempo del que eventualmente pueda ganarse posteriormente. En tal sentido, cada usuario habrá de valorar cuál de estas opciones (inclusión u omisión de etiquetas) le brinda mayores beneficios.

Algunas opciones de los fragmentos de código pueden establecerse de manera global en el encabezado YAML, de manera que afecten a todos los fragmentos de código (cf. sección F.2.1).

Es posible incluir comentarios dentro de los fragmentos de código, mediante el uso del símbolo numeral (#). Al igual que en los scripts clásicos, tales comentarios se usarían como guía dentro del correspondiente fragmento o para desactivar temporalmente alguna instrucción sin borrarla. No obstante, para realizar comentarios más elaborados sobre algún procedimiento o resultado particular, con la intención de que tales comentarios aparezcan luego en el documento de salida, se usa el componente texto.

F.1.1.3 Texto

El texto es el tercer tipo de contenido de los documentos Quarto. Cualquier contenido que no forme parte del encabezado YAML ni esté dentro de un fragmento de código se toma como texto y aparecerá como tal en el documento de salida.

Aquí se usa texto en sentido amplio, considerando todos aquellos elementos que usualmente están presentes en un documento proveniente de un editor de textos tipo Word: texto propiamente dicho, tablas, imágenes, ecuaciones…

Tanto Quarto como R Mardown36 procesan el texto usando el lenguaje de marcado ligero markdown. Tales herramientas están incluidas en el paquete rmarkdown, el cual debe estar instalado.

Cuando se usa Quarto desde RStudio no es necesario instalar ni el paquete quarto para R ni el software Quarto para uso independiente, puesto que RStudio ya incluye Quarto37.

Mediante códigos de marcas es posible asignar formatos particulares al texto, los cuales se verán reflejados en los archivos de salida.

F.1.1.3.1 Títulos

Existen 6 niveles de títulos38, que se indican anteponiendo el correspondiente número de símbolos numeral (#) a la línea. El nivel 1 es el título de mayor rango, mientras que el de nivel 6 es el título de menor rango. La apariencia final de los títulos de cada nivel, en términos de color, tipo de letra, tamaño, negrilla, cursiva, etc., dependerá, sin embargo, del tipo de documento de salida que se genere (Word, pdf, html).

Además de lo meramente estético, los títulos de diferentes niveles facilitan la navegabilidad dentro del documento. Un ejemplo de ello se observa en salidas html, como la del presente libro, en las que pueden usarse para generar menús (por capítulos) y submenús (por secciones). De manera análoga, los títulos generan paneles de navegación en documentos pdf y de Word39.

# TÍTULOS DE NIVEL 1

## TÍTULOS DE NIVEL 2

### TÍTULOS DE NIVEL 3

#### TÍTULOS DE NIVEL 4

##### TÍTULOS DE NIVEL 5

###### TÍTULOS DE NIVEL 6

Para que los títulos sean reconocidos, es necesario dejar al menos un espacio entre los símbolos numeral y el texto.

Nótese que el símbolo # desemepeña un rol diferente dependiendo de si se encuentra ubicado dentro de un fragmento de código o si forma parte del texto. Dentro de los fragmentos de código se usa al principio de una línea para indicar que se trata de un comentario (o de código que no se ejecuta). Cuando aparece al inicio de una línea de texto actúa como marcador de título.

El texto que no lleve antepuesto ningún símbolo numeral se maneja como texto ordinario.

F.1.1.3.2 Formato de texto

Mediante etiquetas, puede indicarse que cualquier texto sea formateado en itálica, negrilla o una combinación de ambas. También puede formatearse un texto como tachado.

*itálica*

**negrilla**

***negrilla e itálica***

~~tachado~~

Igualmente, usando etiquetas, puede indicarse el formato de subíndice o superíndice.

~subíndice~

^superíndice^

Así, cuando se escribe lo siguiente en el documento fuente de Quarto,

Y = c~1~X + c~2~X^2^ + c~3~X^3^

aparece así en el documento final:

Y = c1X + c2X2 + c3X3

También es posible incluir comentarios en el texto, es decir, fragmentos de texto que se mostrarán en el documento fuente de Quarto, pero que no aparecerán en el documento final (Word, pdf, html…). Los símbolos <!-- marcan el inicio de un comentario. Para cerrarlo, se usan los símbolos -->.

<!-- Comentario que no aparecerá en el documento final -->
F.1.1.3.3 \(\LaTeX\)

Es importante anotar que, como parte del contenido tipo texto, Quarto también admite contenidos alimentados mediante código LaTeX, a través de los cuales es posible incluir ecuaciones, tablas y figuras.

Aunque la composición de textos en LaTeX es un tema vasto, no se requiere dominarla para escribir algún contenido básico. Quien no esté familiazado con este sistema de composición de textos puede aprender lo básico en 30 minutos, tal y como reza el título de uno de los tutoriales de Overleaf: Learn LaTeX in 30 minutes.

Los contenidos admitidos y la calidad en la que estos se presentan dependen del formato del documento de salida, siendo los documentos pdf los que mejor presentan las salidas basadas en LaTeX.

Para generar archivos pdf es necesario tener instalado un procesador de LaTeX. Para la mayoría de usos basta con instalar TinyTeX, usando para ello el paquete tinytex:

tinytex::install_tinytex()

Si esto fuera insuficiente, habría que instalar una distribución completa de LaTeX, tal como MiKTeX (https://miktex.org/download). Este último es un software externo; no un paquete para R.

Existen dos modos de inclusión de ecuaciones usando código LaTeX: dentro de la línea (inline equation) y en línea aparte (display equation).

Para escribir una ecuación dentro de una línea, basta con rodearla con símbolos dólar.

La varianza poblacional $\sigma^2$ se estima…

El texto final mostrará lo siguiente:

La varianza poblacional \(\sigma^2\) se estima…

Para escribir una ecuación en línea aparte (display equation) usando código LaTeX, basta con rodearla de doble símbolo dólar.

El estimador mínimo cuadrático de la varianza es:

$$
S^2=\frac{\sum\limits_{i=1}^{n}{(X_i-\bar{X})^2}}{n-1}
$$

En el documento de salida aparecerá así:

\[ S^2=\frac{\sum\limits_{i=1}^{n}{(X_i-\bar{X})^2}}{n-1} \]

El código LaTeX es el indicado para presentar todo lo concerniente a ecuaciones. Las posibilidades de subíndice y superíndice que se ilustraron anteriormente usando marcación markdown son bastante limitadas y no trascienden de esa tarea específica. Aun en tareas tan sencillas como ubicar una serie de subíndices y superíndices, LaTeX realiza una labor mucho más estética, adecuando el formato de toda la ecuación.

Para ilustrarlo, presentamos nuevamente la combinación lineal, usando código markdown

Y = c~1~X + c~2~X^2^ + c~3~X^3^

En el documento de salida se obtiene lo siguiente:

Y = c1X + c2X2 + c3X3

Ahora presentamos la misma combinación lineal usando código LaTeX

$$
Y=c_1X+c_2X^2+c_3X^3
$$

En el documento de salida se obtiene lo siguiente:

\[ Y=c_1X+c_2X^2+c_3X^3 \]

¡La diferencia salta a la vista!

En R Markdown también pueden escribirse las ecuaciones en línea usando el formato de apertura \( y el formato de cierre \). En Quarto únicamente es admisible el símbolo $ como formato de apertura y de cierre.

Asimismo, en R Markdown pueden escribirse las ecuaciones en línea independiente usando el formato de apertura \[ y el formato de cierre \]. En Quarto únicamente es admisible el símbolo $$ como formato de apertura y de cierre.

F.1.2 Estructura del documento Quarto

En el documento fuente de Quarto, tras el encabezado opcional YAML que iría al comienzo del documento, pueden alternarse todos los fragmentos de código y texto que sean requeridos, sin que exista restricción alguna ni en número ni en orden.

Un documento de Quarto podría tener el siguiente aspecto:

---  
title: Ensayo primer semestre
---  
### Lectura de datos

Se incluyen únicamente los registros del primer semestre    
<!-- Aún no se ha terminado la cosecha del segundo semestre --> 
```{r}
#| importación

data <- readxl::read_excel("etapas.xlsx")
```
## Fotosíntesis
```{r}
#| FOTO

anova <- aov(foto ~ etp, data)
shapiro.test(resid(anova))
```
Puesto que no se satisface normalidad (p-value = 0.001977),
se evalúan diferentes transformaciones

En este documento Quarto, la primera sección es el encabezado YAML, el cual, para el presente caso, contiene únicamente el título. A continuación se intercalan secciones de texto, código, texto, código y texto.

Este intercalamiento de código y texto es la razón de ser de los fragmentos de código. El texto puede usarse, bien sea a manera de título o como texto ordinario, para anunciar algún análisis particular, el cual se realiza a continuación mediante un fragmento de código. Luego del fragmento de código, puede incluirse texto adicional para comentar sobre los resultados obtenidos y quizá para justificar los análisis posteriores.

Cada uno de los fragmentos de código puede ejecutarse individualmente. De hecho, esta es la práctica recomendada al analizar información e ir construyendo el reporte, a fin de comentar los resultados (mediante texto) a medida que estos se generan e ir adaptando los análisis en función de los resultados obtenidos.

Un fragmento de código puede ejecutarse en su totalidad o línea por línea. Al igual que en los scripts clásicos, la combinación de teclas Ctrl + Enter permite ejecutar una instrucción o el conjunto de instrucciones seleccionadas. Mediante la combinación de teclas Ctrl + Shift + Enter, se ejecuta todo el fragmento de código, acción que igualmente puede realizarse presionando el triángulo verde que se ubica en la parte superior derecha de cada fragmento de código ( Run Current Chunk).

Durante la construcción del documento Quarto es usual que los fragmentos de código se ejecuten de manera secuencial, lo que da lugar a un proceso fluido, siempre que el código se haya escrito adecuadamente. Debe tenerse presente, sin embargo, que toda nueva sesión de Quarto inicia con un ambiente de trabajo vacío, en el que no se habrá creado ningún objeto. Luego, cuando, partiendo de una nueva sesión de trabajo, se revisa algún fragmento de código particular, podría ser que este dependiera de fragmentos anteriores, en los que, por ejemplo, se hubieran importado o cargado los datos, definido nuevas variables, ajustado modelos, etc. Para garantizar la correcta ejecución del fragmento de interés, podrían ubicarse y ejecutarse aquellos fragmentos previos de los cuáles dependa el fragmento de interés. Otra posibilidad, que en la mayoría de los casos puede ser más expedita, consiste en ejecutar el fragmento de interés junto con todos los fragmentos previos, en orden de aparición. Para ello se usa el ícono conformado por un triángulo gris sobre una barra horizontal verde, el cual está ubicado en la parte superior derecha de cada fragmento: Run All Chunks Above.

Las salidas que se generen con la ejecución de un fragmento de código se muestran a continuación del correspondiente fragmento, bien sean salidas gráficas o de texto. Esto facilita la estructuración del informe final, mediante la incorporación de los comentarios que sean del caso.

También es posible combinar texto y código, mediante el denominado código en línea (inline code), el cual consiste en una expresión de código R inmersa dentro de un texto.

El código en línea inicia con una comilla invertida y la letra r (`r) y finaliza con una comilla invertida (`):

`r print(X)`

El código en línea resulta útil para concatenar texto fijo con algún resultado variable, al estilo de las salidas generadas por la función cat (cf. capítulo 15).

Considérese la siguiente adaptación de una parte del documento presentada anteriormente, en la que se guarda el resultado de la prueba Shapiro-Wilk en el objeto sw, para extraer posteriormente el valor p:

```{r FOTO}  
anova <- aov(foto ~ etp, data)  
sw <- shapiro.test(resid(anova))  
```

Puesto que no se satisface normalidad (p-value = `r sw[2]`), se evalúan diferentes transformaciones (en el documento de salida aparecerá el correspondiente valor p).

En ocasiones se desea insertar código no ejecutable dentro del texto, es decir, un fragmento que tenga el mismo formato del código, de manera que resalte dentro del texto normal, pero que no se ejecute. Para tal efecto, basta con encerrar el fragmento en cuestión entre comillas invertidas. Así, por ejemplo, en el documento fuente de Quarto se escribiría lo siguiente:

El supuesto de normalidad se evalúa así: `shapiro.test(resid(anova))`.

En el documento de salida se verá similar a lo siguiente:

El supuesto de normalidad se evalúa así: shapiro.test(resid(anova)).

El formato particular que se use para resaltar este código no ejecutable dependerá del tipo de documento de salida.

Para insertar un bloque no ejecutable en línea(s) aparte, se inicia el bloque con una línea de tres comillas invertidas y se finaliza con otra línea de tres comillas invertidas. El bloque puede constar de una o más líneas.

```
anova <- aov(foto ~ etp, data)
sw <- shapiro.test(resid(anova))
```

Las dos líneas del bloque anterior se mostrarán tal cual en el documento de salida, en el formato propio del código, pero sin generar ninguna acción ni resultado.

Lo mismo puede lograrse, sin necesidad de las dos líneas con comillas invertidas, usando una indentación de 4 espacios para cada línea.

F.1.3 Creación de un nuevo documento Quarto

Existen varias formas de crear un nuevo documento de Quarto. Mediante el sistema de menús, se elige “File”, “New File”, “Quarto Document…”. Equivalentemente, puede usarse el ícono New File , seguido de la opción Quarto Document . En cualquier caso, estos pasos llevan a una caja de diálogo, en la que se deja marcada la opción Document (que viene por defecto), y puede personalizarse la información contenida en los campos título y autor, así como el tipo de documento de salida. Esta es la información que irá en el encabezado YAML.

Los nuevos documentos de Quarto contienen información que pretende servir de plantilla. Al comienzo incluyen un encabezado YAML, el cual puede editarse o eliminarse. Seguidamente traen una combinación de textos y fragmentos de código, que hacen las veces de un minitutorial para ilustrar diferentes posibilidades. Esta información deberá eliminarse cuando se empiece a trabajar en un nuevo documento, pudiendo dejar eventualmente el encabezado YAML.

F.2 Documento de salida

Una vez depurado el documento fuente Quarto, se procede a generar el documento de salida, en cualquiera de los formatos html, pdf o Word. Para ello basta con presionar la combinación de teclas Ctrl + Shift+ k, o el ícono Render , con lo cual se generará un documento acorde con la opción indicada en el parámetro format del encabezado YAML (html por defecto).

F.2.1 Opciones de los fragmentos de código que determinan las salidas

Las opciones lógicas echo e include aplicadas a un fragmento de código permiten controlar los elementos que se visualicen u oculten en el documento de salida. La opción echo controla la visualización de los fragmentos de código, mientras que la opción include controla la visualización tanto del código como de los resultados generados. Por defecto, ambas opciones vienen preestablecidas con valor true, lo que significa que en el documento de salida se muestran tanto el código como los correspondientes resultados.

La visualización que se elija para el documento de salida dependerá de los objetivos y el estado del reporte. Si el objetivo del reporte es compartir el análisis con otros usuarios, mostrando no solo los resultados, sino también la manera en que se generaron, deberá incluirse el código (echo: true). Esto posibilita que todos los usuarios revisen los procedimientos con detalle e indiquen las modificaciones que sean del caso. Tales modificaciones se aplicarían, desde luego, sobre el documento fuente de Quarto.

En una etapa final, en la que se hayan depurado todos los procedimientos, podrá eliminarse la visualización del código (echo: false), manteniendo únicamente sus resultados y el texto.

Mediante la opción eval puede indicarse que no se evalúe un fragmento de código (eval: false), lo que resulta útil cuando se escriben tutoriales, en los que únicamente se desea mostrar el fragmento de código, sin las salidas que generaría al ejecutarse.

Es importante diferenciar el efecto que tienen las opciones include y eval:

  1. Mediante la opción include: false se instruye para que las salidas no incluyan ni el código ni los resultados que podría generar; sin embargo, el código sí se ejecuta. Esto es útil para realizar procedimientos internos (tales como como cargar un paquete o establecer parámetros gráficos) de los que no haya que dar cuenta en el documento final.

  2. Por su parte, eval: false muestra el código, pero este no se ejectua.

El valor por defecto para las tres opciones presentadas es true, lo que implica que todos los fragmentos de código se ejecutan y que tanto el fragmento de código como los resultados generados aparecen en el documento final. La siguiente tabla ilustra el efecto que tiene establecer el valor false para estas opciones.

Opción explícita Se ejecuta Se muestra el código Se muestran resultados
eval: false No No
echo: false No
include: false No No


Las opciones que afectan un fragmento de código van antecedidas por la etiqueta #|, tal y como se indicó en la sección F.1.1.2. Así, por ejemplo, para evitar que el fragmento de código FOTO que se presentó anteriormente (cf. sección F.1.2) aparezca en el documento de salida, manteniendo, sin embargo, sus resultados, se le agregaría la opción #| echo: false.

Mensajes y advertencias. Los desarrolladores de código a menudo quieren mantener informado al usuario de lo que sucede tras bambalinas al cargar algunos paquetes o ejecutar algunas funciones. Así, por ejemplo, es común que se informe cuando las funciones de algún paquete enmascaran funciones de los paquetes básicos (cf. capítulo 4). Frecuentemente también se advierte sobre aspectos que deben tenerse en cuenta para interpretar adecuadamente los resultados. Este tipo de información, aunque pueda ser útil mientras se ejecutan los procedimientos, suele evitarse en los documentos de salida. Para ello basta con especificar las siguientes opciones:

#| warning: false
#| message: false

Para establecer directrices globales que afecten todos los fragmentos de código, basta con incluirlas como subopciones40 de la opción execute en el encabezado YAML.

La especificación para que en el documento de salida únicamente aparezcan los resultados y el texto, sin código, mensajes ni advertencias, queda así:

---
execute:
  echo: false
  message: false
  warning: false
---  

La lista completa de opciones, puede consultarse en el sitio de Quarto.

En R Markdown, las directrices globales se establecían mediante la inclusión de un framento de código invisible (include = FALSE) que fijaba opciones de los fragmentos de código:

```{r setup, include = FALSE}
knitr::opts_chunk$set(echo = F)
```

F.2.2 Formatos de Salida

La manera en la que se visualizan los diferentes elementos (fragmentos de código, texto, resultados) en el documento de salida puede variar en función del tipo de documento (html, pdf o Word). No obstante, en general, el código aparece dentro de una caja, con fondo gris. Los resultados se muestran de la misma manera en la que aparecen en la consola de RStudio, es decir, que no están antecedidos por ningun símbolo artificial41 y no tienen ningún tipo de resaltado, modificándose únicamente la fuente.

Quarto diferencia el código de las salidas de una manera más natural que R Markdown, acercándose más a la experiencia de trabajo con RStudio. Asimismo, el hecho de que el código y las salidas aparezcan en diferentes secciones facilita el copiado de código, sin arrastrar innecesariamente las salidas.

El texto aparece como tal, incluyendo las especificaciones de formato que se hubieran elegido para el mismo.

Cada uno de los principales formatos de salida tiene sus ventajas y especificidades:

F.2.2.1 Documentos html

El formato html es el más ventajoso para el lector final, por las posibilidades que le ofrece; muy particularmente, cuando se aplica a contenidos de gran extensión —como el de este libro— que estén divididos en capítulos y secciones:

  • Pueden visualizarse en cualquier navegador de internet.
  • Los paneles de navegación facilitan moverse fluidamente a través de los diferentes temas.
  • El contenido se adapta al tamaño del dispositivo de lectura, resultando cómodo incluso desde un teléfono móvil. Dependiendo del espacio disponible, los paneles de navegación se muestran o se ocultan. Cuando la lectura se realiza desde un teléfono móvil, el contenido y los paneles de navegación se adaptan al giro de la pantalla.
  • Todos los vínculos externos son funcionales, dirigiendo a los recursos citados: páginas, instaladores, libros en línea…
  • Todos los vínculos internos también son funcionales, facilitando ir rápidamente a alguna otra sección o recurso (tablas, figuras o ecuaciones) dentro del mismo libro y regresar al sitio de origen.
  • Puesto que no hay cortes de página, las figuras y tablas pueden incluirse justo después de citarlas.
  • Igualmente, por no haber cortes de página, las tablas se muestra completas y los bloques de código se muestran de manera compacta.
  • Al no haber páginas físicas, las denominadas ‘notas de pie de página’ ya no aparecen al ‘pie de la página’. Dependiendo del estilo html que se elija, pueden aparecer al final de la sección42 o ‘in situ’, como en el presente libro43.
  • Cuando se trate de un libro que incluya código R (no es obligatorio que sea así), es fácil copiarlo y llevarlo a R para realizar la correspondiente verificación y/o adaptación.
  • Pueden disponerse vínculos o botones para bajar material complementario: bases de datos, scripts, paquetes, figuras…
  • Cuando el libro se encuentra en algún repositorio, v. gr. bookdown.org, es probable que su autor realice constantes actualizaciones, con lo cual los lectores tendrán la certeza de estar accediendo siempre a la versión más reciente.

F.2.2.2 Documentos pdf

Son los más adecuados cuando su destino final es un soporte físico. Este formato considera las restricciones que impone la impresión en páginas de un tamaño definido, dando lugar a resultados bastante estéticos. Internamente, el proceso de generación del documento pdf se da a partir de un documento intermedio LaTeX.

F.2.2.3 Documentos Word

Tienen la ventaja de su versatilidad para edición e incorporación en otros documentos. Es el formato ideal para compartir con otros usuarios, facilitándoles el proceso de incluir correcciones y comentarios, sin que tengan que entenderse con ninguna herramienta ‘esotérica’.



Información de referencia

Para conocer más sobre las posibilidades de Quarto, se invita a visitar la página de la aplicación https://quarto.org/. Allí se recomienda empezar por el inicio: Get Started.

Para usar Quarto desde RStudio no es necesario realizar la instalación indicada en el primer paso. Se procede directamente al segundo paso, haciendo clic en el ícono de RStudio, con lo cual el tutorial hará referencia al uso de Quarto a través de esta IDE.

Una vez cubiertos los diferentes apartados del tutorial, se recomienda pasar a la guía Guide, donde podrán encontrase mayores detalles sobre las diferentes funcionalidades de Quarto.

Cuando el proyecto se ubica en una carpeta sujeta a procesos de sincronización en la nube, tales como los de Dropbox, el renderizado no funciona adecuadamente. Para solucionar este problema, bien puede usarse otra ruta que no esté sujeta a sincronización o simplemente puede pausarse la sincronización mientras se esté realizando el renderizado.

El modo visual contiene una serie de herramientas que agilizan el proceso de edición y ayudan a descubrir nuevas funcionalidades. El paso entre el modo visual y el modo fuente suele ser fluido. No obstante, en ocasiones, en particular en documentos que contienen cajas de llamado y tablas en código html estas se desconfiguran al pasar al modo visual. Antes de ensayar este modo, se recomienda respaldar la información.