16  Quarto avanzado

16.1 Introducción

En este apartado se explican algunas de las funcionalidades avanzadas de Quarto. Los elementos esenciales ya los hemos visto en los apartados anteriores, así que leer esta sección es opcional y solo recomendada para quien tenga interés en descubrir algunas funcionalidades adicionales. También podrás encontrar información adicional en los siguientes enlaces:

16.2 Más YAML

En YAML podemos precisar y personalizar cómo se visualizará el Html de Quarto. Por ejemplo:

  • Podemos poner la fecha automáticamente:
date: "`r Sys.Date()`"
  • Podemos poner una foto junto al título:
title: "![Poner nombre de título](logo_uoc.jpg){width=2in}"
  • Podemos cambiar el tema visual del documento y el estilo de los subrayados1.
  • 1 Para una lista de los diferentes estilos de temas y subrayados véase este enlace.

  • theme: paper
    highlight: tango
    • Podemos definir cómo se reproducirán por defecto algunos elementos de Html, como las tablas y gráficos.
    fig-width: 6 
    fig-height: 4 
    • Podemos incrustar todas las imágenes del Html en el propio documento, de manera que el archivo Html se pueda abrir en otros ordenadores sin necesidad de archivos complementarios. Por ello, tendremos que introducir el comando embed-resources: true en el YAML de la siguiente manera.
    title: "Title"
    format: 
      html:
        embed-resources: true

    16.3 Opciones globales

    Es recomendable tener un primer chunk con el nombre setup o similar donde anotamos algunas configuraciones básicas de nuestro Quarto. Es muy útil utilizar el siguiente código para marcar las opciones predeterminadas de todos los chunks del documento. A continuación indicamos que se esconda el código, los mensajes y avisos de todos los chunks.

    knitr::opts_chunk$set(echo = FALSE, message = FALSE, 
                          warning = FALSE)

    El primer chunk puede también ser útil para cargar los paquetes y objetos que necesitaremos durante el documento.

    16.4 Referencias al texto

    Para referenciar una sección del documento, lo adecuado es poner el código de la referencia justo después del título de sección. Este código lo pondremos entre corchetes y encabezado de la almohadilla. Por ejemplo:

    # Introducción{#intro}

    Entonces, en cualquier momento del texto podremos referenciar la sección de una manera muy similar a la forma en que referenciamos las páginas web: [texto](#intro). El texto al que haga referencia lo pondremos entre corchetes seguido de los paréntesis, que incluirán el código de la sección con una almohadilla delante.

    En este enlace, también podréis ver cómo se pueden referenciar tablas y marcos de datos.

    16.5 Poner bibliografía

    La forma más sencilla de poner la bibliografía en Quarto es a través de un documento BibTex (.bib). La mayoría de gestores de citas bibliográficas, como Mendeley o Zotero, utilizan este tipo de formato para su almacenamiento. En Quarto explicaremos cómo utilizarlos de forma que nos genere automáticamente una lista de las fuentes citadas al final del documento. Los pasos que deberemos dar para crear una bibliografía son los siguientes:

    1. En RStudio abrimos un documento de texto (Text file) y lo guardamos como biblio.bib en el directorio de trabajo, donde también tenemos guardado el archivo de Quarto con el que estamos trabajando. Dentro del documento guardaremos el texto que vemos a la derecha, que son las referencias que deberíamos utilizar para referenciar la base de datos NMC que hemos trabajado en el tutorial.

      Para saber más sobre el estilo de cita BibTex, podéis consultar RMarkdown Cookbook, Reproducible Research in R o Wikibooks: LaTeX/Bibliography Management.

    @book{Singer1972,
    address = {New York},
    author = {Singer, J. David and Small, Melvin},
    publisher = {Wiley},
    title = {{The wages of war, 1816-1965: a statistical handbook}},
    year = {1972}
    }
    @article{Singer1987,
    author = {Singer, J. David},
    journal = {International Interactions},
    pages = {115--132},
    title = {{Reconstructing the Correlates of War Dataset on Material Capabilities of States, 1816-1985}},
    volume = {14},
    year = {1987}
    }
    1. En el YAML, introduciremos una nueva línea donde explicaremos dónde se encuentra el documento que contiene la bibliografía:
    bibliography: biblio.bib
    1. Introduciremos la cita en cualquier lugar del texto:
    • Si lo acotamos con corchetes [@Singer1987] nos pondrá nombre y año entre paréntesis: (Singer, 1987).
    • Si no utilizamos los corchetes @Singer1987 nos pondrá solo el año entre paréntesis: Singer (1987).
    1. En la última línea del documento de Quarto, pondremos un título # Referencias para separar la bibliografía del resto del texto.

    Algunos paquetes de R como RefManageR automatizan la gestión de citas.

    16.6 Cambiar el formato del texto

    Quarto ha mejorado significativamente la posibilidad de cambiar el formato del texto en relación a las versiones de RMarkdown, aunque todavía resulta laborioso realizar grandes cambios. Lo más aconsejable es introducir en el YAML las siguientes opciones para modificar el tamaño o la fuente del texto principal:

    fontsize: 18px
    mainfont: Arial

    Otras opciones de formato de texto se pueden encontrar aquí.

    16.7 Tablas

    Otra de las asignaturas pendientes de Quarto son las tablas. Imaginémonos cómo creamos una tabla en Word: vamos a “Crear tabla” y simplemente nos pedirá el número de filas y columnas de la tabla. Quarto es bastante más complicado. Veamos un ejemplo. Este es el código que deberemos utilizar para crear una tabla.

    | Función       | Paquete    | Descripción                                |
    |--------------|-----------|--------------------------------------------|
    | `filter()`   | `dplyr`   | Filtra las observaciones del marco de datos  |
    | `separate()` | `tidyr`   | Separa los elementos de un vector            |
    | `read_csv()` | `readr`   | Lee los archivos CSV                     |
    | `ggplot()`   | `ggplot2` | Reproduce elementos gráficos                |

    El resultado de este código es el de la tabla 16.1 siguiente:

    Tabla 16.1: Ejemplo de tabla
    Función Paquete Descripción
    filter() dplyr Filtra las observaciones del marco de datos
    separate() tidyr Separa los elementos de un vector
    read_csv() readr Lee los archivos CSV
    ggplot() ggplot2 Reproduce elementos gráficos

    Hay algunas opciones más sencillas para crear tablas. La primera es construirlas a partir de un marco de datos o una matriz de datos. La segunda es utilizar el Editor Visual (véase el siguiente apartado).

    16.8 Editor visual

    El Editor Visual salió en una de las actualizaciones de 2020 para dar respuesta a usuarios que necesitaban una interfaz más parecida a Word para generar documentos. Para utilizar el Editor Visual, debe clicar la rueda dentada del documento de Quarto y seleccionar la primera opción:

    Con el editor visual veremos una interfaz que nos será mucho más familiar. Sin embargo, recomendamos utilizarlo solo puntualmente.

    16.9 Publicar en internet

    Publicar un documento generado con Quarto en internet es muy rápido. La forma más directa es mediante RPubs, aunque también se pueden hacer páginas web más sofisticadas, blogs o libros.

    • RPubs: RPubs es la forma más rápida de publicar en la red. Dentro de RStudio, una vez el Html se haya generado en el Viewer, haz clic en el icono azul del Viewer (Publish -> Publish a Document), selecciona RPubs y sigue las instrucciones.
    • Quarto Publish: Quarto también permite crear libros, blogs, presentaciones y páginas web. Toda la información se puede encontrar en la sección Publishing,en la web de Quarto.