1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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]!
|