From 73253d465192454f0dfe3fe9eef46d495b343aef Mon Sep 17 00:00:00 2001 From: Peng Guanwen Date: Tue, 17 Dec 2024 22:07:45 +0800 Subject: Support for defining which charset should be covered by a font (#5305) Co-authored-by: Laurenz --- tests/ref/text-font-covers-chinese.png | Bin 0 -> 2619 bytes tests/ref/text-font-covers-numbers.png | Bin 0 -> 500 bytes tests/suite/text/font.typ | 37 +++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 tests/ref/text-font-covers-chinese.png create mode 100644 tests/ref/text-font-covers-numbers.png (limited to 'tests') diff --git a/tests/ref/text-font-covers-chinese.png b/tests/ref/text-font-covers-chinese.png new file mode 100644 index 00000000..5c9b4b1e Binary files /dev/null and b/tests/ref/text-font-covers-chinese.png differ diff --git a/tests/ref/text-font-covers-numbers.png b/tests/ref/text-font-covers-numbers.png new file mode 100644 index 00000000..9ed95c2f Binary files /dev/null and b/tests/ref/text-font-covers-numbers.png differ diff --git a/tests/suite/text/font.typ b/tests/suite/text/font.typ index bb75f4ae..5af8dcb9 100644 --- a/tests/suite/text/font.typ +++ b/tests/suite/text/font.typ @@ -112,3 +112,40 @@ I [ ] text(fill: t, "Hello") }) + +--- text-font-types --- +#let ubuntu = (name: "Ubuntu", covers: regex("[\u{20}-\u{FFFF}]")) +#set text(font: ubuntu) +#set text(font: (ubuntu, "Ubuntu")) + +--- text-font-covers-chinese --- +// Without ranges, the quotation mark is using the Latin font. +#set text(font: ("Ubuntu", "Noto Serif CJK SC")) +分别设置“中文”和English字体 + +// With ranges, the quotation mark is using the Chinese font. +#set text(font: ((name: "Noto Serif CJK SC", covers: regex("[\u{00B7}-\u{3134F}]")), "Ubuntu")) +分别设置“中文”和English字体 + +// With "latin-in-cjk", the quotation mark is also using the Chinese font. +#set text(font: ((name: "Ubuntu", covers: "latin-in-cjk"), "Noto Serif CJK SC")) +分别设置“中文”和English字体 + +--- text-font-covers-numbers --- +// Change font only for numbers. +#set text(font: ( + (name: "PT Sans", covers: regex("[0-9]")), + "Libertinus Serif" +)) + +The number 123. + +--- text-font-covers-bad-1 --- +// Error: 17-59 coverage regex may only use dot, letters, and character classes +// Hint: 17-59 the regex is applied to each letter individually +#set text(font: (name: "Ubuntu", covers: regex("20-FFFF"))) + +--- text-font-covers-bad-2 --- +// Error: 17-65 coverage regex may only use dot, letters, and character classes +// Hint: 17-65 the regex is applied to each letter individually +#set text(font: (name: "Ubuntu", covers: regex("\u{20}-\u{10}"))) -- cgit v1.2.3