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.

argumentsDesde: siempreIr al código fuente

Argumentos capturados de una función.

Los argumentos son posicionales o con nombre, y se puede acceder a ellos mediante los métodos pos, named y at.

Además, se puede acceder a los argumentos con nombre con la sintaxis de campos, de forma similar a los diccionarios.

Sumideros de argumentos

Al igual que las funciones incorporadas, las funciones personalizadas también pueden tomar una cantidad variable de argumentos. Podés especificar un sumidero de argumentos que recolecta todos los argumentos sobrantes como ..sink. El valor sink resultante es del tipo arguments. Expone métodos para acceder a los argumentos posicionales y con nombre.

#let format(title, ..authors) = { let by = authors .pos() .join(", ", last: " and ") [*#title* \ _Written by #by;_] } #format("ArtosFlow", "Jane", "Joe")

Expansión

De manera inversa a un sumidero de argumentos, podés expandir argumentos, arrays y diccionarios en una llamada a función con el operador ..spread:

#let array = (2, 3, 5) #calc.min(..array) #let dict = (fill: blue) #text(..dict)[Hello]

Constructor
Signo de pregunta
Ir al código fuente

Construye argumentos expandibles en el lugar.

Esta función se comporta como let args(..sink) = sink.

ExpandirVer ejemplo
#let args = arguments(stroke: red, inset: 1em, [Body]) #box(..args)
arguments(..any) → arguments

arguments
any
ObligatorioPosicional
Signo de pregunta
Variádico
Signo de pregunta

Los argumentos que se construyen.

Funciones
Signo de pregunta

lenDesde: 0.15.0Ir al código fuente

La cantidad de argumentos, posicionales o con nombre.

self.len() → int

atDesde: 0.12.0Ir al código fuente

Devuelve el argumento posicional del índice especificado o el argumento con nombre del nombre especificado.

Si la clave es un entero, esto equivale a llamar primero a pos y luego a array.at. Si es una cadena de texto, equivale a llamar primero a named y luego a dictionary.at.

También se puede acceder a los argumentos con nombre con la sintaxis de campos (por ejemplo, arguments(key: 42).key) si no hace falta un valor por defecto. A diferencia de los diccionarios, los campos de los argumentos no se pueden modificar.

self.at() → any

key
int o str
ObligatorioPosicional
Signo de pregunta

El índice o el nombre del argumento que se quiere obtener.

default
any

Un valor por defecto para devolver si la clave no es válida.

posDesde: siempreIr al código fuente

Devuelve los argumentos posicionales capturados como un array.

self.pos() → array

namedDesde: siempreIr al código fuente

Devuelve los argumentos con nombre capturados como un diccionario.

self.named() → dictionary

filterDesde: 0.15.0Ir al código fuente

Produce un nuevo arguments solo con los argumentos cuyo valor pasa la prueba.

ExpandirVer ejemplo
#{ arguments(-1, a: 0, b: 1, 2) .filter(v => v > 0) }
self.filter(function) → arguments

test
function
ObligatorioPosicional
Signo de pregunta

La función que se aplica a cada valor. Debe devolver un booleano.

mapDesde: 0.15.0Ir al código fuente

Produce un nuevo arguments transformando el valor de cada argumento con la función indicada.

ExpandirVer ejemplo
#{ arguments(0, a: 1, 2) .map(v => v + 1) }
self.map(function) → arguments

mapper
function
ObligatorioPosicional
Signo de pregunta

La función que se aplica a cada valor.