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
|
// TODO: workaround until Typst gets a real ex unit.
// See <https://github.com/typst/typst/issues/2405>
#let ex = 0.47
#let defaults = (
drop-tex: 0.5em*ex,
drop-xe: 0.5em*ex,
kern-te: -.1667em,
kern-ex: -.125em,
kern-la: -.36em,
kern-at: -.15em,
kern-xe: -.125em,
kern-et: -.1667em,
kern-el: -.125em,
kern-x2: 0.15em,
)
#let config = state("metalogo", defaults)
#let metalogo(..opts) = context{
config.update(c => {
for (key, value) in opts.named() {
c.insert(key, value)
}
return c
})
}
#let drop(body, distance: 0pt) = box[#move(dy: distance)[#body]]
#let mirror(body) = scale(x: -100%)[#body]
#let TeX = context[#box[#{
let cfg = config.get()
[T]
h(cfg.kern-te)
drop(distance: cfg.drop-tex)[E]
h(cfg.kern-ex)
[X]
}]]
#let Xe = context[#box[#{
let cfg = config.get()
[X]
h(cfg.kern-xe)
drop(distance: cfg.drop-xe)[#mirror[E]]
}]]
#let LaTeX = context[#box[#{
let cfg = config.get()
[L]
h(cfg.kern-la)
drop(distance: -.2em)[#text(0.7em)[A]]
h(cfg.kern-at)
TeX
}]]
#let XeTeX = context[#box[#{
let cfg = config.get()
Xe
h(cfg.kern-et)
TeX
}]]
#let XeLaTeX = context[#box[#{
let cfg = config.get()
Xe
h(cfg.kern-el)
LaTeX
}]]
#let LuaLaTeX = box[Lua#LaTeX]
#let LuaTeX = box[Lua#TeX]
#let LaTeXe = context[#box[#{
LaTeX
[2]
sym.epsilon
}]]
|