Closed stone-zeng closed 5 years ago
我也手贱升级了一发【滑稽】
我试了一下把 xeCJK
的 \defaultCJKfontfeatures { Script = CJK }
这一行去掉就不报错了。
另外我比较奇怪的是,SimSun, SimHei, Songti SC, Source Han Serif 等字体的 script 信息都只有 Simplified Han
,为何 fontspec
的 script 却这个选项?
OpenType 的 Script Tag 只有 hani
(CJK Ideographic),Language Tag 才分 ZHH
/ZHS
/ZHT
(Chinese Hong Kong SAR/Simplified/Traditional)。
PS:小心空格(tag 一定有 4 个 char)
原来我用了假的 FontBook……
OpenType 的 Script Tag 只有
hani
(CJK Ideographic),Language Tag 才分ZHH
/ZHS
/ZHT
(Chinese Hong Kong SAR/Simplified/Traditional)。
ref:
fontspec
@muzimuzhi OpenType 的 Script Tag 的确只有 hani
,微软 docs 与之对应的 Script 名称为 CJK Ideographic
。fontspec
里面的那个 Script=CJK
的写法完全是为了 backwards compatibility。
@Stone-Zeng 跟我之前报告 CTeX 很多文档编译不通过很类似,这似乎不是 xeCJK
的问题。我那次是 LaTeX3 kernel 的问题,这次是 fontspec
的问题:
% !TeX program = XeLaTeX
\documentclass{article}
\usepackage{fontspec}
\setmainfont{FandolSong}[Script=CJK]
\begin{document}
Hello, world! 你好,世界!
\end{document}
同样编译失败:
Package fontspec Warning: Font 'FandolSong' does not contain script 'CJK'.
)
Runaway argument?
\int_set:Nn \l_tmpb_int {\XeTeXOTcountfeatures \l_fontspec_font \l__fontspec_sc
ript_int \ETC.
! File ended while scanning use of \__fontspec_strip_leading_sign:Nw.
<inserted text>
\par
已报告至 fontspec
issue 346。
wspr 终于在 fontspec
v2.6l 里面把这个修好了……
赞!
之前的 v2.6l
修好了 Fandol,但是修崩了别的西文字体,也修崩了数学字体。几个小时前发布的 v2.7
似乎修好了西文字体与数学字体。
v2.7
好像又修崩了……
确认 fontspec v2.7
修崩了 Fandol 这类没有缺省 Script 的字体,如果直接将 Script=CJK
传递给 \set...font
,那么 CJK
这个字符串会在 log 文件中凭空消失,然后出现在 PDF 里(!!!)。
留这个 issue 到 v2.7a
出现在 TeX Live 与 MiKTeX 之后再关。
fontspec v2.7a
已经上线(MiKTeX)至少三天了,终于可以放心关 issue 了。
示例:
报错信息为:
问题似乎是 Fandol 系列字体没有 Script=CJK 的信息,展开出了点问题(还未仔细排查)。换成 SimSun、Microsoft YaHei 等则可以正常编译。
版本信息: