diff options
Diffstat (limited to 'tests/suite/layout/transform.typ')
| -rw-r--r-- | tests/suite/layout/transform.typ | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/tests/suite/layout/transform.typ b/tests/suite/layout/transform.typ new file mode 100644 index 00000000..50a6d417 --- /dev/null +++ b/tests/suite/layout/transform.typ @@ -0,0 +1,106 @@ +// Test transformations. + +--- transform-tex-logo --- +// Test creating the TeX and XeTeX logos. +#let size = 11pt +#let tex = { + [T] + h(-0.14 * size) + box(move(dy: 0.22 * size)[E]) + h(-0.12 * size) + [X] +} + +#let xetex = { + [X] + h(-0.14 * size) + box(scale(x: -100%, move(dy: 0.26 * size)[E])) + h(-0.14 * size) + [T] + h(-0.14 * size) + box(move(dy: 0.26 * size)[E]) + h(-0.12 * size) + [X] +} + +#set text(font: "New Computer Modern", size) +Neither #tex, \ +nor #xetex! + +--- transform-rotate-and-scale --- +// Test combination of scaling and rotation. +#set page(height: 80pt) +#align(center + horizon, + rotate(20deg, scale(70%, image("/assets/images/tiger.jpg"))) +) + +--- transform-rotate-origin --- +// Test setting rotation origin. +#rotate(10deg, origin: top + left, + image("/assets/images/tiger.jpg", width: 50%) +) + +--- transform-scale-origin --- +// Test setting scaling origin. +#let r = rect(width: 100pt, height: 10pt, fill: forest) +#set page(height: 65pt) +#box(scale(r, x: 50%, y: 200%, origin: left + top)) +#box(scale(r, x: 50%, origin: center)) +#box(scale(r, x: 50%, y: 200%, origin: right + bottom)) + +--- transform-rotate --- +// Test that rotation impact layout. +#set page(width: 200pt) +#set rotate(reflow: true) + +#let one(angle) = box(fill: aqua, rotate(angle)[Test Text]) +#for angle in range(0, 360, step: 15) { + one(angle * 1deg) +} + +--- transform-rotate-relative-sizing --- +// Test relative sizing in rotated boxes. +#set page(width: 200pt, height: 200pt) +#set text(size: 32pt) +#let rotated(body) = box(rotate( + 90deg, + box(stroke: 0.5pt, height: 20%, clip: true, body) +)) + +#set rotate(reflow: false) +Hello #rotated[World]!\ + +#set rotate(reflow: true) +Hello #rotated[World]! + +--- transform-scale --- +// Test that scaling impact layout. +#set page(width: 200pt) +#set text(size: 32pt) +#let scaled(body) = box(scale( + x: 20%, + y: 40%, + body +)) + +#set scale(reflow: false) +Hello #scaled[World]! + +#set scale(reflow: true) +Hello #scaled[World]! + +--- transform-scale-relative-sizing --- +// Test relative sizing in scaled boxes. +#set page(width: 200pt, height: 200pt) +#set text(size: 32pt) +#let scaled(body) = box(scale( + x: 60%, + y: 40%, + box(stroke: 0.5pt, width: 30%, clip: true, body) +)) + +#set scale(reflow: false) +Hello #scaled[World]!\ + +#set scale(reflow: true) +Hello #scaled[World]! |
