mirror of
https://github.com/typst/typst
synced 2025-05-14 04:56:26 +08:00
64 lines
1.5 KiB
Typst
64 lines
1.5 KiB
Typst
// Test that squares and circles respect their 1-1 aspect ratio.
|
|
|
|
---
|
|
// Test relative width and height and size that is smaller
|
|
// than default size.
|
|
#set page(width: 120pt, height: 70pt)
|
|
#set align(bottom)
|
|
#let centered = align.with(center + horizon)
|
|
#stack(
|
|
dir: ltr,
|
|
spacing: 1fr,
|
|
square(width: 50%, centered[A]),
|
|
square(height: 50%),
|
|
stack(
|
|
square(size: 10pt),
|
|
square(size: 20pt, centered[B])
|
|
),
|
|
)
|
|
|
|
---
|
|
// Test alignment in automatically sized square and circle.
|
|
#set text(8pt)
|
|
#box(square(inset: 4pt)[
|
|
Hey there, #align(center + bottom, rotate(180deg, [you!]))
|
|
])
|
|
#box(circle(align(center + horizon, [Hey.])))
|
|
|
|
---
|
|
// Test that minimum wins if both width and height are given.
|
|
#stack(
|
|
dir: ltr,
|
|
spacing: 2pt,
|
|
square(width: 20pt, height: 40pt),
|
|
circle(width: 20%, height: 100pt),
|
|
)
|
|
|
|
---
|
|
// Test square that is limited by region size.
|
|
#set page(width: 20pt, height: 10pt, margin: 0pt)
|
|
#stack(dir: ltr, square(fill: forest), square(fill: conifer))
|
|
|
|
---
|
|
// Test different ways of sizing.
|
|
#set page(width: 120pt, height: 40pt)
|
|
#stack(
|
|
dir: ltr,
|
|
spacing: 2pt,
|
|
circle(radius: 5pt),
|
|
circle(width: 10%),
|
|
circle(height: 50%),
|
|
)
|
|
|
|
---
|
|
// Test that square doesn't overflow due to its aspect ratio.
|
|
#set page(width: 40pt, height: 25pt, margin: 5pt)
|
|
#square(width: 100%)
|
|
#square(width: 100%)[Hello there]
|
|
|
|
---
|
|
// Size cannot be relative because we wouldn't know
|
|
// relative to which axis.
|
|
// Error: 15-18 expected length or auto, found ratio
|
|
#square(size: 50%)
|