summaryrefslogtreecommitdiff
path: root/tests/typ
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-03-19 13:20:58 +0100
committerLaurenz <laurmaedje@gmail.com>2021-03-19 13:20:58 +0100
commit54a9ccb1a5e9f1f1e5d2538d2f4ce3d4f7afc4ae (patch)
tree3a0f45af5d1cd6d65420887f8412a5594b6300bd /tests/typ
parentbd12d135cab32d61b32945433e77579d04298d52 (diff)
Configurable font edges ⚙
Adds top-edge and bottom-edge parameters to the font function. These define how the box around a word is computed. The possible values are: - ascender - cap-height (default top edge) - x-height - baseline (default bottom edge) - descender The defaults are chosen so that it's easy to create good-looking designs with vertical alignment. Since they are much tighter than what most other software uses by default, the default leading had to be increased to 50% of the font size and paragraph spacing to 100% of the font size. The values cap-height and x-height fall back to ascender in case they are zero because this value may occur in fonts that don't have glyphs with cap- or x-height (like Twitter Color Emoji). Since cap-height is the default top edge, doing no fallback would break things badly. Removes softness in favor of a simple boolean for pages and a more finegread u8 for spacing. This is needed to make paragraph spacing consume line spacing created by hard line breaks.
Diffstat (limited to 'tests/typ')
-rw-r--r--tests/typ/control/let.typ4
-rw-r--r--tests/typ/full/coma.typ4
-rw-r--r--tests/typ/library/font.typ14
-rw-r--r--tests/typ/library/spacing.typ2
-rw-r--r--tests/typ/markup/escape.typ4
-rw-r--r--tests/typ/markup/raw.typ2
-rw-r--r--tests/typ/text.typ21
7 files changed, 40 insertions, 11 deletions
diff --git a/tests/typ/control/let.typ b/tests/typ/control/let.typ
index dd971ee5..4f84aa67 100644
--- a/tests/typ/control/let.typ
+++ b/tests/typ/control/let.typ
@@ -17,8 +17,8 @@
---
// Syntax sugar for function definitions.
-#let background = #239dad
-#let rect(body) = rect(width: 2cm, height: 1cm, fill: background, body)
+#let background = #9feb52
+#let rect(body) = rect(width: 2cm, fill: background, pad(5pt, body))
#rect[Hi!]
// Error: 13 expected body
diff --git a/tests/typ/full/coma.typ b/tests/typ/full/coma.typ
index 243c667f..619843d7 100644
--- a/tests/typ/full/coma.typ
+++ b/tests/typ/full/coma.typ
@@ -30,8 +30,8 @@
// the parentheses.
#align(center)[
// Markdown-like syntax for headings.
- ==== 3. Übungsblatt Computerorientierte Mathematik II #v(2mm)
- *Abgabe: 03.05.2019* (bis 10:10 Uhr in MA 001) #v(2mm)
+ ==== 3. Übungsblatt Computerorientierte Mathematik II #v(4mm)
+ *Abgabe: 03.05.2019* (bis 10:10 Uhr in MA 001) #v(4mm)
*Alle Antworten sind zu beweisen.*
]
diff --git a/tests/typ/library/font.typ b/tests/typ/library/font.typ
index c00bff5a..ecea303f 100644
--- a/tests/typ/library/font.typ
+++ b/tests/typ/library/font.typ
@@ -32,6 +32,20 @@ Emoji: 🐪, 🌋, 🏞
]
---
+// Test top and bottom edge.
+
+#page(width: 170pt)
+#let try(top, bottom) = rect(fill: #9feb52)[
+ #font(top-edge: top, bottom-edge: bottom)
+ `From `#top` to `#bottom
+]
+
+#try(ascender, descender)
+#try(ascender, baseline)
+#try(cap-height, baseline)
+#try(x-height, baseline)
+
+---
// Ref: false
// Error: 7-12 unexpected argument
diff --git a/tests/typ/library/spacing.typ b/tests/typ/library/spacing.typ
index a34840c6..6d50f0dc 100644
--- a/tests/typ/library/spacing.typ
+++ b/tests/typ/library/spacing.typ
@@ -2,7 +2,7 @@
---
// Ends paragraphs.
-Tightly #v(-5pt) packed
+Tightly #v(0pt) packed
// Eating up soft spacing.
Inv #h(0pt) isible
diff --git a/tests/typ/markup/escape.typ b/tests/typ/markup/escape.typ
index eeac4997..b0a809f9 100644
--- a/tests/typ/markup/escape.typ
+++ b/tests/typ/markup/escape.typ
@@ -28,3 +28,7 @@
// Unterminated.
// Error: 6 expected closing brace
\u{41*Bold*
+
+---
+// Some code stuff in text.
+let f() , ; : | + - /= == 12 "string"
diff --git a/tests/typ/markup/raw.typ b/tests/typ/markup/raw.typ
index f5074c8e..005d413e 100644
--- a/tests/typ/markup/raw.typ
+++ b/tests/typ/markup/raw.typ
@@ -7,7 +7,7 @@
---
// Typst syntax inside.
`#let x = 1` \
-`#[f 1]`
+`#f(1)`
---
// Multiline block splits paragraphs.
diff --git a/tests/typ/text.typ b/tests/typ/text.typ
index d86f4895..b424cee8 100644
--- a/tests/typ/text.typ
+++ b/tests/typ/text.typ
@@ -1,8 +1,19 @@
// Test simple text.
----
-Hello 🌏!
+#page(width: 250pt)
----
-// Some code stuff in text.
-let f() , ; : | + - /= == 12 "string"
+But, soft! what light through yonder window breaks? It is the east, and Juliet
+is the sun. Arise, fair sun, and kill the envious moon, Who is already sick and
+pale with grief, That thou her maid art far more fair than she: Be not her maid,
+since she is envious; Her vestal livery is but sick and green And none but fools
+do wear it; cast it off. It is my lady, O, it is my love! O, that she knew she
+were! She speaks yet she says nothing: what of that? Her eye discourses; I will
+answer it.
+
+I am too bold, 'tis not to me she speaks: Two of the fairest stars in all the
+heaven, Having some business, do entreat her eyes To twinkle in their spheres
+till they return. What if her eyes were there, they in her head? The brightness
+of her cheek would shame those stars, As daylight doth a lamp; her eyes in
+heaven Would through the airy region stream so bright That birds would sing and
+think it were not night. See, how she leans her cheek upon her hand! O, that I
+were a glove upon that hand, That I might touch that cheek!