-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ctex: 升级 macOS 下的字体配置,增加默认罗马字族及无衬线字族的字重组合 #351
Comments
本次对 macOS 下默认字体的修改,计划自 Sierra 开始兼容,放弃或部分放弃对更低版本 OS X/macOS 的兼容性。 Apple 官网可查 Sierra 默认预装的字体:https://support.apple.com/en-us/HT206872。 |
目前拟将 XeLaTeX 下的默认配置修改为: \setCJKmainfont [ ItalicFont = Kaiti~SC, BoldItalicFont = Kaiti~SC~Bold ] { Songti~SC }
\setCJKsansfont { Heiti~SC }
\setCJKmonofont { STFangsong }
\setCJKfamilyfont { zhsong } { Songti~SC }
\setCJKfamilyfont { zhhei } { Heiti~SC }
\setCJKfamilyfont { zhfs } { STFangsong }
\setCJKfamilyfont { zhkai } { Kaiti~SC } 同时,将 macOS 的检测标志修改为 |
Songti SC Light 的字重跟 STSong 更接近,跟 SimSun 也更接近,所以 regular 应该设为这个 |
认同 @zepinglee 的建议,对比了一下,SimSum 比 Songti SC 要淡一点比 Songti SC Light 又要重一点, 总的来说, Songti SC Light 字重似乎更和 STSong 和 SimSum 接近。而且 Songti SC 自带 Bold 终于可以不用考虑用黑体替换粗宋体,因此也许可考虑:
@zepinglee ctex 用的 LaTeX3,所以需要 下面贴一下我所用的测试代码和输出结果,以做参考:
|
对了,换字体过程中,我还遇到的一个状况就是似乎SC类字体xelatex调用没有任何异常时却不为luatex所识别,具体原因我也不知道,所以还请大神们在改代码时能关注测试一下。 |
按孫志貴的建议,无衬线字体可考虑使用苹方代替 若按此设计,则
\setCJKmainfont
[
UprightFont = Songti~SC~Light,
ItalicFont = Kaiti~SC,
BoldItalicFont = Kaiti~SC~Bold
] { Songti~SC }
\setCJKsansfont { PingFang~SC }
\setCJKmonofont { STFangsong }
\setCJKfamilyfont { zhsong } { Songti~SC }
\setCJKfamilyfont { zhhei } { Heiti~SC }
\setCJKfamilyfont { zhpf } { PingFang~SC }
\setCJKfamilyfont { zhfs } { STFangsong }
\setCJKfamilyfont { zhkai } { Kaiti~SC } |
@qinglee 之前在 #335 (comment) 中提及:「新加字重的字符集大概只覆盖到最基本的 GB2312,与原来字体并不一致」。 这个信息是在哪里查询得到的呢?或是自己测试得到的结论? |
@Liam0205 是刚出新字体时测试的结果,现在应该不用考虑这个问题了。 |
赞,了解了。 |
用 macold 加 macnew 是没问题的,同意。然后通过检测字体文件来区分新旧。 新字体集的话,无衬线肯定是用屏幕黑体(冬青黑、苹方之类)比较好,因为 beamer 默认是无衬线体。印刷黑体留给 如果比较多,是可以增加一些字体命令,类似 Windows 下的 |
另外还可以把报隶字体作为 |
6c6e3b8 已完成代码开发,在 MacTeX 2018 下使用 XeLaTeX 编译测试通过。欢迎各位调试验证。无问题就 merge 回 master 分支了;同时请 @qinglee @leo-liu review code。 MWE: \documentclass[UTF8, fontset = mac]{ctexart}
\begin{document}
\section{默认字体测试}
罗马字族 \textbf{罗马字族加粗} \textit{罗马字族意大利体} \textbf{\textit{罗马字族意大利体加粗}}
\textsf{无衬线字族} \textbf{\textsf{无衬线字族加粗}}
\texttt{等宽字族}
\section{字体选择命令测试}
{\songti 宋体 \textbf{宋体加粗}}
{\kaishu 楷书 \textbf{楷书加粗}}
{\heiti 黑体 \textbf{黑体加粗}}
{\fangsong 仿宋 \textbf{仿宋加粗}}
{\pingfang 苹方 \textbf{苹方加粗}}
{\yahei 伪·雅黑 \textbf{伪·雅黑加粗}}
\end{document} |
我觉得“伪·雅黑”就不要加进去了吧 |
@zepinglee 那是按照 @leo-liu 的建议,给 |
我现在为了把 windowsnew 的 sffamily 换成 simhei,写的是 |
@zepinglee 是不是你的设置考虑的过于细致了,其实可以考虑不管new还是old,都设成simhei,这样就没这个检测问题了。 |
@zepinglee 对了,下面是我的对接 ctex 系统检测的方法,这样会比检测某些细节设定更加稳定和一致:
核心就是首先对接然后检测 ctex 的全局 fontset 变量 |
@mohuangrui 你的思路大体是对的:不应该检测实现细节;但是这个方案不能区分 @zepinglee 可以检查装载了哪一个 |
@Liam0205 确实无法检测new和old,如ctex本身是通过 实践中发现,往往不会考虑雅黑,所以,我的办法是不管new还是old,都设成simhei就好,简单粗暴但有效~ |
|
话说,这个是不是跳一个大一点的版本号比较合适,比如 2.5.0 这样的?毕竟算是有新功能添加了。 |
话是这样说,不过主体逻辑并没有改变,而且 tag 已经打了,所以就这样吧…… |
学习了 |
所以说
为什么变成了
两个疑问:
另外,关于 |
|
还有建议加入 Baoli SC 作为 |
Mavericks 也有 Hiragino Sans GB W3 吧,其实和苹方基本是接近的屏幕黑体(事实上 PingFang.ttc 里面就有 Hiragino Sans GB Interface W3)。 以前我不怎么用 mac 所以也没有在这个问题上多考虑,冬青黑体在 Mavericks 上不能用么? |
印象里 Mavericks 是可以用冬青黑的,不过我手头实在没有环境了,这个不好确认。 是准备把 |
我觉得设置为冬青黑是好一些。不过既然 macOS 更新那么果决其实也无所谓。 |
我还是没想好 所以搞成这样又很麻烦……更多的是,很恶心……? %<*macold>
\sys_if_engine_pdftex:TF
{ \ctex_fontset_error:n { mac } }
{
\sys_if_engine_uptex:TF
{ \ctex_fontset_error:n { mac } }
{
\setCJKmainfont [ BoldFont = STHeiti , ItalicFont = STKaiti ] { STSong }
\file_if_exist:nTF { /System/Library/Fonts/Hiragino~Sans~GB~W3.ttc }
{
\file_if_exist:nTF { /System/Library/Fonts/Hiragino~Sans~GB~W6.ttc }
{
\setCJKsansfont
[
BoldFont = HiraginoSansGB-W6
] { HiraginoSansGB-W3 }
}
{ \setCJKsansfong [ BoldFont = STHeiti ] { STXihei } }
}
{ \setCJKsansfong [ BoldFont = STHeiti ] { STXihei } }
\setCJKmonofont { STFangsong }
\setCJKfamilyfont { zhsong } { STSong }
\setCJKfamilyfont { zhhei } { STHeiti }
\setCJKfamilyfont { zhfs } { STFangsong }
\setCJKfamilyfont { zhkai } { STKaiti }
\file_if_exist:nT { /System/Library/Fonts/Hiragino~Sans~GB~W3.ttc }
{
\file_if_exist:nTF { /System/Library/Fonts/Hiragino~Sans~GB~W6.ttc }
{
\setCJKfamilyfont { zhdqh }
[
BoldFont = HiraginoSansGB-W6
] { HiraginoSansGB-W3 }
}
{ \setCJKfamilyfont { zhdqh } { HiraginoSansGB-W3 } }
}
}
}
%</macold>
%<macold>\file_if_exist:nT { /System/Library/Fonts/Hiragino~Sans~GB~W3.ttc }
%<macold> { \NewDocumentCommand \dongqing { } { \CJKfamily { zhdqh } } } |
建议加入 Baoli SC 作为 |
@AlexaraWu |
冬青黑的问题,目前 |
同 #335 (comment),但是好像没下文了。
目前 ctex 在 mac 下的默认字体是这样的:
我现在的设置是:
效果:
但是还有两个问题:
The text was updated successfully, but these errors were encountered: