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.

strokeDesde: siempreIr al código fuente

Define cómo dibujar una línea.

Un trazo tiene una pintura (un color sólido o un degradado), un grosor, un remate de línea (cap), una unión de línea (join), un límite de inglete (miter limit) y un patrón de guiones (dash). Todos estos valores son opcionales y tienen valores por defecto razonables.

Ejemplo

#set line(length: 100%) #stack( spacing: 1em, line(stroke: 2pt + red), line(stroke: (paint: blue, thickness: 4pt, cap: "round")), line(stroke: (paint: blue, thickness: 1pt, dash: "dashed")), line(stroke: 2pt + gradient.linear(..color.map.rainbow)), )

Trazos simples

Podés crear un trazo sólido simple a partir de un color, un grosor o una combinación de ambos. Específicamente, dondequiera que se espere un trazo podés pasar cualquiera de los siguientes valores:

Para tener control total, también podés proporcionar un diccionario o un objeto stroke a cualquier función que espere un trazo. Las claves del diccionario pueden incluir cualquiera de los parámetros de la función constructora, que se muestran abajo.

Campos

En un objeto trazo, podés acceder a cualquiera de los campos enumerados en la función constructora. Por ejemplo, (2pt + blue).thickness es 2pt. Mientras tanto, stroke(red).cap es auto porque no está especificado. Los campos establecidos en auto se heredan.

Constructor
Signo de pregunta
Ir al código fuente

Convierte un valor en un trazo o construye un trazo con los parámetros dados.

Tené en cuenta que, en la mayoría de los casos, no necesitás convertir valores en trazos para usarlos, ya que se convertirán automáticamente. Sin embargo, este constructor puede ser útil para asegurarte de que un valor tenga todos los campos de un trazo.

ExpandirVer ejemplo
#let my-func(x) = { x = stroke(x) // Convert to a stroke [Stroke has thickness #x.thickness.] } #my-func(3pt) \ #my-func(red) \ #my-func(stroke(cap: "round", thickness: 1pt))

paint
auto o color o gradient o tiling
ObligatorioPosicional
Signo de pregunta

El color o degradado que se usa para el trazo.

Si se establece en auto, el valor se hereda, con black por defecto.

thickness
auto o length
ObligatorioPosicional
Signo de pregunta

El grosor del trazo.

Si se establece en auto, el valor se hereda, con 1pt por defecto.

cap
auto o str
ObligatorioPosicional
Signo de pregunta

Cómo se renderizan los extremos del trazo.

Si se establece en auto, el valor se hereda, con "butt" por defecto.

VarianteDetalles
"butt"Terminación de trazo cuadrada con el borde en el punto final del trazo.
"round"Terminación de trazo circular centrada en el punto final del trazo.
"square"Terminación de trazo cuadrada centrada en el punto final del trazo.

join
auto o str
ObligatorioPosicional
Signo de pregunta

Cómo se renderizan los giros bruscos.

Si se establece en auto, el valor se hereda, con "miter" por defecto.

VarianteDetalles
"miter"Los segmentos se unen con bordes filosos. Los quiebres filosos que superan el límite de inglete se biselan en su lugar.
"round"Los segmentos se unen con esquinas redondeadas.
"bevel"Los segmentos se unen con un bisel (un borde recto que conecta los extremos de los segmentos unidos).

dash
none o auto o str o array o dictionary
ObligatorioPosicional
Signo de pregunta

El patrón de guiones que se usa. Puede ser:

Si se establece en auto, el valor se hereda, con none por defecto.

ExpandirVer ejemplo: Uso
#set line(length: 100%, stroke: 2pt) #stack( spacing: 1em, line(stroke: (dash: "dashed")), line(stroke: (dash: (10pt, 5pt, "dot", 5pt))), line(stroke: (dash: (array: (10pt, 5pt, "dot", 5pt), phase: 10pt))), )
ExpandirVer ejemplo: Patrones predefinidos
#set page(width: auto, height: auto) #let patterns = ( ("dotted", "dashed", "dash-dotted").map(d => ( "loosely-" + d, d, "densely-" + d, )) ).flatten() #let display(dash) = { set par(spacing: 0.3em) show "loosely": set text(eastern.darken(17%)) show "densely": set text(purple) let derived = dash.starts-with("loosely-") or dash.starts-with("densely-") if derived { dash } else { strong(dash) } rect( line(stroke: (dash: dash), length: 100%), stroke: none, fill: yellow.transparentize(80%), ) } #table( columns: 3, stroke: none, align: (left, center, left), table.cell(colspan: 3, align: center, display("solid")), ..patterns.map(display), )
VarianteDetalles
"solid"()
"dotted"("dot", 2pt)
"densely-dotted"("dot", 1pt)
"loosely-dotted"("dot", 4pt)
"dashed"(3pt, 3pt)
"densely-dashed"(3pt, 2pt)
"loosely-dashed"(3pt, 6pt)
"dash-dotted"(3pt, 2pt, "dot", 2pt)
"densely-dash-dotted"(3pt, 1pt, "dot", 1pt)
"loosely-dash-dotted"(3pt, 4pt, "dot", 4pt)

miter-limit
auto o float
ObligatorioPosicional
Signo de pregunta

Número a partir del cual las curvas bruscas que sobresalen se renderizan con un bisel en lugar de una unión en inglete. Cuanto mayor sea el número, más agudo puede ser un ángulo antes de que se bisele. Solo es aplicable si join es "miter".

Específicamente, el límite de inglete es la relación máxima entre la longitud de la protrusión de la esquina y el grosor del trazo.

Si se establece en auto, el valor se hereda, con 4.0 por defecto.

ExpandirVer ejemplo
#let items = ( curve.move((15pt, 0pt)), curve.line((0pt, 30pt)), curve.line((30pt, 30pt)), curve.line((10pt, 20pt)), ) #set curve(stroke: 6pt + blue) #stack( dir: ltr, spacing: 1cm, curve(stroke: (miter-limit: 1), ..items), curve(stroke: (miter-limit: 4), ..items), curve(stroke: (miter-limit: 5), ..items), )