main
1#let latin-fonts = (
2 "Libertinus Serif",
3 "Georgia",
4 "Cambria",
5 "Times New Roman",
6)
7#let cjk-fonts = (
8 default: ("Source Han Serif",),
9 cn: (
10 "Source Han Serif SC",
11 "Source Han Serif",
12 "Noto Serif CJK SC",
13 "Noto Serif SC",
14 "Noto Serif CJK",
15 "SimSun",
16 "STSongti",
17 ),
18 tw: (
19 "Source Han Serif TC",
20 "Source Han Serif",
21 "Noto Serif CJK TC",
22 "Noto Serif TC",
23 "Noto Serif CJK",
24 ),
25 jp: (
26 "Source Han Serif JP",
27 "Source Han Serif",
28 "Noto Serif CJK JP",
29 "Noto Serif JP",
30 "Noto Serif CJK",
31 ),
32 kr: (
33 "Source Han Serif KR",
34 "Source Han Serif",
35 "Noto Serif CJK KR",
36 "Noto Serif KR",
37 "Noto Serif CJK",
38 ),
39)
40
41
42#let font-template(body) = {
43 set text(font: latin-fonts)
44 let latin-in-cjk-fonts = latin-fonts.map(it => (name: it, covers: "latin-in-cjk"))
45 show text.where(lang: "zh"): set text(font: latin-in-cjk-fonts + cjk-fonts.default)
46 show text.where(lang: "zh", region: "cn"): set text(font: latin-in-cjk-fonts + cjk-fonts.cn)
47 show text.where(lang: "zh", region: "tw"): set text(font: latin-in-cjk-fonts + cjk-fonts.tw)
48 show text.where(lang: "jp"): set text(font: latin-in-cjk-fonts + cjk-fonts.jp)
49 show text.where(lang: "kr"): set text(font: latin-in-cjk-fonts + cjk-fonts.kr)
50
51 body
52}