summaryrefslogtreecommitdiff
path: root/tests/suite/layout/transform.typ
diff options
context:
space:
mode:
Diffstat (limited to 'tests/suite/layout/transform.typ')
-rw-r--r--tests/suite/layout/transform.typ106
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]!