当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Noto Sans CJK otf格式的问题
帖子发表于 : 2017-05-21 19:48 

注册: 2017-05-21 19:38
帖子: 1
系统: Debian
送出感谢: 0 次
接收感谢: 0 次
OS: Debian Testing
DE: Mate 1.16
没有用官方源中的TTC格式的字体,而是从Google官方下载的NotoSansCJKcs.OTF,结果发现字体无法加载。有没有人遇到过类似的问题?
使用官方OTF的目的有两个,一个是我发现OTF的渲染效果更好一点,其次是源中的TTC格式需要fontconfig中重新排定优先级,否则根据字母排序jp日本汉字先出来。


附件:
mate-de-fonts.png
mate-de-fonts.png [ 33.33 KiB | 被浏览 2294 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2017-05-22 1:10 
头像

注册: 2007-10-23 12:54
帖子: 1750
送出感谢: 3
接收感谢: 28
用 Kubuntu 17.04 测试了一下,Google 官方下载版没有问题,可以正常使用。注意自行添加字体后,应该手动刷新字体缓存
代码:
fc-cache -fv


引用:
我发现OTF的渲染效果更好一点

ttc 是一种字体容器格式,并不是字体本身的格式。字体本身分为 TrueType 和 OpenType,Noto 的 otf 下载版是 OpenType 格式,同时 Debian 源中的 ttc 容器包含的字体也是 OpenType 格式。以下可以佐证:

https://packages.debian.org/sid/all/fon ... k/filelist
其中明确说明安装目录是 /usr/share/fonts/opentype/noto/

如下命令的输出
引用:
$fc-match -v 'Microsoft Yahei' | grep format
fontformat: "TrueType"(w)

$fc-match -v 'Noto Sans CJK SC' | grep format
fontformat: "CFF"(w)

CFF 是基于 OpenType 的压缩字体。我觉得所谓 otf 效果更好应该是错觉,希望你贴图证明。

引用:
源中的TTC格式需要fontconfig中重新排定优先级,否则根据字母排序jp日本汉字先出来

Google 的官方下载版文件 NotoSansCJKsc-hinted.zip 如其文件名说言,仅仅包含 Noto Sans CJK SC 和 Noto Sans Mono CJK SC 两个简体中文字体,如此才不需要调节 fontconfig 中的字体顺序;而 Debian 源中的 fonts-noto-cjk_1.004+repack2-2_all.deb 同时包含了 CJK 国际区中的简体中文,繁体中文,韩文,日文。所以,所谓下载版不需要调节字体顺序,是以无法使用繁体中文,韩文,日文字体为代价的,并不是下载版有什么魔法。

如上,下载版和仓库版并无实质不同。从 noto 开发的初衷看,应该用其覆盖所有文字,才能达成无豆腐块。所以,推荐继续用仓库中的版本,并调节 fontconfig 将 Noto Sans CJK SC 置于优先位置。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2017-05-22 2:04 
头像

注册: 2012-11-14 9:34
帖子: 669
系统: Ubuntu 18.04
送出感谢: 2
接收感谢: 40
AutoXBC 写道:
用 Kubuntu 17.04 测试了一下,Google 官方下载版没有问题,可以正常使用。注意自行添加字体后,应该手动刷新字体缓存
代码:
fc-cache -fv


引用:
我发现OTF的渲染效果更好一点

ttc 是一种字体容器格式,并不是字体本身的格式。字体本身分为 TrueType 和 OpenType,Noto 的 otf 下载版是 OpenType 格式,同时 Debian 源中的 ttc 容器包含的字体也是 OpenType 格式。以下可以佐证:

https://packages.debian.org/sid/all/fon ... k/filelist
其中明确说明安装目录是 /usr/share/fonts/opentype/noto/

如下命令的输出
引用:
$fc-match -v 'Microsoft Yahei' | grep format
fontformat: "TrueType"(w)

$fc-match -v 'Noto Sans CJK SC' | grep format
fontformat: "CFF"(w)

CFF 是基于 OpenType 的压缩字体。我觉得所谓 otf 效果更好应该是错觉,希望你贴图证明。

引用:
源中的TTC格式需要fontconfig中重新排定优先级,否则根据字母排序jp日本汉字先出来

Google 的官方下载版文件 NotoSansCJKsc-hinted.zip 如其文件名说言,仅仅包含 Noto Sans CJK SC 和 Noto Sans Mono CJK SC 两个简体中文字体,如此才不需要调节 fontconfig 中的字体顺序;而 Debian 源中的 fonts-noto-cjk_1.004+repack2-2_all.deb 同时包含了 CJK 国际区中的简体中文,繁体中文,韩文,日文。所以,所谓下载版不需要调节字体顺序,是以无法使用繁体中文,韩文,日文字体为代价的,并不是下载版有什么魔法。

如上,下载版和仓库版并无实质不同。从 noto 开发的初衷看,应该用其覆盖所有文字,才能达成无豆腐块。所以,推荐继续用仓库中的版本,并调节 fontconfig 将 Noto Sans CJK SC 置于优先位置。


我看了一下Ubuntu Mate 17.04里的 69-language-selector-zh-cn.conf 档案,发现还是有点乱,而且也没有考虑到noto serif字体:
附件:
fontconfig.1704.jpg
fontconfig.1704.jpg [ 97.79 KiB | 被浏览 2227 次 ]



是否有好的建议让我们试试去改善?


最后由 Ping-Wu 编辑于 2017-05-22 7:27,总共编辑了 1 次

页首
 用户资料  
 
4 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2017-05-22 3:25 
头像

注册: 2007-10-23 12:54
帖子: 1750
送出感谢: 3
接收感谢: 28
Ping-Wu 写道:
我看了一下Ubuntu Mate 17.04里的 69-language-selector-zh-cn.conf 档案,发现还是有点乱,而且也没有考虑到noto sans-serif字体,是否有好的建议让我们试试去改善?

如果可以修改上游项目 fontconfig,改进 69-language-selector-zh-cn.conf 的内容,我建议写成这个顺序,其他字体一律不写
引用:
DejaVu
Noto


动不了 fontconfig,我希望某个桌面套件或者发行版出个前端工具,让用户选择首选西文字体,首选中文字体,然后生成配置文件,可以迅速解决绝大多数用户的疑问。

什么都动不了的话,只能自行写 ~/.fonts.conf,衬线非衬线等宽一共就需要写 6 行,其他删除。这个位置优先级最高,升级也不会覆盖,写完一劳永逸。
引用:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="pattern">
<test name="family" qual="any">
<string>serif</string>
</test>
<edit name="family" binding="strong" mode="prepend">
<string>DejaVu Serif</string>
<string>Microsoft YaHei</string>

</edit>
</match>
<match target="pattern">
<test name="family" qual="any">
<string>sans-serif</string>
</test>
<edit name="family" binding="strong" mode="prepend">
<string>DejaVu Sans</string>
<string>Microsoft YaHei</string>

</edit>
</match>
<match target="pattern">
<test name="family" qual="any">
<string>monospace</string>
</test>
<edit name="family" binding="strong" mode="prepend">
<string>DejaVu Sans Mono</string>
<string>Microsoft YaHei</string>

</edit>
</match>
<dir>~/.fonts</dir>
<match target="font">
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit name="hintstyle" mode="assign">
<const>hintfull</const>
</edit>
</match>
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
</match>
</fontconfig>


页首
 用户资料  
 
5 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2017-05-23 1:34 
头像

注册: 2012-11-14 9:34
帖子: 669
系统: Ubuntu 18.04
送出感谢: 2
接收感谢: 40
AutoXBC 写道:
Ping-Wu 写道:
我看了一下Ubuntu Mate 17.04里的 69-language-selector-zh-cn.conf 档案,发现还是有点乱,而且也没有考虑到noto sans-serif字体,是否有好的建议让我们试试去改善?

如果可以修改上游项目 fontconfig,改进 69-language-selector-zh-cn.conf 的内容,我建议写成这个顺序,其他字体一律不写
引用:
DejaVu
Noto


动不了 fontconfig,我希望某个桌面套件或者发行版出个前端工具,让用户选择首选西文字体,首选中文字体,然后生成配置文件,可以迅速解决绝大多数用户的疑问。

什么都动不了的话,只能自行写 ~/.fonts.conf,衬线非衬线等宽一共就需要写 6 行,其他删除。这个位置优先级最高,升级也不会覆盖,写完一劳永逸。


我第一次把话讲错了,真的是太对不起Ubuntu的中文开发亲们! :Aadterboom

在69-language-selector-xx-xx.conf 之后,有一个 70-fonts-noto-cjk.conf 档案,专门处理 noto 字体。

在Ubuntu Mate 17.04里,所有的中文衬线(serif)字体,都由非衬线(sans-serif)Noto字体取代:

代码:
<match target="pattern">
        <test name="lang">
            <string>zh-cn</string>
        </test>
        <test name="family">
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>Noto Sans CJK SC</string>
        </edit>
    </match>


如果我们一定要使用serif字体的话,可以在 /etc/fonts/conf.d 里,加一个像下面这么一个档案:

71-fonts-noto-cjk-serif.conf

代码:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

    <match target="pattern">
        <test name="lang">
            <string>zh-cn</string>
        </test>
        <test name="family">
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>Noto Serif CJK SC</string>
        </edit>
    </match>

    <match target="pattern">
        <test name="lang">
            <string>zh-tw</string>
        </test>
        <test name="family">
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>Noto Serif CJK TC</string>
        </edit>
    </match>

 </fontconfig>


衬线(serif)跟非衬线(sans-serif)的比较,可以由底下所附的两个截图参考:

衬线(serif):
附件:
serif.jpg
serif.jpg [ 62.89 KiB | 被浏览 2144 次 ]



非衬线(sans-serif):
附件:
sans-serif.jpg
sans-serif.jpg [ 74.35 KiB | 被浏览 2144 次 ]



对我个人来讲,因为看惯了手机里的非衬线字型,衬线字型读起来很不习惯。

因此,Ubuntu的做法,把衬线中文字型用非衬线NotoCJK字型显示,是正确的。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2017-05-23 2:03 
头像

注册: 2007-10-23 12:54
帖子: 1750
送出感谢: 3
接收感谢: 28
Ping-Wu 写道:
如果我们一定要使用serif字体的话,可以在 /etc/fonts/conf.d 里,加一个像下面这么一个档案

Debian 系中没有打包 Noto Serif CJK 分支,写这个配置的话,要手动去 Google 的页面下载衬线字体。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2017-05-23 2:07 
头像

注册: 2012-11-14 9:34
帖子: 669
系统: Ubuntu 18.04
送出感谢: 2
接收感谢: 40
Ping-Wu 写道:
衬线(serif)跟非衬线(sans-serif)的比较,可以由底下所附的两个截图参考:

衬线(serif):
图片

非衬线(sans-serif):
图片

对我个人来讲,因为看惯了手机里的非衬线字型,衬线字型读起来很不习惯。

因此,Ubuntu的做法,把衬线中文字型用非衬线NotoCJK字型显示,是正确的。


另外讲一个我们自己的经验。浏览网页,用非衬线字体,但是在办公室做文书处理时,却必须使用到衬线字体。下面是两种字体,在LibreOffice(5.3.0 可携带版)里做比较:
附件:
Untitled 1 - LibreOffice Writer_006.jpg
Untitled 1 - LibreOffice Writer_006.jpg [ 298 KiB | 被浏览 2133 次 ]


别的不说,打印非衬线字体的文件时,墨水没有几天就用完了。这是像我这种做老板的人最关心的事,但一般Linux支持者(Linux enthusiasts)根本不会去注意这些非技术上的事。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2018-02-01 22:28 

注册: 2011-04-10 21:08
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
Debian 9 源中的ttc格式似乎没有 hint 信息? 我用下来也感觉不如 google 官方的美观。Ubuntu有没有重新打过包不清楚。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2018-02-01 22:34 

注册: 2011-04-10 21:08
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
AutoXBC 写道:
用 Kubuntu 17.04 测试了一下,Google 官方下载版没有问题,可以正常使用。注意自行添加字体后,应该手动刷新字体缓存
代码:
fc-cache -fv


引用:
我发现OTF的渲染效果更好一点

ttc 是一种字体容器格式,并不是字体本身的格式。字体本身分为 TrueType 和 OpenType,Noto 的 otf 下载版是 OpenType 格式,同时 Debian 源中的 ttc 容器包含的字体也是 OpenType 格式。以下可以佐证:

https://packages.debian.org/sid/all/fon ... k/filelist
其中明确说明安装目录是 /usr/share/fonts/opentype/noto/

如下命令的输出
引用:
$fc-match -v 'Microsoft Yahei' | grep format
fontformat: "TrueType"(w)

$fc-match -v 'Noto Sans CJK SC' | grep format
fontformat: "CFF"(w)

CFF 是基于 OpenType 的压缩字体。我觉得所谓 otf 效果更好应该是错觉,希望你贴图证明。

引用:
源中的TTC格式需要fontconfig中重新排定优先级,否则根据字母排序jp日本汉字先出来

Google 的官方下载版文件 NotoSansCJKsc-hinted.zip 如其文件名说言,仅仅包含 Noto Sans CJK SC 和 Noto Sans Mono CJK SC 两个简体中文字体,如此才不需要调节 fontconfig 中的字体顺序;而 Debian 源中的 fonts-noto-cjk_1.004+repack2-2_all.deb 同时包含了 CJK 国际区中的简体中文,繁体中文,韩文,日文。所以,所谓下载版不需要调节字体顺序,是以无法使用繁体中文,韩文,日文字体为代价的,并不是下载版有什么魔法。

如上,下载版和仓库版并无实质不同。从 noto 开发的初衷看,应该用其覆盖所有文字,才能达成无豆腐块。所以,推荐继续用仓库中的版本,并调节 fontconfig 将 Noto Sans CJK SC 置于优先位置。


我相信这些问题楼主应该都明白,他也说了为什么用官方字体的原因,一个有hint,另一个是省去做 fontconfig 配置,字体体积也较小吧。楼主的问题重点其实应该是:Mate桌面环境下为什么 google 官方的 otf 都是 blank box,桌面上无法显示字体,而源中的ttc格式却是正常的。阁下是否知道其中缘由呢?


页首
 用户资料  
 
10 楼 
 文章标题 : Re: Noto Sans CJK otf格式的问题
帖子发表于 : 2018-04-17 16:29 

注册: 2011-04-10 21:08
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
我也遇到这样的问题了,你是直接从 Google 的下载的 Super OTC 格式的文件吧?解压到 /usr/share/fonts/opentype/noto/ 后,请确认下字体文件的 permission,很可能是 other 用户没有设置 read 权限,这样非 root 就无法访问这个字体文件了。`sudo chmod o+r *.ttc` 就搞定了。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译