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.

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

Ubica contenido en relación con su contenedor padre.

El contenido ubicado puede estar superpuesto (por defecto) o flotante. El contenido superpuesto se alinea con el contenedor padre según la alignment indicada y se muestra sobre cualquier otro contenido agregado hasta el momento en el contenedor. El contenido flotante se ubica en la parte superior o inferior del contenedor y desplaza el resto del contenido hacia abajo o hacia arriba, respectivamente. En ambos casos, la posición del contenido se puede ajustar con los desplazamientos dx y dy sin afectar el diseño.

El padre puede ser cualquier contenedor, como un block, un box, un rect, etcétera. Una llamada a place de nivel superior ubicará el contenido directamente en el área de texto de la página actual. Esto se puede usar para posicionamiento absoluto en la página: con una alignment top + left, los desplazamientos dx y dy establecerán la posición de la esquina superior izquierda del elemento en relación con la esquina superior izquierda del área de texto. Para posicionamiento absoluto en toda la página, incluidos los márgenes, podés usar place en page.foreground o page.background.

Ejemplos

#set page(height: 120pt) Hello, world! #rect( width: 100%, height: 2cm, place(horizon + right, square()), ) #place( top + left, dx: -5pt, square(size: 5pt, fill: red), )

Efecto en la posición de otros elementos

Los elementos superpuestos no ocupan espacio en el flujo del contenido, pero una llamada a place inserta un elemento invisible de bloque en el flujo. Esto puede afectar el diseño al cortar el párrafo actual. Para evitarlo, podés envolver la llamada a place en un box cuando la llamada se hace en medio de un párrafo. La alineación y los desplazamientos serán entonces relativos a este box de tamaño cero. Para asegurarte de que no interfiera con el espaciado, el box debería unirse a una palabra mediante un word joiner.

Por ejemplo, lo siguiente define una función para adjuntar una anotación a la palabra siguiente:

#let annotate(..args) = { box(place(..args)) sym.wj h(0pt, weak: true) } A placed #annotate(square(), dy: 2pt) square in my text.

El espaciado débil de ancho cero sirve para descartar los espacios entre la llamada a la función y la palabra siguiente.

Accesibilidad

Las tecnologías de asistencia (TA) siempre leerán el elemento ubicado en el punto donde aparece lógicamente en el documento, sin importar adónde lo haya movido físicamente esta función. Poné su marcado donde tenga más sentido en el orden de lectura.

Parámetros

alignment
auto o alignment
Posicional
Signo de pregunta
Configurable con set
Signo de pregunta
Por defecto: start

En relación con qué posición del contenedor padre se ubica el contenido.

Cuando float es false y no se especifica una alineación vertical, el contenido se ubica en la posición actual del eje vertical.

scope
str
Configurable con set
Signo de pregunta
Por defecto: "column"

En relación con qué ámbito contenedor se ubica algo.

El ámbito padre se usa principalmente con figuras y, por este motivo, la función figure tiene un parámetro scope espejo. De todos modos, también puede ser útil en general para salir de las columnas. Un ejemplo típico sería crear una sección de título de una sola columna en un documento de dos columnas.

Tené en cuenta que la ubicación con ámbito en el padre actualmente solo se admite si float es true. Esto podría cambiar en el futuro.

ExpandirVer ejemplo
#set page(height: 150pt, columns: 2) #place( top + center, scope: "parent", float: true, rect(width: 80%, fill: aqua), ) #lorem(25)
VarianteDetalles
"column"Se ubica en la columna actual.
"parent"Se ubica respecto del elemento padre, y el contenido abarca todas las columnas.

float
bool
Configurable con set
Signo de pregunta
Por defecto: false

Si el elemento ubicado tiene un diseño flotante.

Los elementos flotantes se posicionan en la parte superior o inferior del contenedor padre y desplazan el contenido en flujo. Siempre se ubican en el orden del flujo entre sí, y antes de cualquier contenido que siga a un elemento place.flush posterior.

ExpandirVer ejemplo
#set page(height: 150pt) #let note(where, body) = place( center + where, float: true, clearance: 6pt, rect(body), ) #lorem(10) #note(bottom)[Bottom 1] #note(bottom)[Bottom 2] #lorem(40) #note(top)[Top] #lorem(10)

clearance
length
Configurable con set
Signo de pregunta
Por defecto: 1.5em

El espaciado entre el elemento ubicado y otros elementos en un diseño flotante.

No tiene efecto si float es false.

dx
relative
Configurable con set
Signo de pregunta
Por defecto: 0% + 0pt

El desplazamiento horizontal del contenido ubicado.

ExpandirVer ejemplo
#set page(height: 100pt) #for x in range(-8, 8) { place(center + horizon, dx: x * 8pt, dy: x * 4pt, text( size: calc.root(x + 10, 3) * 6pt, fill: color.mix((green, 8 - x), (blue, 8 + x)), )[T] ) }

Esto no afecta el diseño del contenido en flujo. En otras palabras, el contenido ubicado se trata como si estuviera envuelto en un elemento move.

dy
relative
Configurable con set
Signo de pregunta
Por defecto: 0% + 0pt

El desplazamiento vertical del contenido ubicado.

Esto no afecta el diseño del contenido en flujo. En otras palabras, el contenido ubicado se trata como si estuviera envuelto en un elemento move.

body
content
ObligatorioPosicional
Signo de pregunta

El contenido que se ubica.

Funciones
Signo de pregunta

flushElemento
Signo de pregunta
Desde: 0.12.0Ir al código fuente

Le pide al algoritmo de diseño que ubique los elementos flotantes pendientes antes de continuar con el contenido.

Esto es útil para evitar que las figuras flotantes se desborden a la sección siguiente.

ExpandirVer ejemplo
#lorem(15) #figure( rect(width: 100%, height: 50pt), placement: auto, caption: [A rectangle], ) #place.flush() This text appears after the figure.
place.flush() → content