Traducción no oficial al español rioplatense, generada con IA (Claude Sonnet 5.5) bajo la dirección y revisión de Jassiel Ovando. No es una publicación de Typst GmbH ni cuenta con su aval; ante cualquier duda, prevalece la documentación oficial en inglés. ¿Un error de traducción o una sugerencia? Reportalo. Tipografía: Reforma, de PampaType.

outlineElemento
Signo de pregunta
Desde: siempreIr al código fuente

Un índice de contenidos, de figuras u otros elementos.

Esta función genera una lista de todas las apariciones de un elemento en el documento, hasta una depth dada. La numeración y el número de página del elemento se mostrarán en el índice junto con su título o epígrafe.

Ejemplo

#set heading(numbering: "1.") #outline() = Introduction #lorem(5) = Methods == Setup #lorem(10)

Índices alternativos

En su configuración por defecto, esta función genera un índice de contenidos. Al establecer el parámetro target, el índice se puede usar para generar una lista de otros tipos de elementos distintos de los títulos.

En el siguiente ejemplo, listamos todas las figuras que contienen imágenes estableciendo target en figure.where(kind: image). De la misma manera, podríamos haberlo establecido en figure.where(kind: table) para generar una lista de tablas.

También podríamos establecerlo simplemente en figure, sin usar un selector where, pero entonces la lista contendría todas las figuras, ya sean las que contienen imágenes, tablas u otro material.

#outline( title: [List of Figures], target: figure.where(kind: image), ) #figure( image("tiger.jpg"), caption: [A nice figure!], )

Dar estilo al índice

En el nivel más básico, podés dar estilo al índice estableciendo propiedades en él y en sus entradas. De esta manera, podés personalizar el título del índice, cómo se indentan las entradas del índice y cómo debe rellenarse el espacio entre el texto de una entrada y su número de página.

Es posible una personalización más rica mediante la configuración de las entradas del índice. El índice genera una entrada por cada elemento incluido.

Espaciar las entradas

Las entradas del índice son bloques, así que podés ajustar el espaciado entre ellas con las reglas normales de espaciado de bloques:

#show outline.entry.where( level: 1 ): set block(above: 1.2em) #outline() = About ACME Corp. == History === Origins = Products == ACME Tools

Armar una entrada del índice a partir de sus partes

Para tener control total, también podés escribir una regla show de transformación sobre outline.entry. Sin embargo, la lógica para dar formato e indentar correctamente las entradas del índice es bastante compleja y la entrada del índice en sí solo contiene dos campos: el nivel y el elemento incluido.

Por este motivo, se proporcionan varias funciones auxiliares. Podés combinarlas para componer una entrada solo con las partes que te gusten.

La regla show por defecto de una entrada del índice se ve así1:

#show outline.entry: it => link(
  it.element.location(),
  it.indented(it.prefix(), it.inner()),
)

Podés usar estas funciones individuales para dar formato a la entrada del índice de distintas maneras. Supongamos que querés eliminar por completo el relleno y los números de página. Para lograrlo, podrías escribir una regla show como esta:

#show outline.entry: it => link( it.element.location(), // Keep just the body, dropping // the fill and the page. it.indented(it.prefix(), it.body()), ) #outline() = About ACME Corp. == History
  1. 1El índice de ecuaciones es la excepción a esta regla, ya que no tiene cuerpo y, por lo tanto, no usa un diseño con sangría.

Parámetros

title
none o auto o content
Configurable con set
Signo de pregunta
Por defecto: auto

El título del índice.

El título del índice no estará numerado por defecto, pero podés forzarlo con una regla show-set: show outline: set heading(numbering: "1.")

target
label o selector o location o function
Configurable con set
Signo de pregunta
Por defecto: heading

El tipo de elemento que se incluye en el índice.

Para listar figuras que contienen un tipo específico de elemento, como una imagen o una tabla, podés especificar el tipo deseado en un selector where. Mirá la sección sobre índices alternativos para más detalles.

ExpandirVer ejemplo
#outline( title: [List of Tables], target: figure.where(kind: table), ) #figure( table( columns: 4, [t], [1], [2], [3], [y], [0.3], [0.7], [0.5], ), caption: [Experiment results], )

depth
none o int
Configurable con set
Signo de pregunta
Por defecto: none

El nivel máximo hasta el cual se incluyen elementos en el índice. Cuando este argumento es none, se incluyen todos los elementos.

ExpandirVer ejemplo
#set heading(numbering: "1.") #outline(depth: 2) = Yes Top-level section. == Still Subsection. === Nope Not included.

indent
auto o relative o function
Configurable con set
Signo de pregunta
Por defecto: auto

Cómo indentar las entradas del índice.

ExpandirVer ejemplo
#set heading(numbering: "I-I.") #set outline(title: none) #outline() #line(length: 100%) #outline(indent: 3em) = Software engineering technologies == Requirements == Tools and technologies === Code editors == Analyzing alternatives = Designing software components = Testing and integration

Funciones
Signo de pregunta

entryElemento
Signo de pregunta
Desde: 0.6.0Ir al código fuente

Representa una línea de entrada en un índice.

Con reglas show-set y show sobre las entradas del índice, podés personalizar ampliamente el aspecto del índice. Mirá la sección sobre cómo dar estilo al índice para más detalles.

outline.entry() → content

level
int
ObligatorioPosicional
Signo de pregunta

El nivel de anidamiento de esta entrada del índice. Empieza en 1 para las entradas de nivel superior.

element
content
ObligatorioPosicional
Signo de pregunta

El elemento al que se refiere esta entrada. Su ubicación estará disponible mediante el método location del contenido y se puede enlazar.

fill
none o content
Configurable con set
Signo de pregunta
Por defecto: repeat(body: [.], gap: 0.15em)

Contenido que llena el espacio entre el título y el número de página. Se puede establecer en none para desactivar el relleno.

El fill se colocará en un box de tamaño fraccionario que abarca el espacio entre el cuerpo de la entrada y el número de página. Por lo tanto, al usar reglas show para reemplazar entradas del índice, se recomienda envolver el relleno en un box con ancho fraccionario, es decir, box(width: 1fr, it.fill).

Al usar repeat, la propiedad gap puede ser útil para ajustar el peso visual del relleno.

ExpandirVer ejemplo
#set outline.entry(fill: line(length: 100%)) #outline() = A New Beginning

Funciones en entry
Signo de pregunta

indentedContextual
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Una función auxiliar para producir un diseño de entrada con sangría: dispone un prefijo y el resto de la entrada teniendo en cuenta la sangría.

Si la indent del índice padre es auto, el contenido interno de todas las entradas del nivel N se alinea con el prefijo de todas las entradas del nivel N + 1, dejando al menos un espacio gap entre el prefijo y las partes internas. Además, los contenidos inner de todas las entradas del mismo nivel se alinean.

Si la sangría del índice es un valor fijo o una función, los prefijos se indentan, pero los contenidos internos simplemente se desplazan del prefijo el gap especificado, en lugar de alinearse en todo el índice. Para una explicación visual, mirá outline.indent.

self.indented() → content
prefix
none o content
ObligatorioPosicional
Signo de pregunta

El prefix se alinea con el contenido inner de las entradas que tienen un nivel menos.

En la regla show por defecto, es simplemente it.prefix(), pero se puede personalizar libremente.

inner
content
ObligatorioPosicional
Signo de pregunta

El contenido interno de la entrada, con formato.

En la regla show por defecto, es simplemente it.inner(), pero se puede personalizar libremente.

gapPor defecto: 0.5em

El espacio entre el prefijo y el contenido interno.

prefixContextual
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Da formato a la numeración del elemento (si la hay).

Esto también agrega el suplemento del elemento en el caso de figuras o ecuaciones. Por ejemplo, produciría 1.1 para un título, pero Figure 1 para una figura, como es habitual en los índices.

self.prefix() → nonecontent
innerContextual
Signo de pregunta
Desde: 0.13.0Ir al código fuente

Crea el contenido interno por defecto de la entrada.

Esto incluye el cuerpo, el relleno y el número de página.

self.inner() → content
bodyDesde: 0.13.0Ir al código fuente

El contenido que se muestra en lugar del elemento referido en su entrada del índice. Para un título, es su body; para una figura, un epígrafe y, para las ecuaciones, está vacío.

self.body() → content
pageContextual
Signo de pregunta
Desde: 0.13.0Ir al código fuente

El número de página del elemento de esta entrada, con el formato de la numeración establecida para la página referida.

self.page() → content