Commit 96ba06e
committed
fix(xeCJK): xunicode-symbols.tex 改为多级字体 fallback (#878)
原 fallback 是单层 if-else: Segoe UI Symbol 存在则锁定为唯一 fallback,
Noto Sans Symbols 2 永远轮不到。在 Windows 上即使装了 Noto Sans Symbols 2,
也会因为 Segoe UI Symbol 总是被优先选中而出现大段 Missing character。
改为按 Noto Sans Symbols 2 → Symbola → Segoe UI Symbol → DejaVu Sans
顺序逐字符尝试,首个能渲染该字符的字体即用之;主字体 FreeSerif 自身覆盖
的字符仍走主字体。多级 fallback 通过嵌套 \tex_iffontchar:D + \cs_if_exist_use:N
实现,缺失的候选字体自动跳过。
文档侧在 \subsection{xunicode-symbols.tex} 处补充字体依赖说明,提醒
用户本地缺字时可补装 Noto Sans Symbols 2 或直接使用 pre-release 中
预编译的 PDF。
新增 changes 条目 (v3.10.0, 2026/06/23)。
Refs #8781 parent 358feb2 commit 96ba06e
1 file changed
Lines changed: 38 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14994 | 14994 | | |
14995 | 14995 | | |
14996 | 14996 | | |
| 14997 | + | |
| 14998 | + | |
| 14999 | + | |
| 15000 | + | |
| 15001 | + | |
| 15002 | + | |
| 15003 | + | |
| 15004 | + | |
| 15005 | + | |
| 15006 | + | |
| 15007 | + | |
| 15008 | + | |
| 15009 | + | |
| 15010 | + | |
| 15011 | + | |
| 15012 | + | |
| 15013 | + | |
| 15014 | + | |
| 15015 | + | |
14997 | 15016 | | |
14998 | 15017 | | |
14999 | 15018 | | |
| |||
15011 | 15030 | | |
15012 | 15031 | | |
15013 | 15032 | | |
| 15033 | + | |
| 15034 | + | |
| 15035 | + | |
| 15036 | + | |
15014 | 15037 | | |
15015 | | - | |
15016 | | - | |
15017 | | - | |
15018 | | - | |
| 15038 | + | |
| 15039 | + | |
| 15040 | + | |
15019 | 15041 | | |
15020 | 15042 | | |
15021 | 15043 | | |
| |||
15130 | 15152 | | |
15131 | 15153 | | |
15132 | 15154 | | |
15133 | | - | |
| 15155 | + | |
| 15156 | + | |
| 15157 | + | |
| 15158 | + | |
| 15159 | + | |
| 15160 | + | |
| 15161 | + | |
| 15162 | + | |
| 15163 | + | |
| 15164 | + | |
| 15165 | + | |
| 15166 | + | |
15134 | 15167 | | |
15135 | 15168 | | |
15136 | 15169 | | |
| |||
0 commit comments