typst/tests/suite/text/shift.typ
2025-04-19 18:01:58 +02:00

79 lines
2.6 KiB
Typst

// Test sub- and superscript shifts.
--- sub-super ---
#let sq = box(square(size: 4pt))
#table(
columns: 3,
[Typo.], [Fallb.], [Synth.],
[x#super[1 #sq]], [x#super[5: #sq]], [x#super(typographic: false)[2 #sq]],
[x#sub[1 #sq]], [x#sub[5: #sq]], [x#sub(typographic: false)[2 #sq]],
)
--- sub-super-typographic ---
#set text(size: 20pt)
// Libertinus Serif supports "subs" and "sups" for `typo`, but not for `synth`.
#let synth = [1,2,3]
#let typo = [123]
#let sq = [1#box(square(size: 4pt))2]
x#super(synth) x#super(typo) x#super(sq) \
x#sub(synth) x#sub(typo) x#sub(sq)
--- sub-super-italic-compensation ---
#set text(size: 20pt, style: "italic")
// Libertinus Serif supports "subs" and "sups" for `typo`, but not for `synth`.
#let synth = [1,2,3]
#let typo = [123]
#let sq = [1#box(square(size: 4pt))2]
x#super(synth) x#super(typo) x#super(sq) \
x#sub(synth) x#sub(typo) x#sub(sq)
--- sub-super-non-typographic ---
#set super(typographic: false, baseline: -0.25em, size: 0.7em)
n#super[1], n#sub[2], ... n#super[N]
--- super-underline ---
#set underline(stroke: 0.5pt, offset: 0.15em)
#set super(typographic: false)
#underline[The claim#super[4]] has been disputed. \
The claim#super[#underline[4]] has been disputed. \
The claim #underline(super[4]) has been disputed. \
#set super(typographic: true)
#underline[The claim#super[4]] has been disputed. \
The claim#super[#underline[4]] has been disputed. \
The claim #underline(super[4]) has been disputed.
--- super-highlight ---
#set super(typographic: false)
#highlight[The claim#super[4]] has been disputed. \
The claim#super[#highlight[4]] has been disputed. \
It really has been#super(highlight[4]) \
#set super(typographic: true)
#highlight[The claim#super[4]] has been disputed. \
The claim#super[#highlight[4]] has been disputed. \
It really has been#super(highlight[4])
--- super-1em ---
Test#super[#box(rect(height: 1em))]#box(rect(height: 1em))
--- long-scripts ---
|longscript| \
|#super(typographic: true)[longscript]| \
|#super(typographic: false)[longscript]| \
|#sub(typographic: true)[longscript]| \
|#sub(typographic: false)[longscript]|
--- scripts-with-bundeled-fonts ---
#let test(font, weights, styles) = {
for weight in weights {
for style in styles {
text(font: font, weight: weight, style: style)[Xx#super[Xx]#sub[Xx]]
linebreak()
}
}
}
#test("DejaVu Sans Mono", ("regular", "bold"), ("normal", "oblique"))
#test("Libertinus Serif", ("regular", "semibold", "bold"), ("normal", "italic"))
#test("New Computer Modern", ("regular", "bold"), ("normal", "italic"))
#test("New Computer Modern Math", (400, 450, "bold"), ("normal",))