import matplotlib.pyplot as plt
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.
Evite los guiones bajos para evitar problemas con LaTeX.
Entidades con referencias cruzadas
- Figuras, Tablas](#tables) y Listados de código](#code-listings)
- Admite figuras y tablas generadas a partir de celdas de código ejecutables mediante Knitr o Jupyter.
- Llamadas, Teoremas y pruebas y Ecuaciones
- Secciones
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:
[@fig-elephant; @fig-panther; @fig-rabbit]. Como se ilustra en
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
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:
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:
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
`#tip-` para hacer referencia a un consejo.
Añada un ID que empiece por
:::
Ver @tip-ejemplo...
Salida:
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:
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. :::
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
- Añada
#sec-
a los títulos para las referencias a secciones:
## Introducción {#introduction}
Consulte @sec-introduction para más detalles.
Y
- 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
- Añadir el prefijo
fig-
a un div ID para referencias cruzadas. - 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 :::
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:
Si prefiere dar a los vídeos una etiqueta y un contador distintos de las figuras, considere definir Tipos de referencias cruzadas personalizadas.
Subreferencias
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
CONTENIDO 2
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:
[1, 1], [1]]"}
:::: {#fig-complex layout="[
::: {#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:
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()
```
`{python} len(x)`.
Este conjunto de datos tiene observaciones
:::
::: {#fig-box}
```{r}
#| echo: false
x <- c(1, 2, 3, 4, 5, 10)
boxplot(x)
```
`{r} length(x)`.
Este conjunto de datos tiene observaciones
:::
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 befloat
.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 esreference-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:
En Vídeo 1…
Salida PDF
Añada
latex-env
en YAML para nombrar el entorno float en TeX para referencias personalizadas, comovideo
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, appendings
tolatex-env
, like\listofvideos{}
for videos.El título del listado es por defecto
reference-prefix
, but you can customize it withlatex-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
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.