libreoffice 列表样式出现乱码字符
-
- 帖子: 387
- 注册时间: 2007-06-22 18:52
libreoffice 列表样式出现乱码字符
以前很少用列表样式,从来没有注意过列表样式的问题。今天写文件偶然用到列表样式,发现我的libreoffice默认文档列表样式里有符号列表样式显示乱码。但是经过测试,发现该符号使用的是libreoffice自带的OpenSymbol符号字体,符号列表样式是可以正常在文档显示的,但是无论在样式框中是预览还是不预览,均会出现符号乱码。不知是我的系统这样,还是都这样?
下面是测试截图,注意红框部分的变化。
下面是测试截图,注意红框部分的变化。
-
- 帖子: 387
- 注册时间: 2007-06-22 18:52
Re: libreoffice 列表样式出现乱码字符
经过测试,应该是我的系统添加了部分字体造成的字体匹配问题。在我的系统中删除fonts-arphic-uming和fonts-arphic-ukai这两个字体包,同时删除自行添加的細明體和Segoe UI符号字体后,全部显示正常。
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: libreoffice 列表样式出现乱码字符
用fontconfig设置调整一下字体匹配优先级应该就可以了
- 驿窗project
- 帖子: 228
- 注册时间: 2019-01-17 12:17
- 系统: Arch/Debian
- 联系:
Re: libreoffice 列表样式出现乱码字符
优先级的概念是指什么?UI使用字体时先用哪个后用哪个?
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
- 驿窗project
- 帖子: 228
- 注册时间: 2019-01-17 12:17
- 系统: Arch/Debian
- 联系:
Re: libreoffice 列表样式出现乱码字符
我试了一下,运行fc-match 会显示NotoSansCJKsc-Regular.otf: " Noto Sans CJK SC" "Regular"
不过,打开 /etc/fonts/fonts.conf 文件后,找不到 <string>zh</string> 这样的参数~
我参考了这个:
https://wiki.archlinux.org/index.php/Fo ... D.E7.BD.AE
http://www.jinbuguo.com/gui/fonts.conf.xml
是不是我缺少了什么步骤?
Debian/buster gnome
不过,打开 /etc/fonts/fonts.conf 文件后,找不到 <string>zh</string> 这样的参数~
我参考了这个:
https://wiki.archlinux.org/index.php/Fo ... D.E7.BD.AE
http://www.jinbuguo.com/gui/fonts.conf.xml
是不是我缺少了什么步骤?
Debian/buster gnome
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: libreoffice 列表样式出现乱码字符
你都不看一下fc-match有哪些参数的吗?不带参数运行只会输出不指定字体名时最先匹配的字体
默认的基础配置里本来就不会有针对特点语言特定字体的设定,要么是特定字体自带的设定会放到/etc/fonts/conf.d/下面,要么根据自己的实际情况自己动手写
arch的那篇wiki年久失修,充斥着大量错误,fontconfig早就对一个test里多个string的写法报warning了。随便从里面的示例抓段来解释驿窗project 写了: ↑2021-03-19 20:52 我参考了这个:
https://wiki.archlinux.org/index.php/Fo ... D.E7.BD.AE
http://www.jinbuguo.com/gui/fonts.conf.xml
代码: 全选
<match>
<test qual="any" name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Serif</string>
</edit>
</match>
- 驿窗project
- 帖子: 228
- 注册时间: 2019-01-17 12:17
- 系统: Arch/Debian
- 联系:
Re: libreoffice 列表样式出现乱码字符
我花点时间研究一下,之前没遇到过问题;对于某些用户来说,fontconfig肯定会用到~
-
- 帖子: 387
- 注册时间: 2007-06-22 18:52
Re: libreoffice 列表样式出现乱码字符
此问题就是字体匹配的问题。在原版ubuntu中首选字体,查看/conf.d/69-language-selector-zh-cn.conf字体配置文件,你会发现sans首选字体为Noto Sans CJK SC字体,属于noto字体家族中的简体中文字符,由于google在思源字体的基础上进行了修改,字符编码非常正规,没有出现覆盖其他字符编码的情况,所以这样是没有问题的。但是libreoffice自带的OpenSymbol符号字体,与文鼎的字体的部分字符编码却出现了重复的情况。仔细查看了文鼎字体的编码覆盖发现,文鼎的字体在港台字符区域(AR PL UMing HK)与libreoffice在带OpenSymbol符号字体出现了重复,按照字体匹配规则,在首选字体无法索引的情况下,会寻找下一个字体文件,就找到了AR PL UMing HK字体,从而在简体中文环境下就将“”显示为“玘”字。
fontconfig 字体匹配可以查看金步国的作品http://www.jinbuguo.com/gui/fonts.conf.html
我的匹配办法简单粗暴,将首选字体选为需要的英文字体,如DejaVu Sans,次选Noto Sans CJK SC字体,再次字体为OpenSymbol符号字体。这样就解决了这问题。
下面是代码和匹配过程。
fontconfig 字体匹配可以查看金步国的作品http://www.jinbuguo.com/gui/fonts.conf.html
我的匹配办法简单粗暴,将首选字体选为需要的英文字体,如DejaVu Sans,次选Noto Sans CJK SC字体,再次字体为OpenSymbol符号字体。这样就解决了这问题。
下面是代码和匹配过程。
代码: 全选
mkdir -p ~/.config/fontconfig
cat > ~/.config/fontconfig/fonts.conf << 'EOF'
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="lang">
<string>zh-cn</string>
</test>
<test qual="any" name="family">
<string>sans-serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>DejaVu Sans</string>
<string>Noto Sans CJK SC</string>
<string>OpenSymbol</string>
</edit>
</match>
</fontconfig>
EOF
代码: 全选
$ fc-match -s
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular"
opens___.ttf: "OpenSymbol" "Regular"
......
- Ping-Wu
- 帖子: 1822
- 注册时间: 2012-11-14 9:34
- 系统: Debian 12
Re: libreoffice 列表样式出现乱码字符
太复杂(太偏了),这么重要的问题为什么不赵规矩在 /etc/fonts/conf.d 里修改呢?
有时间再聊一下,不过我在 Debian 11 的预设环境值下没有发现这个问题:
倒是有其他的问题,有时间再谈。
在 Debian 11 里,有关繁体,简体,日,韩文的 fontconfig 档案已全部合并为 70-fonts-noto-cjk.conf,越简单越好!Ubuntu (20.04)里,有关中文的fontconfig 档案就有5个,包括简体(zh_cn,“69-language-selector-zh-cn.conf”),繁体(zh_tw),香港(zh_hk),澳门(zh_mo),星加坡(zh_sg)(想搞中国分裂啊?),里面的内容也是乱七八糟,这是好几年来累积下来的垃圾,没有人去处理。我不知道 Ubuntu 21.04 的状况如何,不过 Ubuntu 是 Debian 的衍生版,应该也会照着做吧?
有时间再聊一下,不过我在 Debian 11 的预设环境值下没有发现这个问题:
倒是有其他的问题,有时间再谈。
在 Debian 11 里,有关繁体,简体,日,韩文的 fontconfig 档案已全部合并为 70-fonts-noto-cjk.conf,越简单越好!Ubuntu (20.04)里,有关中文的fontconfig 档案就有5个,包括简体(zh_cn,“69-language-selector-zh-cn.conf”),繁体(zh_tw),香港(zh_hk),澳门(zh_mo),星加坡(zh_sg)(想搞中国分裂啊?),里面的内容也是乱七八糟,这是好几年来累积下来的垃圾,没有人去处理。我不知道 Ubuntu 21.04 的状况如何,不过 Ubuntu 是 Debian 的衍生版,应该也会照着做吧?
上次由 Ping-Wu 在 2021-03-23 10:09,总共编辑 1 次。
- 驿窗project
- 帖子: 228
- 注册时间: 2019-01-17 12:17
- 系统: Arch/Debian
- 联系:
Re: libreoffice 列表样式出现乱码字符
/etc/fonts/conf.d ?
我一直以为fontconf才是正确的设置入口~
我一直以为fontconf才是正确的设置入口~
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
- Ping-Wu
- 帖子: 1822
- 注册时间: 2012-11-14 9:34
- 系统: Debian 12
Re: libreoffice 列表样式出现乱码字符
我玩了一下今天刚刚出炉的 Fedora 34 beta,处理LZ这个问题的程度没有 Debian 11 那么彻底:
相比之下,Debian 11 就显得较 professional 了:
下面是 Ubuntu 21.04 的截图,还是没有弄干净:
相比之下,Debian 11 就显得较 professional 了:
下面是 Ubuntu 21.04 的截图,还是没有弄干净:
- 驿窗project
- 帖子: 228
- 注册时间: 2019-01-17 12:17
- 系统: Arch/Debian
- 联系:
Re: libreoffice 列表样式出现乱码字符
Fedora好像主要面向开发人员,不像Debian那样面向普通用户~