Referencias cruzadas

Introducción

Las referencias cruzadas en Quarto permiten una navegación fluida entre diferentes entidades como figuras, tablas, secciones y ecuaciones, mejorando significativamente la legibilidad y accesibilidad de los documentos.

Las referencias cruzadas requieren etiquetas únicas para cada entidad. Por ejemplo, #fig-element etiqueta una figura y #tbl-element etiqueta una tabla. Esto facilita la referencia en otras partes del documento.

Aprenderá a:

  • Referencias cruzadas entre figuras, tablas y listas de códigos.
  • Crear referencias cruzadas personalizadas.
  • Utilice subreferencias para elementos anidados.
  • Incluir valores calculados en los pies de foto.
  • Personalizar el aspecto de las referencias cruzadas.
  • Enumere todas las figuras, tablas y listas de códigos de un documento.
  • Referencias cruzadas, teoremas y pruebas.
  • Referencia cruzada de secciones, diagramas y vídeos.
  • Referencia cruzada de figuras suplementarias.


Ejemplo de figuras:

![Elefante](elephant.png){#fig-elephant}

Para hacer referencia a esta figura en otro lugar, utilice:

Ver @fig-elephant para una ilustración.
Nota

Evite los guiones bajos para evitar problemas con LaTeX.

Entidades con referencias cruzadas

Personalizar la apariencia :

Tipo Sintaxis Salida
Por defecto @fig-elephant Figura 1
Prefijo personalizado [Fig @fig-elephant] Fig 1
Sin prefijo [-@fig-elephant] 1

Agrupe las referencias cruzadas con la siguiente sintaxis:

Como se ilustra en [@fig-elephant; @fig-panther; @fig-rabbit].

Listas

Para PDF:

  • Use \listoffigures, \listoftables and \listoflistings to produce listings of all figure, table, etc.
  • Personalice los títulos con las opciones lof-title, lot-title y `lol-title.

Ejemplo:

---
title: "Mi documento"
crossref:
  lof-title: "List of Figuras"
format: pdf
---

\listoffigures
Nota

Los títulos por defecto de las listas utilizan la forma mostrada arriba (es decir. ‘Lista de <Tipo>’).

Figuras

Más información sobre referencias cruzadas de figuras y subfiguras en Figuras.

Tablas

Más información sobre referencias cruzadas de tablas y subtablas en Tablas.

Listado de códigos

Para hacer que un bloque de código sea referenciable, utilice un prefijo #lst- y lst-cap para el pie de ilustración:

```{#lst-customers .sql lst-cap="Consulta de clientes"}
SELECT * FROM Customers
```
Haga referencia a él con (@lst-clientes).

Para una referencia cruzada que utilice la sintaxis div, envuelva el código y la leyenda en un div ::: {#lst-} div:

::: {#lst-customers}

```{.sql}
SELECT * FROM Customers
```

Consulta de clientes
:::

Para referencias cruzadas de bloques de código ejecutables, utilice lst-label para el identificador con un prefijo lst- y lst-cap para el título. El valor de lst-cap proporciona el título para el listado de códigos:

```{python}
#| lst-label: lst-import
#| lst-cap: Importar pyplot

import matplotlib.pyplot as plt
```

@lst-import...

Resultados del renderizado:

Listado 1: Importar pyplot
import matplotlib.pyplot as plt

Listado 1

Para las celdas de código que generan figuras o tablas, utilice lst-, label y fig-cap/tbl-cap para las referencias cruzadas entre el código y su resultado:

```{python}
#| label: fig-plot
#| fig-cap: Leyenda de la figura
#| lst-label: lst-plot
#| lst-cap: Leyenda del listado

plt.plot([1,23,2,4])
plt.show()
```

El código en @lst-plot produce la figura en @fig-plot.

Salida:

Listado 2: Leyenda del listado
plt.plot([1,23,2,4])
plt.show()
Figura 1: Leyenda de la figura

El código en Listado 2 produce el gráfico en Figura 1.

Llamadas

Para hacer referencia a una llamada, utilice un ID con un prefijo de llamada (consulte Tabla 1) y haga referencia a él con @. Ejemplo: añada #tip-ejemplo a la llamada y haga referencia a ella:

::: {#tip-ejemplo .callout-tip}
## Referencias cruzadas de un consejo

Añada un ID que empiece por `#tip-` para hacer referencia a un consejo.
:::

Ver @tip-ejemplo...

Salida:

Tip 1: Referencias cruzadas de un consejo

Añada un ID que empiece por #tip- para hacer referencia a un consejo.

Ver Tip 1

Los prefijos para cada tipo de llamada son:

Tabla 1: Prefijos para referencias cruzadas de llamadas
Tipo de llamada Prefijo
note #nte-
tip #tip-
warning #wrn-
important #imp-
caution #cau-

Teoremas y pruebas

Para incluir un teorema referenciable, utilice un div con una etiqueta #thm- y escriba el nombre del teorema en el primer encabezado. Puede añadir cualquier contenido dentro del div:

::: {#thm-line}

## Ecuación de línea

La ecuación de cualquier recta se puede escribir como:

$$
y = mx + b
$$
:::

Ver @thm-line.

Salida:

Teorema 1 (Ecuación de línea) La ecuación de cualquier recta se puede escribir como:

\[ y = mx + b \]

Ver Teorema 1.

Variantes de teoremas admitidas y su prefijo de etiqueta:

Prefijo de etiqueta Nombre impreso Entorno LaTeX
#thm- Teorema teorema
#lem- Lemma lema
#cor- Corolario corolario
#prp- Proposición proposición
#cnj- Conjetura conjetura
#def- Definición definición
#exm- Ejemplo ejemplo
#exr- Ejercicio Ejercicio
#sol- Solución solución
#rem- Observación observación

Cree una prueba añadiendo la clase .proof a un div:

::: {.proof}
Por inducción.
:::
Nota

proof no está numerado (y, por tanto, no se pueden hacer referencias cruzadas). Al igual que con los teoremas, puede incluir opcionalmente un título como primer elemento del div.

Ecuaciones

Etiquete las ecuaciones con #eq- inmediatamente después para hacerlas referenciables:

Las ecuaciones lineales (@eq-linear) tienen la forma:
 
$$
y = mx + b
$$ {#eq-linear}

Salida:

Las ecuaciones lineales (Ecuación 1) tienen la forma:

\[ y = mx + b \tag{1}\]

Secciones

  1. Añada #sec- a los títulos para las referencias a secciones:
## Introducción {#introduction}

Consulte @sec-introduction para más detalles.

Y

  1. Habilite la opción ““numerar secciones”” en los metadatos del documento para que la numeración sea visible:
---
title: "Mi documento"
number-sections: true
---

Diagramas

  1. Añadir el prefijo fig- a un div ID para referencias cruzadas.
  2. Para referirse a ella como figura, utilice el prefijo @. Por ejemplo, Figura 2 se crea utilizando:
::: {#fig-simple}

```{dot}
graph {
  A -- B
}
```

Gráfico simple de graphviz
:::

A A B B A--B

Figura 2: Este es un gráfico simple de graphviz

Vídeos

Utilice la sintaxis div para añadir un vídeo y un pie de foto, y luego haga referencia a él como una figura:

::: {#fig-cern}

{{< video https://www.youtube.com/embed/wo9vZccmqwc >}}

El vídeo 'CERN: El viaje del descubrimiento'

:::

En @fig-cern...

Que se renderiza como:

Captura de pantalla que muestra un vídeo de YouTube

Si prefiere dar a los vídeos una etiqueta y un contador distintos de las figuras, considere definir Tipos de referencias cruzadas personalizadas.

Subreferencias

Nota

Cuando el subcontenido está formado por todas las figuras o todas las tablas, existe una sintaxis abreviada. Para más detalles, consulte la página de referencias cruzadas para Subfiguras y Subtablas.

Utilice divs anidados para crear elementos con subreferencias:

  • Div exterior: Referencia principal (fig-subrefs) con un título general.
  • Divs interiores: Referencias específicas (fig-first, fig-second) con títulos individuales.
:::: {#fig-subrefs}

::: {#fig-first}
CONTENIDO 1

Primer pie de foto
:::

::: {#fig-second}
CONTENIDO 2

Segundo título
:::

Leyenda principal
::::

Se representa como:

CONTENIDO 1

(a) Primer pie de foto

CONTENIDO 2

(b) Segundo título
Figura 3: Leyenda principal

Tanto el elemento principal como los subelementos pueden referenciarse directamente en el texto, por ejemplo.

@fig-subrefs, @fig-first, @fig-second

Esto se representa como: Figura 3, Figura 3 (a), Figura 3 (b).

En combinación con los atributos de diseño, puede crear diseños complejos de contenido mixto en los que cada elemento puede ser referenciado. Por ejemplo:

:::: {#fig-complex layout="[[1, 1], [1]]"}

::: {#fig-elephant}

![](images/elephant.jpg)

Un archivo de imagen
:::

::: {#fig-scatterplot}

```{r}
#| echo: false
plot(1:10)
```

Una figura computacional
:::

::: {#fig-diagram}

```{dot}
//| fig-height: 2
digraph {
  rankdir = "LR";
  Transform -> Visualize
}
```

Un diagrama
:::

Ejemplo de figura que combina distintos tipos de contenido
::::

Se representa como:

Disposición compleja de figuras con una imagen, un gráfico y un diagrama

Leyendas calculadas

Si desea incluir valores calculados en un título, utilice la sintaxis div de referencias cruzadas junto con una expresión de código en línea:

::: {#fig-box}

```{python}
#| echo: false
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 10]
p = plt.boxplot(x)
plt.show()
```

Este conjunto de datos tiene observaciones `{python} len(x)`.

:::
::: {#fig-box}

```{r}
#| echo: false


x <- c(1, 2, 3, 4, 5, 10)
boxplot(x)

```

Este conjunto de datos tiene observaciones `{r} length(x)`.

:::

Referencia cruzada personalizada

  • Las referencias cruzadas Float como figuras, tablas y listados de código pueden flotar en el documento con subtítulos.
  • Defina flotadores personalizados en YAML con:
    • kind: Must be float.
    • key: Abbreviation for reference ID (e.g., vid para vídeo).
    • reference-prefix: Texto para la referencia de salida (por ejemplo, ‘En la Figura 1, …’).
    • caption-prefix: Texto para el pie de foto (por ejemplo, ‘Figura 1: …’). Si no se especifica, el prefijo predeterminado es reference-prefix.

Vídeo

Ejemplo:

crossref:
  custom:
    - kind: float
      reference-prefix: Vídeo
      key: vid

Referencia con:

::: {#vid-cern}



'CERN: El viaje del descubrimiento'
:::

En @vid-cern.

Salida:

Vídeo 1: ‘CERN: El viaje del descubrimiento’

En Vídeo 1

Salida PDF

  • Añada latex-env en YAML para nombrar el entorno float en TeX para referencias personalizadas, como video para vídeos:

    format: pdf
    crossref:
      custom:
        - kind: float
          reference-prefix: Vídeo
          key: vid
          latex-env: video
    
    \listofvideos{}
  • Use \listof command in LaTeX for listing custom references, appending s to latex-env, like \listofvideos{} for videos.

  • El título del listado es por defecto reference-prefix, but you can customize it with latex-list-of-description.

Figuras suplementarias

Para figuras suplementarias en un documento:

  • Deben tener un contador separado de las figuras normales.
  • Las etiquetas deben ser ‘Figura S1’, ‘Figura S2’, etc.
  • Incluya una sección de ‘Lista de figuras complementarias’.

Defina este tipo como sigue:

crossref:
  custom:
    - kind: float
      key: suppfig
      latex-env: suppfig
      reference-prefix: Figura S
      space-before-numbering: false
      latex-list-of-description: Supplementary Figura
Nota

Tenga en cuenta el uso de space-before-numbering: false, que evita un espacio entre el reference-prefix o caption-prefix y el contador, de modo que las etiquetas aparecerán como ‘Figura S1’, ‘Figura S2’, etc.

Referencias