diff --git a/tests/ref/text/align.png b/tests/ref/text/align.png new file mode 100644 index 000000000..9415214b5 Binary files /dev/null and b/tests/ref/text/align.png differ diff --git a/tests/ref/text/basic.png b/tests/ref/text/basic.png index a06c87638..aa5d9664c 100644 Binary files a/tests/ref/text/basic.png and b/tests/ref/text/basic.png differ diff --git a/tests/ref/text/bidi.png b/tests/ref/text/bidi.png index c3ad156b6..829fba0c0 100644 Binary files a/tests/ref/text/bidi.png and b/tests/ref/text/bidi.png differ diff --git a/tests/ref/text/chinese.png b/tests/ref/text/chinese.png new file mode 100644 index 000000000..fa905df6b Binary files /dev/null and b/tests/ref/text/chinese.png differ diff --git a/tests/ref/text/linebreaks.png b/tests/ref/text/linebreaks.png index 6b512bcbb..c5a826bd2 100644 Binary files a/tests/ref/text/linebreaks.png and b/tests/ref/text/linebreaks.png differ diff --git a/tests/ref/text/shaping.png b/tests/ref/text/shaping.png index 676a67ff7..76058b2e2 100644 Binary files a/tests/ref/text/shaping.png and b/tests/ref/text/shaping.png differ diff --git a/tests/ref/text/whitespace.png b/tests/ref/text/whitespace.png new file mode 100644 index 000000000..35a213206 Binary files /dev/null and b/tests/ref/text/whitespace.png differ diff --git a/tests/typ/text/align.typ b/tests/typ/text/align.typ new file mode 100644 index 000000000..27c650a49 --- /dev/null +++ b/tests/typ/text/align.typ @@ -0,0 +1,28 @@ +// Test text alignment. + +--- +// Test that alignment depends on the paragraph's full width. +#rect[ + Hello World \ + #align(right)[World] +] + +--- +// Test that a line with multiple alignments respects the paragraph's full +// width. +#rect[ + Hello #align(center)[World] \ + Hello from the World +] + +--- +// Test that `start` alignment after `end` alignment doesn't do anything until +// the next line break ... +L #align(right)[R] R + +// ... but make sure it resets to left after the line break. +L #align(right)[R] \ L + +--- +// FIXME: There should be a line break opportunity on alignment change. +LLLLLLLLLLLLL#align(center)[CCCC] diff --git a/tests/typ/text/basic.typ b/tests/typ/text/basic.typ index b424cee82..d5f0de051 100644 --- a/tests/typ/text/basic.typ +++ b/tests/typ/text/basic.typ @@ -1,6 +1,7 @@ // Test simple text. -#page(width: 250pt) +--- +#page(width: 250pt, height: 110pt) 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 diff --git a/tests/typ/text/chinese.typ b/tests/typ/text/chinese.typ new file mode 100644 index 000000000..0800a2209 --- /dev/null +++ b/tests/typ/text/chinese.typ @@ -0,0 +1,9 @@ +// Test chinese text from Wikipedia. + +--- +#font("Noto Serif CJK SC") + +是美国广播公司电视剧《迷失》第3季的第22和23集,也是全剧的第71集和72集 +由执行制作人戴蒙·林道夫和卡尔顿·库斯编剧,导演则是另一名执行制作人杰克·本德 +节目于2007年5月23日在美国和加拿大首播,共计吸引了1400万美国观众收看 +本集加上插播广告一共也持续有两个小时 diff --git a/tests/typ/text/linebreaks.typ b/tests/typ/text/linebreaks.typ index 6647c2cd0..4d57834a1 100644 --- a/tests/typ/text/linebreaks.typ +++ b/tests/typ/text/linebreaks.typ @@ -1,35 +1,28 @@ -// Test line breaking. +// Test line breaking special cases. --- -// Test normal line breaking. -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 hard. +// Test overlong word that is not directly after a hard break. +This is a spaceexceedinglylongishy. -// From Wikipedia: -#font("Noto Serif CJK SC") -是美国广播公司电视剧《迷失》第3季的第22和23集,也是全剧的第71集和72集 -由执行制作人戴蒙·林道夫和卡尔顿·库斯编剧,导演则是另一名执行制作人杰克·本德 -节目于2007年5月23日在美国和加拿大首播,共计吸引了1400万美国观众收看 -本集加上插播广告一共也持续有两个小时 +--- +// Test two overlong words in a row. +Supercalifragilisticexpialidocious Expialigoricmetrioxidation. + +--- +// Test that there are no unwanted line break opportunities on run change. +This is partly emph_as_ized. + +--- +Hard \ break. --- // Test hard break directly after normal break. -But, soft! What light through \ yonder window breaks? +Hard break directly after \ normal break. --- // Test consecutive breaks. -But, soft! Whatlightdoyoueveryonderthrough window breaks? Why did the window -even \ break \ \ in the first place. - ---- -// Test two superlong words in a row. -Supercalifragilisticousalogy Expialigoricmetrioxidationreagent. - ---- -// Test run change after space. -Left #font("PT Sans")[Right]. +Two consecutive \ \ breaks and three \ \ \ more. --- // Test trailing newline. -Trailing newline{"\n"} +Trailing break \ diff --git a/tests/typ/text/whitespace.typ b/tests/typ/text/whitespace.typ new file mode 100644 index 000000000..3d7dd2e2f --- /dev/null +++ b/tests/typ/text/whitespace.typ @@ -0,0 +1,17 @@ +// Test whitespace handling. + +--- +// Test that a run consisting only of whitespace isn't trimmed. +A#font("PT Sans")[ ]B + +--- +// Test font change after space. +Left #font("PT Sans")[Right]. + +--- +// Test that space at start of line is not trimmed. +A{"\n"} B + +--- +// Test that trailing space does not force a line break. +LLLLLLLLLLLLLL R _L_