debian中输入偏旁部首,候选词会显示方块

系统字体配置、中文显示和输入法问题
头像
驿窗project
帖子: 226
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

debian中输入偏旁部首,候选词会显示方块

#1

帖子 驿窗project » 2022-02-23 9:09

我的debian11+gnome在使用一善鱼的输入法时明显发现这个问题,而一善鱼的ubuntu studio能够正常显示偏旁部首。(也包括部分复杂的完整汉字)

在后来在与一善鱼沟通验证的过程中,我除了使用debian11+gnome,也测试了debian11+xfce,发现在使用fcitx-wbpy或者fcitx-rime-wbpy或者ibus-rime-wbpy输入gggg的时候,都会显示一个方块,所以,我大概能够确认,这个方块产生的原因,应该与输入法本身无关,而是与输入法以外的其它东西有关;我能想到的,只有系统。

之所以之前一直没有发现这个问题,我推测大概是因为其它输入法可能只关注完整的汉字,不输出偏旁部首,或者仅输出少量的偏旁部首,而一善鱼的输入法在候选词中会输出大量的偏旁部首。目前能够发现的,主要是偏旁部首会变成方块。有一个截图示例如下:
6.png
对比可以看出,右侧后四个候选,都是偏旁部首,在左侧都显示为方块。

这个截图还涉及另一个问题,就是右侧是强制候选词使用noto serif cjk sc字体,左侧是候选词使用系统默认的sans regular字体。也就是说,更换候选词字体,会导致候选词方块的情况发生变化。而这一切,都只发生在debian上,在ubuntu studio却没有问题。但一善鱼的反馈是,使用了默认的ubuntu studio+kde设置,没有做任何调整。

另外还有一个问题,就是我在打开一善鱼的输入法词库文件时,很多字也是显示的方块,而这些方块并没有在输入法的候选中,这也是我判断与输入法无关的一个依据。

所以,我应该如何解决这些显示方块的问题?

哪位对这方面有了解的,能不能帮助分析一下?

ps:
我和一善鱼的讨论过程,可以参考下面帖子的82楼到93楼:
https://forum.ubuntu.com.cn/viewtopic.p ... 0&start=75
头像
astolia
论坛版主
帖子: 6514
注册时间: 2008-09-18 13:11

Re: debian中输入偏旁部首,候选词会显示方块

#2

帖子 astolia » 2022-02-23 10:39

这有啥好分析的,不就是你指定的字体名称对应的候选字体中缺少那些字形么。以前又不是没教过你怎么看候选字体列表及匹配优先级
头像
yq-ysy
论坛版主
帖子: 4466
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#3

帖子 yq-ysy » 2022-02-23 10:48

我搜索了一下“Linux字体匹配优先级”,找到一篇2013年的帖子,试了一下他说的命令:
more /etc/fonts/conf.d/65-nonlatin.conf
中文字体我只能从中看出 AR PL,还有SimSun,wenquanyi等,没见noto字样。

代码: 全选

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
    <its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
  </its:rules>

  <description>Set preferable fonts for non-Latin</description>
        <alias>
                <family>serif</family>
                <prefer>
                        <family>Artsounk</family> <!-- armenian -->
                        <family>BPG UTF8 M</family> <!-- georgian -->
                        <family>Kinnari</family> <!-- thai -->
                        <family>Norasi</family> <!-- thai -->
                        <family>Frank Ruehl</family> <!-- hebrew -->
                        <family>Dror</family>  <!-- hebrew -->
                        <family>JG LaoTimes</family>  <!-- lao -->
                        <family>Saysettha Unicode</family>  <!-- lao -->
                        <family>Pigiarniq</family> <!-- canadian syllabics -->
                        <family>B Davat</family> <!-- arabic (fa) -->
                        <family>B Compset</family>  <!-- arabic (fa) -->
                        <family>Kacst-Qr</family> <!-- arabic (ar) -->
                        <family>Urdu Nastaliq Unicode</family> <!-- arabic (ur) -->
                        <family>Raghindi</family> <!-- devanagari -->
                        <family>Mukti Narrow</family> <!-- bengali -->
                        <family>padmaa</family> <!-- gujarati -->
                        <family>Hapax Berbère</family> <!-- tifinagh -->
                        <family>MS Mincho</family> <!-- han (ja) -->
                        <family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
                        <family>PMingLiu</family> <!-- han (zh-tw) -->
                        <family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
                        <family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
                        <family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
                        <family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
                        <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
                        <family>HanyiSong</family> <!-- han (zh-cn,zh-tw) -->
                        <family>MgOpen Canonica</family>
                        <family>Sazanami Mincho</family>
                        <family>IPAMonaMincho</family>
                        <family>IPAMincho</family>
                        <family>Kochi Mincho</family>
                        <family>AR PL SungtiL GB</family>
                        <family>AR PL Mingti2L Big5</family>
                        <family>AR PL Zenkai Uni</family>
                        <family>MS 明朝</family>
                        <family>ZYSong18030</family>
                        <family>NanumMyeongjo</family> <!-- hangul (ko) -->
                        <family>UnBatang</family> <!-- hangul (ko) -->
                        <family>Baekmuk Batang</family> <!-- hangul (ko) -->
                        <family>KacstQura</family>
                        <family>Frank Ruehl CLM</family>
                        <family>Lohit Bengali</family>
                        <family>Lohit Gujarati</family>
                        <family>Lohit Hindi</family>
                        <family>Lohit Marathi</family>
                        <family>Lohit Maithili</family>
                        <family>Lohit Kashmiri</family>
                        <family>Lohit Konkani</family>
                        <family>Lohit Nepali</family>
                        <family>Lohit Sindhi</family>
                        <family>Lohit Punjabi</family>
                        <family>Lohit Tamil</family>
                        <family>Rachana</family>
                        <family>Lohit Malayalam</family>
                        <family>Lohit Kannada</family>
                        <family>Lohit Telugu</family>
                        <family>Lohit Oriya</family>
                        <family>LKLUG</family>
                </prefer>
        </alias>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Nachlieli</family> <!-- hebrew -->
                        <family>Lucida Sans Unicode</family>
                        <family>Yudit Unicode</family>
                        <family>Kerkis</family> <!-- greek -->
                        <family>ArmNet Helvetica</family> <!-- armenian -->
                        <family>Artsounk</family> <!-- armenian -->
                        <family>BPG UTF8 M</family> <!-- georgian -->
                        <family>Waree</family> <!-- thai -->
                        <family>Loma</family> <!-- thai -->
                        <family>Garuda</family> <!-- thai -->
                        <family>Umpush</family> <!-- thai -->
                        <family>Saysettha Unicode</family> <!-- lao? -->
                        <family>JG Lao Old Arial</family> <!-- lao -->
                        <family>GF Zemen Unicode</family> <!-- ethiopic -->
                        <family>Pigiarniq</family> <!-- canadian syllabics -->
                        <family>B Davat</family> <!-- arabic (fa) -->
                        <family>B Compset</family> <!-- arabic (fa) -->
                        <family>Kacst-Qr</family> <!-- arabic (ar) -->
                        <family>Urdu Nastaliq Unicode</family> <!-- arabic (ur) -->
                        <family>Raghindi</family> <!-- devanagari -->
                        <family>Mukti Narrow</family> <!-- bengali -->
                        <family>padmaa</family> <!-- gujarati -->
                        <family>Hapax Berbère</family> <!-- tifinagh -->
                        <family>MS Gothic</family> <!-- han (ja) -->
                        <family>UmePlus P Gothic</family> <!-- han (ja) -->
                        <family>Microsoft YaHei</family> <!-- han (zh-cn,zh-tw) -->
                        <family>Microsoft JhengHei</family> <!-- han (zh-tw) -->
                        <family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
                        <family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
                        <family>AR PL ShanHeiSun Uni</family> <!--han (ja,zh-cn,zh-tw) -->
                        <family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
                        <family>MgOpen Moderna</family>
                        <family>MgOpen Modata</family>
                        <family>MgOpen Cosmetica</family>
                        <family>VL Gothic</family>
                        <family>IPAMonaGothic</family>
                        <family>IPAGothic</family>
                        <family>Sazanami Gothic</family>
                        <family>Kochi Gothic</family>
                        <family>AR PL KaitiM GB</family>
                        <family>AR PL KaitiM Big5</family>
                        <family>AR PL ShanHeiSun Uni</family>
                        <family>AR PL SungtiL GB</family>
                        <family>AR PL Mingti2L Big5</family>
                        <family>MS ゴシック</family>
                        <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
                        <family>NanumGothic</family> <!-- hangul (ko) -->
                        <family>UnDotum</family> <!-- hangul (ko) -->
                        <family>Baekmuk Dotum</family> <!-- hangul (ko) -->
                        <family>Baekmuk Gulim</family> <!-- hangul (ko) -->
                        <family>KacstQura</family>
                        <family>Lohit Bengali</family>
                        <family>Lohit Gujarati</family>
                        <family>Lohit Hindi</family>
                        <family>Lohit Marathi</family>
                        <family>Lohit Maithili</family>
                        <family>Lohit Kashmiri</family>
                        <family>Lohit Konkani</family>
                        <family>Lohit Nepali</family>
                        <family>Lohit Sindhi</family>
                        <family>Lohit Punjabi</family>
                        <family>Lohit Tamil</family>
                        <family>Meera</family>
                        <family>Lohit Malayalam</family>
                        <family>Lohit Kannada</family>
                        <family>Lohit Telugu</family>
                        <family>Lohit Oriya</family>
                        <family>LKLUG</family>
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Miriam Mono</family> <!-- hebrew -->
                        <family>VL Gothic</family>
                        <family>IPAMonaGothic</family>
                        <family>IPAGothic</family>
                        <family>Sazanami Gothic</family>
                        <family>Kochi Gothic</family>
                        <family>AR PL KaitiM GB</family>
                        <family>MS Gothic</family> <!-- han (ja) -->
                        <family>UmePlus Gothic</family> <!-- han (ja) -->
                        <family>NSimSun</family> <!-- han (zh-cn,zh-tw) -->
                        <family>MingLiu</family> <!-- han (zh-tw) -->
                        <family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
                        <family>AR PL New Sung Mono</family> <!-- han (zh-cn,zh-tw) -->
                        <family>HanyiSong</family> <!-- han (zh-cn) -->
                        <family>AR PL SungtiL GB</family>
                        <family>AR PL Mingti2L Big5</family>
                        <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
                        <family>NanumGothicCoding</family> <!-- hangul (ko) -->
                        <family>NanumGothic</family> <!-- hangul (ko) -->
                        <family>UnDotum</family> <!-- hangul (ko) -->
                        <family>Baekmuk Dotum</family> <!-- hangul (ko) -->
                        <family>Baekmuk Gulim</family> <!-- hangul (ko) -->
                        <family>TlwgTypo</family> <!-- thai -->
                        <family>TlwgTypist</family> <!-- thai -->
                        <family>TlwgTypewriter</family> <!-- thai -->
                        <family>TlwgMono</family> <!-- thai -->
                        <family>Hasida</family> <!-- hebrew -->
                        <family>Mitra Mono</family> <!-- bengali -->
                        <family>GF Zemen Unicode</family> <!-- ethiopic -->
                        <family>Hapax Berbère</family> <!-- tifinagh -->
                        <family>Lohit Bengali</family>
                        <family>Lohit Gujarati</family>
                        <family>Lohit Hindi</family>
                        <family>Lohit Marathi</family>
                        <family>Lohit Maithili</family>
                        <family>Lohit Kashmiri</family>
                        <family>Lohit Konkani</family>
                        <family>Lohit Nepali</family>
                        <family>Lohit Sindhi</family>
                        <family>Lohit Punjabi</family>
                        <family>Lohit Tamil</family>
                        <family>Meera</family>
                        <family>Lohit Malayalam</family>
                        <family>Lohit Kannada</family>
                        <family>Lohit Telugu</family>
                        <family>Lohit Oriya</family>
                        <family>LKLUG</family>
                </prefer>
        </alias>
</fontconfig>
头像
驿窗project
帖子: 226
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: debian中输入偏旁部首,候选词会显示方块

#4

帖子 驿窗project » 2022-02-23 11:41

astolia 写了: 2022-02-23 10:39 这有啥好分析的,不就是你指定的字体名称对应的候选字体中缺少那些字形么。以前又不是没教过你怎么看候选字体列表及匹配优先级
如果真的是这么简单的话,那么,YQ-YSY,能不能麻烦你把ibus候选词字体强制指定为noto serif cjk sc试一下?你之前应该没动过这个字体的设置~

如果强制字体后候选出现方块,那么应该就可以确认是astolia所说的问题了。

(候选字体列表,尤其是匹配优先级的内容,有点复杂)
头像
yq-ysy
论坛版主
帖子: 4466
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#5

帖子 yq-ysy » 2022-02-23 11:49

驿窗project 写了: 2022-02-23 11:41
astolia 写了: 2022-02-23 10:39 这有啥好分析的,不就是你指定的字体名称对应的候选字体中缺少那些字形么。以前又不是没教过你怎么看候选字体列表及匹配优先级
如果真的是这么简单的话,那么,YQ-YSY,能不能麻烦你把ibus候选词字体强制指定为noto serif cjk sc试一下?你之前应该没动过这个字体的设置~
如果强制字体后候选出现方块,那么应该就可以确认是astolia所说的问题了。
(候选字体列表,尤其是匹配优先级的内容,有点复杂)
昨天就已经试过了,不论是思源黑体还是宋体,我输入5,在Rime的候选字里,全部都能显示,但是中间有两个字体怪怪的,而且特别小。
如下图最右侧所示。(位置和你的图里第5第6的候选字一样,你缺的可能就是这个小小的字体文件。)
如果我把中间那两个怪字打到文本编辑器上,就显示为方框。
图片
——这个情况在以前都没遇到过,以前不论在Rime的候选字里、还是在文本编辑器上,大小形状都差不多。
(生僻字会调用不同字体,显示起来能看出不同,但大小差别没现在那么严重)。
我想可能是最近的系统升级,Linux的字体默认机制做了某些修改。另外,听说思源字体有升级更新的版本,不知道修改了什么?
头像
驿窗project
帖子: 226
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: debian中输入偏旁部首,候选词会显示方块

#6

帖子 驿窗project » 2022-02-23 12:56

“生僻字会调用不同字体”
也就是说,输入法候选词中的一些字形,是noto serif cjk sc中不存在的字形?
我一直以为noto serif cjk是非常完整的字体,现在看来不是~

回头我看能不能找个懂字体匹配的人,帮我写下代码~
头像
yq-ysy
论坛版主
帖子: 4466
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#7

帖子 yq-ysy » 2022-02-23 13:09

驿窗project 写了: 2022-02-23 12:56 “生僻字会调用不同字体”
也就是说,输入法候选词中的一些字形,是noto serif cjk sc中不存在的字形?
我一直以为noto serif cjk是非常完整的字体,现在看来不是~

回头我看能不能找个懂字体匹配的人,帮我写下代码~
是的,已知的汉字有近8万,目前已公开的字体没有一个能完全包含的。
尽管如此,noto思源字体也已经是能支持汉字数量最多的字体了,接近3万个了。
之前我听说,好像是“国家的语言文字工作管理委员会”吧,他们的专家是有一个专用字体包含有8万汉字的。
不过,这个包含8万汉字的字体,即使能拿到也没有用,因为GB18030字符集也没有能收录全这8万汉字,我拿到手的版本是70377个汉字。
普通老百姓也就只用3千汉字,作家、编剧、记者、这类文字工作者用思源字体3万也足够了。考古工作者,古汉语学家,才用8万。
头像
astolia
论坛版主
帖子: 6514
注册时间: 2008-09-18 13:11

Re: debian中输入偏旁部首,候选词会显示方块

#8

帖子 astolia » 2022-02-23 16:43

驿窗project 写了: 2022-02-23 11:41 如果真的是这么简单的话
本来就这么简单,你没搞过gui程序开发才想得太复杂。程序里一般都是直接设置文本,具体显示扔给图形库去处理,图形库又扔给字体库去选字,一般最终会到fontconfig库手上。所以这类问题直接找fontconfig十有八九错不了
驿窗project 写了: 2022-02-23 11:41 如果强制字体后候选出现方块,那么应该就可以确认是astolia所说的问题了。
我不知道你这个结论是怎么得出来的。你们两个的系统上安装了的字体都不一定一样
yq-ysy 写了: 2022-02-23 11:49 昨天就已经试过了,不论是思源黑体还是宋体,我输入5,在Rime的候选字里,全部都能显示,但是中间有两个字体怪怪的,而且特别小。
如下图最右侧所示。(位置和你的图里第5第6的候选字一样,你缺的可能就是这个小小的字体文件。)
如果我把中间那两个怪字打到文本编辑器上,就显示为方框。
图片
——这个情况在以前都没遇到过,以前不论在Rime的候选字里、还是在文本编辑器上,大小形状都差不多。
(生僻字会调用不同字体,显示起来能看出不同,但大小差别没现在那么严重)。
我想可能是最近的系统升级,Linux的字体默认机制做了某些修改。另外,听说思源字体有升级更新的版本,不知道修改了什么?
如果说中间两个字的话,可不是什么生僻字的问题,可以算是你做的码表的问题。one_hand.text.dict.yaml里面大量字符的unicode编码是在私人使用区里面。私人使用区这东西,就是unicode规范不做规定,字体可以随意映射到任意字形上。所以只有安装了对应的字体才能显示正确的字形。楼主遇到的情况是,他系统上没有任何字体提供了对应的字形;而你图上的情况是,虽然系统中有字体提供了对应的字形,但却不是原本的字体,所以显示的字形不一样。
经测试需要用windows上的宋体才能显示出正确的字形。
驿窗project 写了: 2022-02-23 9:09 在后来在与一善鱼沟通验证的过程中,我除了使用debian11+gnome,也测试了debian11+xfce,发现在使用fcitx-wbpy或者fcitx-rime-wbpy或者ibus-rime-wbpy输入gggg的时候,都会显示一个方块,所以,我大概能够确认,这个方块产生的原因,应该与输入法本身无关,而是与输入法以外的其它东西有关;我能想到的,只有系统。
gggg这个同理,也是用到了私人使用区的编码,需要windows上的宋体

一个获取字符unicode编码的简单方法是用bash的printf功能,比如用以下命令来显示顶楼图中的第4和第5个候选项的unicode编码

代码: 全选

$ printf '%x\n' \'乚 
4e5a
$ printf '%x\n' \'
e818
e818就在三个私人使用区之一的E000~F8FF里面了

也可以和fc-list结合起来看有哪些字体支持这个unicode编码

代码: 全选

$ printf '%x\n' \'乚  | xargs -I% fc-list :charset=%
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK JP:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK HK:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK HK:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK KR:style=Regular
/usr/share/fonts/truetype/wqy/wqy-microhei.ttc: WenQuanYi Micro Hei,文泉驛微米黑,文泉驿微米黑:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK TC:style=Regular
/home/a/.local/share/fonts/mingliu.ttc: MingLiU,細明體:style=Regular
/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑:style=Regular
/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei Sharp,文泉驛點陣正黑,文泉驿点阵正黑:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK TC:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK KR:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK HK:style=Regular
/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf: Droid Sans Fallback:style=Regular
/home/a/.local/share/fonts/simhei.ttf: SimHei,黑体:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/home/a/.local/share/fonts/mingliu.ttc: PMingLiU,新細明體:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK HK:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK JP:style=Bold
/home/a/.local/share/fonts/simsun.ttc: SimSun,宋体:style=Regular
/home/a/.local/share/fonts/mingliu.ttc: MingLiU_HKSCS,細明體_HKSCS:style=Regular
/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei Mono,文泉驛等寬正黑,文泉驿等宽正黑:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK SC:style=Regular
/usr/share/fonts/truetype/wqy/wqy-microhei.ttc: WenQuanYi Micro Hei Mono,文泉驛等寬微米黑,文泉驿等宽微米黑:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK TC:style=Regular
/home/a/.local/share/fonts/simsun.ttc: NSimSun,新宋体:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK HK:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK KR:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK JP:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK HK:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK SC:style=Bold

$ printf '%x\n' \' | xargs -I% fc-list :charset=%
/home/a/.local/share/fonts/simhei.ttf: SimHei,黑体:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/home/a/.local/share/fonts/simsun.ttc: SimSun,宋体:style=Regular
/home/a/.local/share/fonts/mingliu.ttc: MingLiU_HKSCS,細明體_HKSCS:style=Regular
/home/a/.local/share/fonts/simsun.ttc: NSimSun,新宋体:style=Regular
头像
astolia
论坛版主
帖子: 6514
注册时间: 2008-09-18 13:11

Re: debian中输入偏旁部首,候选词会显示方块

#9

帖子 astolia » 2022-02-23 17:21

yq-ysy 写了: 2022-02-23 10:48 我搜索了一下“Linux字体匹配优先级”,找到一篇2013年的帖子,试了一下他说的命令:
more /etc/fonts/conf.d/65-nonlatin.conf
中文字体我只能从中看出 AR PL,还有SimSun,wenquanyi等,没见noto字样。
我说的是用fc-match列出的某个字体名称与字体匹配列表,比如

代码: 全选

fc-match -s 宋体
就会列出当你指定字体名称为宋体时,实际候选的字体列表。

你的这个只是fontconfig的配置文件之一,会影响到部分名称的最终的候选列表,但不是候选列表本身
头像
yq-ysy
论坛版主
帖子: 4466
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#10

帖子 yq-ysy » 2022-02-23 18:55

astolia 写了: 2022-02-23 16:43 如果说中间两个字的话,可不是什么生僻字的问题,可以算是你做的码表的问题。one_hand.text.dict.yaml里面大量字符的unicode编码是在私人使用区里面。私人使用区这东西,就是unicode规范不做规定,字体可以随意映射到任意字形上。所以只有安装了对应的字体才能显示正确的字形。楼主遇到的情况是,他系统上没有任何字体提供了对应的字形;而你图上的情况是,虽然系统中有字体提供了对应的字形,但却不是原本的字体,所以显示的字形不一样。
经测试需要用windows上的宋体才能显示出正确的字形。
win10下输入5.jpg
输入5的两个字符.jpg
https://github.com/YQ-YSY/stroke-seq_MB 这是我编写的“单手笔顺输入法码表”开源网址,在Readme里就已经说到:
由于Unicode编码包含大量日韩使用的、与汉字字型笔画完全相同的文字(即同一个字重复出现两次),极易造成混淆,故不以此为标准。

所以,我是严格遵循GB国家标准来编写这个码表的,可以在上面的网址下载“单字笔顺.ods”文件,用LibreOffice的Calc电子表格打开查看。
中国汉字的GB国家标准:GBK 已包含了 GB2312; GB13000 已包含了 GBK; GB18030 已包含了 GB13000。
汉字有GB编码的我才会录入码表。只有unicode编码却没有GB编码的,我是不会录入的。
GB18030目前收录了70376个汉字,但思源字体尚未支持全部70376个汉字。

我编写“单手笔顺输入法码表”时,在Ubuntu Linux 下使用思源字体,即 Noto Sans CJK SC ,仅能显示29685个汉字,
其中位于GB13000及其扩充A区的汉字有27665个,在Linux全部都能正常显示。
其余的那一部分GB18030汉字在Linux下大多数无法显示,有一小部分能显示的汉字我已经都标注为“1”并且录入输入法码表,共计2152个。
7万汉字已全部可见.jpg
今天我在Ubuntu Linux下想打开“单字笔顺.ods”文件,却提示XML有错误,无法打开,可能是LibreOffice的软件升级造成的软件Bug。
于是我转到Windows10下使用LibreOffice,电子表格Calc能正常打开“单字笔顺.ods”文件——惊喜发现,能显示全部70376个汉字!
哈哈,看来我可以继续录入“单手笔顺输入法码表”,让全部70376个汉字都能用“单手笔顺输入法”(在windoows下)输入并显示了。

原本设定的字体无法显示某些生僻汉字,在字体栏中的字体名称会以“斜体”警示,然后LibreOffice在Win10下会调用其他的字体替换显示。
经测试,在Win10下,将原本Linux无法显示的汉字复制粘贴到“记事本”里,也能正常显示。
“记事本”使用的字体是:微软雅黑 Microsoft YaHei UI 。可惜,这是一个商业字体,不是开源字体,也不是免费字体。

也就是说,一楼你可以试试在Linux下设置Ibus使用“微软雅黑”字体,应该就能显示候选框里的所有汉字和笔画了。
不过要注意,“微软雅黑”字体不能用在商业项目上,以免被控“盗版侵权”。
同样,如果我用“微软雅黑”这个商业字体,那么我就可以为我的“单手笔顺输入法”录入全部70376个汉字的编码。
工作量好大……还有很多其他事情要做……即使录入了在Linux下也无法显示……除非使用“微软雅黑”字体,但这是侵权的行为……唉。

更新:经过进一步的测试,能显示生僻汉字的,是windows调用的另一个字体 simsunb.ttf 。
详情请见18楼: viewtopic.php?p=3229573#p3229573
头像
yq-ysy
论坛版主
帖子: 4466
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#11

帖子 yq-ysy » 2022-02-23 19:05

我运行 fc-match -s noto 或者运行 fc-match -s "Noto Sans CJK SC" 的结果一模一样,如下:

代码: 全选

NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular"
NotoSans-Regular.ttf: "Noto Sans" "Regular"
NotoSansArabic-Regular.ttf: "Noto Sans Arabic" "Regular"
NotoSansThai-Regular.ttf: "Noto Sans Thai" "Regular"
NotoSansDevanagari-Regular.ttf: "Noto Sans Devanagari" "Regular"
NotoSansTamil-Regular.ttf: "Noto Sans Tamil" "Regular"
NotoSansHebrew-Regular.ttf: "Noto Sans Hebrew" "Regular"
NotoSansBengali-Regular.ttf: "Noto Sans Bengali" "Regular"
NotoSansTelugu-Regular.ttf: "Noto Sans Telugu" "Regular"
NotoSansKannada-Regular.ttf: "Noto Sans Kannada" "Regular"
NotoSansMalayalam-Regular.ttf: "Noto Sans Malayalam" "Regular"
NotoSansGurmukhi-Regular.ttf: "Noto Sans Gurmukhi" "Regular"
NotoSansGujarati-Regular.ttf: "Noto Sans Gujarati" "Regular"
NotoSansOriya-Regular.ttf: "Noto Sans Oriya" "Regular"
NotoSansArmenian-Regular.ttf: "Noto Sans Armenian" "Regular"
NotoSansGeorgian-Regular.ttf: "Noto Sans Georgian" "Regular"
NotoSansKhmer-Regular.ttf: "Noto Sans Khmer" "Regular"
NotoSansLao-Regular.ttf: "Noto Sans Lao" "Regular"
NotoSansEthiopic-Regular.ttf: "Noto Sans Ethiopic" "Regular"
NotoSansMyanmar-Regular.ttf: "Noto Sans Myanmar" "Regular"
NotoSansSinhala-Regular.ttf: "Noto Sans Sinhala" "Regular"
NotoSansCoptic-Regular.ttf: "Noto Sans Coptic" "Regular"
NotoSansDeseret-Regular.ttf: "Noto Sans Deseret" "Regular"
NotoSansTaiTham-Regular.ttf: "Noto Sans Tai Tham" "Regular"
NotoSansCanadianAboriginal-Regular.ttf: "Noto Sans Canadian Aboriginal" "Regular"
NotoSansYi-Regular.ttf: "Noto Sans Yi" "Regular"
NotoSansTifinagh-Regular.ttf: "Noto Sans Tifinagh" "Regular"
NotoSansAdlam-Regular.ttf: "Noto Sans Adlam" "Regular"
NotoSansCherokee-Regular.ttf: "Noto Sans Cherokee" "Regular"
NotoSansChakma-Regular.ttf: "Noto Sans Chakma" "Regular"
NotoSansOsage-Regular.ttf: "Noto Sans Osage" "Regular"
NotoColorEmoji.ttf: "Noto Color Emoji" "Regular"
NotoSansSymbols-Regular.ttf: "Noto Sans Symbols" "Regular"
NotoSansSymbols2-Regular.ttf: "Noto Sans Symbols2" "Regular"
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
DejaVuSans-Oblique.ttf: "DejaVu Sans" "Oblique"
DejaVuSans-BoldOblique.ttf: "DejaVu Sans" "Bold Oblique"
luxisr.ttf: "Luxi Sans" "Regular"
l048013t.pfa: "Luxi Sans" "Regular"
n019003l.pfb: "Nimbus Sans L" "Regular"
NimbusSans-Regular.otf: "Nimbus Sans" "Regular"
Loma.ttf: "Loma" "Regular"
Waree.ttf: "Waree" "Regular"
Umpush-Bold.ttf: "Umpush" "Bold"
Laksaman.ttf: "Laksaman" "Regular"
KhmerOS.ttf: "Khmer OS" "Regular"
padmaa-Medium-0.5.ttf: "padmaa" "regular"
padmaa-Bold.1.1.ttf: "padmaa-Bold.1.1" "Bold.1.1"
Lohit-Gujarati.ttf: "Lohit Gujarati" "Regular"
Meera-Regular.ttf: "Meera" "Regular"
FreeSans.ttf: "FreeSans" "Regular"
FreeMono.ttf: "FreeMono" "Regular"
FreeSerif.ttf: "FreeSerif" "Regular"
opens___.ttf: "OpenSymbol" "Regular"
agave-r-autohinted.ttf: "Agave" "Regular"
Aegean_hint.ttf: "Aegean" "Regular"
Cretan_hint.ttf: "Cretan Hieroglyphs" "Regular"
CyproMinoan_hint.ttf: "Cypro-Minoan" "Regular"
BPG_Glaho_GPL&GNU.ttf: "BPG Glaho GPL&GNU" "Regular"
Alexander_hint.ttf: "Alexander" "Regular"
AegyptusR_hint.ttf: "Aegyptus" "Regular"
Norasi.ttf: "Norasi" "Regular"
LinLibertine_R.otf: "Linux Libertine O" "Regular"
Analecta_hint.ttf: "Analecta" "Regular"
Anatolian_hint.ttf: "Anatolian" "Regular"
LinLibertine_DR.otf: "Linux Libertine Display O" "Regular"
LinLibertine_M.otf: "Linux Libertine Mono O" "Mono"
Andika-R.ttf: "Andika" "Regular"
Maya_hint.ttf: "Maya" "Regular"
Purisa.ttf: "Purisa" "Regular"
BPG_Courier_GPL&GNU.ttf: "BPG Courier GPL&GNU" "Regular"
Padauk-Regular.ttf: "Padauk" "Regular"
Musica_hint.ttf: "Musica" "Regular"
Sawasdee.ttf: "Sawasdee" "Regular"
Hack-Regular.ttf: "Hack" "Regular"
NotoSansWarangCiti-Regular.ttf: "Noto Sans Warang Citi" "Regular"
DejaVuMathTeXGyre.ttf: "DejaVu Math TeX Gyre" "Regular"
DejaVuSerif.ttf: "DejaVu Serif" "Book"
RobotoCondensed-Regular.ttf: "Roboto Condensed" "Regular"
NotoSansHanifiRohingya-Regular.ttf: "Noto Sans Hanifi Rohingya" "Regular"
NotoSansSoraSompeng-Regular.ttf: "Noto Sans Sora Sompeng" "Regular"
BPG_Serif_Modern_GPL&GNU.ttf: "BPG Serif Modern GPL&GNU" "Regular"
Inter-Regular.otf: "Inter" "Regular"
ManchuFont.ttf: "Manchu" "Regular"
AccanthisADFStd-Regular.otf: "Accanthis ADF Std" "Regular"
lmmono10-regular.otf: "Latin Modern Mono" "10 Regular"
lmmonoprop10-regular.otf: "Latin Modern Mono Prop" "10 Regular"
lmsansquot8-regular.otf: "Latin Modern Sans Quotation" "8 Regular"
NotoSansNewa-Regular.ttf: "Noto Sans Newa" "Regular"
NotoSerifAhom-Regular.ttf: "Noto Serif Ahom" "Regular"
NotoSansBalinese-Regular.ttf: "Noto Sans Balinese" "Regular"
NotoSansMarchen-Regular.ttf: "Noto Sans Marchen" "Regular"
NotoSansOlChiki-Regular.ttf: "Noto Sans Ol Chiki" "Regular"
NotoSansOldHungarian-Regular.ttf: "Noto Sans Old Hungarian" "Regular"
NotoSansSharada-Regular.ttf: "Noto Sans Sharada" "Regular"
NotoSansTakri-Regular.ttf: "Noto Sans Takri" "Regular"
NotoSansZanabazarSquare-Regular.ttf: "Noto Sans Zanabazar Square" "Regular"
Rasa-Regular.ttf: "Rasa" "Regular"
NotoSansAvestan-Regular.ttf: "Noto Sans Avestan" "Regular"
NotoSansBhaiksuki-Regular.ttf: "Noto Sans Bhaiksuki" "Regular"
NotoSansBrahmi-Regular.ttf: "Noto Sans Brahmi" "Regular"
NotoSansCaucasianAlbanian-Regular.ttf: "Noto Sans Caucasian Albanian" "Regular"
NotoSansGrantha-Regular.ttf: "Noto Sans Grantha" "Regular"
NotoSansKaithi-Regular.ttf: "Noto Sans Kaithi" "Regular"
NotoSansKharoshthi-Regular.ttf: "Noto Sans Kharoshthi" "Regular"
NotoSansKhojki-Regular.ttf: "Noto Sans Khojki" "Regular"
NotoSansMandaic-Regular.ttf: "Noto Sans Mandaic" "Regular"
NotoSansMath-Regular.ttf: "Noto Sans Math" "Regular"
NotoSansMeeteiMayek-Regular.ttf: "Noto Sans Meetei Mayek" "Regular"
NotoSansMiao-Regular.ttf: "Noto Sans Miao" "Regular"
NotoSansMongolian-Regular.ttf: "Noto Sans Mongolian" "Regular"
NotoSansNKo-Regular.ttf: "Noto Sans NKo" "Regular"
NotoSansNewTaiLue-Regular.ttf: "Noto Sans New Tai Lue" "Regular"
NotoSansSiddham-Regular.ttf: "Noto Sans Siddham" "Regular"
NotoSansSignWriting-Regular.ttf: "Noto Sans SignWriting" "Regular"
NotoSansSundanese-Regular.ttf: "Noto Sans Sundanese" "Regular"
NotoSansSylotiNagri-Regular.ttf: "Noto Sans Syloti Nagri" "Regular"
NotoSansTirhuta-Regular.ttf: "Noto Sans Tirhuta" "Regular"
NotoSerifTangut-Regular.ttf: "Noto Serif Tangut" "Regular"
NotoSerifTibetan-Regular.ttf: "Noto Serif Tibetan" "Regular"
forgotte.ttf: "Forgotten Futurist" "Regular"
AbyssinicaSIL-Regular.ttf: "Abyssinica SIL" "Regular"
BABELreg.ttf: "BABEL Unicode" "Regular"
NotoSansBamum-Regular.ttf: "Noto Sans Bamum" "Regular"
NotoSansBassaVah-Regular.ttf: "Noto Sans Bassa Vah" "Regular"
NotoSansBatak-Regular.ttf: "Noto Sans Batak" "Regular"
NotoSansBuginese-Regular.ttf: "Noto Sans Buginese" "Regular"
NotoSansBuhid-Regular.ttf: "Noto Sans Buhid" "Regular"
NotoSansCham-Regular.ttf: "Noto Sans Cham" "Regular"
NotoSansCuneiform-Regular.ttf: "Noto Sans Cuneiform" "Regular"
NotoSansDuployan-Regular.ttf: "Noto Sans Duployan" "Regular"
NotoSansElbasan-Regular.ttf: "Noto Sans Elbasan" "Regular"
NotoSansGlagolitic-Regular.ttf: "Noto Sans Glagolitic" "Regular"
NotoSansHatran-Regular.ttf: "Noto Sans Hatran" "Regular"
NotoSansImperialAramaic-Regular.ttf: "Noto Sans Imperial Aramaic" "Regular"
NotoSansIndicSiyaqNumbers-Regular.ttf: "Noto Sans Indic Siyaq Numbers" "Regular"
NotoSansInscriptionalPahlavi-Regular.ttf: "Noto Sans Inscriptional Pahlavi" "Regular"
NotoSansInscriptionalParthian-Regular.ttf: "Noto Sans Inscriptional Parthian" "Regular"
NotoSansJavanese-Regular.ttf: "Noto Sans Javanese" "Regular"
NotoSansKhudawadi-Regular.ttf: "Noto Sans Khudawadi" "Regular"
NotoSansLepcha-Regular.ttf: "Noto Sans Lepcha" "Regular"
NotoSansLimbu-Regular.ttf: "Noto Sans Limbu" "Regular"
NotoSansMahajani-Regular.ttf: "Noto Sans Mahajani" "Regular"
NotoSansManichaean-Regular.ttf: "Noto Sans Manichaean" "Regular"
NotoSansMendeKikakui-Regular.ttf: "Noto Sans Mende Kikakui" "Regular"
NotoSansMeroitic-Regular.ttf: "Noto Sans Meroitic" "Regular"
NotoSansModi-Regular.ttf: "Noto Sans Modi" "Regular"
NotoSansMro-Regular.ttf: "Noto Sans Mro" "Regular"
NotoSansMultani-Regular.ttf: "Noto Sans Multani" "Regular"
NotoSansNabataean-Regular.ttf: "Noto Sans Nabataean" "Regular"
NotoSansOldNorthArabian-Regular.ttf: "Noto Sans Old North Arabian" "Regular"
NotoSansOldPermic-Regular.ttf: "Noto Sans Old Permic" "Regular"
NotoSansOldSogdian-Regular.ttf: "Noto Sans Old Sogdian" "Regular"
NotoSansOldSouthArabian-Regular.ttf: "Noto Sans Old South Arabian" "Regular"
NotoSansOldTurkic-Regular.ttf: "Noto Sans Old Turkic" "Regular"
NotoSansPahawhHmong-Regular.ttf: "Noto Sans Pahawh Hmong" "Regular"
NotoSansPalmyrene-Regular.ttf: "Noto Sans Palmyrene" "Regular"
NotoSansPauCinHau-Regular.ttf: "Noto Sans Pau Cin Hau" "Regular"
NotoSansPhagsPa-Regular.ttf: "Noto Sans PhagsPa" "Regular"
NotoSansPsalterPahlavi-Regular.ttf: "Noto Sans Psalter Pahlavi" "Regular"
NotoSansRejang-Regular.ttf: "Noto Sans Rejang" "Regular"
NotoSansRunic-Regular.ttf: "Noto Sans Runic" "Regular"
NotoSansSamaritan-Regular.ttf: "Noto Sans Samaritan" "Regular"
NotoSansSaurashtra-Regular.ttf: "Noto Sans Saurashtra" "Regular"
NotoSansShavian-Regular.ttf: "Noto Sans Shavian" "Regular"
NotoSansSogdian-Regular.ttf: "Noto Sans Sogdian" "Regular"
NotoSansSoyombo-Regular.ttf: "Noto Sans Soyombo" "Regular"
NotoSansTagalog-Regular.ttf: "Noto Sans Tagalog" "Regular"
NotoSansTagbanwa-Regular.ttf: "Noto Sans Tagbanwa" "Regular"
NotoSansTaiViet-Regular.ttf: "Noto Sans Tai Viet" "Regular"
NotoSansWancho-Regular.ttf: "Noto Sans Wancho" "Regular"
TibetanMachineUni.ttf: "Tibetan Machine Uni" "Regular"
Pothana2000.ttf: "Pothana2000" "Regular"
AbydosR_hint.ttf: "Abydos" "Regular"
chandas1-2.ttf: "Chandas" "Regular"
LinBiolinum_R.otf: "Linux Biolinum O" "Regular"
Gentium-R.ttf: "Gentium" "Regular"
BaskervaldADFStd.otf: "Baskervald ADF Std" "Regular"
Alfios_R.otf: "Alfios" "Regular"
Atavyros.otf: "Atavyros" "Regular"
RomandeADFNo2Std-Regular.otf: "Romande ADF No2 Std" "Regular"
UniversalisADFStd-Regular.otf: "Universalis ADF Std" "Regular"
summersby.ttf: "Summersby" "Regular"
LibrisADFStd-Regular.otf: "Libris ADF Std" "Regular"
BerenisADFPro-Regular.otf: "Berenis ADF Pro" "Regular"
SwitzeraADF-Ext.otf: "Switzera ADF" "Extended"
NotoSansMasaramGondi-Regular.ttf: "Noto Sans Masaram Gondi" "Regular"
NotoSerifDogra-Regular.ttf: "Noto Serif Dogra" "Regular"
mry_KacstQurn.ttf: "mry_KacstQurn" "Regular"
FoulisGreek.ttf: "FoulisGreek" "Regular"
Junicode.ttf: "Junicode" "Regular"
wasy10.ttf: "wasy10" "LyX"
NotoSansGunjalaGondi-Regular.ttf: "Noto Sans Gunjala Gondi" "Regular"
NotoSansNushu-Regular.ttf: "Noto Sans Nushu" "Regular"
NotoSansMedefaidrin-Regular.ttf: "Noto Sans Medefaidrin" "Regular"
NotoSansTamilSupplement-Regular.ttf: "Noto Sans Tamil Supplement" "Regular"
SyrCOMKharput.otf: "Serto Kharput" "Regular"
CaslonRoman.ttf: "Caslon" "Roman"
Phetsarath_OT.ttf: "Phetsarath OT" "Phetsarath OT"
ellenike.ttf: "Ellhnikh" "Regular"
NotoLoopedLao-Regular.ttf: "Noto Looped Lao" "Regular"
NotoLoopedThai-Regular.ttf: "Noto Looped Thai" "Regular"
NotoSansElymaic-Regular.ttf: "Noto Sans Elymaic" "Regular"
NotoSerifNyiakengPuachueHmong-Regular.ttf: "Noto Serif Hmong Nyiakeng" "Regular"
NotoSerifYezidi-Regular.ttf: "Noto Serif Yezidi" "Regular"
LakkiReddy.ttf: "LakkiReddy" "Regular"
Ubuntu-C.ttf: "Ubuntu Condensed" "Regular"
Ubuntu-R.ttf: "Ubuntu" "Regular"
s050000l.pfb: "Standard Symbols L" "Regular"
cour.pfa: "Courier" "Regular"
Unidings_hint.ttf: "Unidings" "Regular"
Nilus_hint.ttf: "Nilus" "Regular"
Assyrian_hint.ttf: "Assyrian" "Regular"
unifont.ttf: "Unifont" "Regular"
unifont_csur.ttf: "Unifont CSUR" "Regular"
unifont_upper.ttf: "Unifont Upper" "Regular"
Tuffy.ttf: "Tuffy" "Regular"
Samyak-Devanagari.ttf: "Samyak Devanagari" "Regular"
GWMonospace.ttf: "GWMonospace" "Medium"
BPG_Nateli_Caps_GPL&GNU.ttf: "BPG Nateli Caps GPL&GNU" "Regular"
LinLibertine_RZ.otf: "Linux Libertine O" "Semibold"
LinBiolinum_RB.otf: "Linux Biolinum O" "Bold"
LinLibertine_RI.otf: "Linux Libertine O" "Italic"
LiberationSerif-Italic.ttf: "Liberation Serif" "Italic"
unrespon.ttf: "Unresponsive BRK" "Regular"
头像
驿窗project
帖子: 226
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: debian中输入偏旁部首,候选词会显示方块

#12

帖子 驿窗project » 2022-02-23 22:47

我测试了一下,从win7拷贝过来的宋体regular,还有下载的msYaHei,指定为Debian11+gnome的输入法候选词字体后,都会显示方块,下面是两个字体的截图:
aa.png
ab.png
头像
yq-ysy
论坛版主
帖子: 4466
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#13

帖子 yq-ysy » 2022-02-23 23:19

驿窗project 写了: 2022-02-23 22:47 我测试了一下,从win7拷贝过来的宋体regular,还有下载的msYaHei,指定为Debian11+gnome的输入法候选词字体后,都会显示方块,下面是两个字体的截图:aa.png ab.png
你的这两个图,对比更早的图,5和6反而是能正常显示了,哈哈。

刚才我也把win10的“微软雅黑”字体文件msyh.ttc安装到我Ubuntu Linux系统里,
在Ibus的设置里能调用“微软雅黑”字体,虽然看到候选字显示的文字形状也变了,但是你更早的图5和6那两个方块,在我这里也依然是乱码。
然后我试着在LibreOffice Writer和Kwrite以及FireFox里输入这两个字,也是显示的乱码(不是正确那两个笔画)。
这就有点糊涂了——难道在windows的“记事本”里,能让生僻汉字显示出来的不是“微软雅黑”字体?“记事本”也自动后台调用其设置以外的字体?

还有另外一种可能性,就是Linux系统对ttc后缀名的字体支持不大兼容,所以Linux对我从Win10复制过来的字体文件msyh.ttc识别不足。
我在网上搜索下载msyh.ttf和msyh.otf字体文件,安装到Ubuntu Linux里,依然是5和6显示为乱码,但其中一个形状有变化。
但是这个网上下载的msyh.ttf文件大小只有14.3M,文件的修改时间是2006年9月25日;
同样在网上下载的MSYH.otf文件大小只有15.5M,文件的修改时间是2019年3月29日;
而我Win10复制过来的msyh.ttc文件大小有18.7M,文件的修改时间是2019年12月7日。也许多出来的这3~4M数据,就是新增的3万汉字?

更新:经过进一步的测试,能显示生僻汉字的,是windows调用的另一个字体 simsunb.ttf 。
详情请见:viewtopic.php?p=3229573#p3229573
头像
Ping-Wu
帖子: 1822
注册时间: 2012-11-14 9:34
系统: Debian 12

Re: debian中输入偏旁部首,候选词会显示方块

#14

帖子 Ping-Wu » 2022-02-24 2:00

Noto Sans/Serif CJK SC 只有 3499 个中文字,可能不包括所有的偏旁部首。印象中它有收集 “阝”(U+861D),“冖”(U+5386)等,其他就不知道了(请见下帖)。

要了解为什么 Debian 里在中文(zh-cn)环境下输入某些偏旁部首时候选词会显示方块,可以去调阅 /etc/fonts/conf.d/70-fonts-noto-cjk.conf 这个 fontconfig 建构档案,而且这个档案夹里,后面没有可以再(overriding)修改中文输入的结构档(更高的数字)。Ubuntu 不知道做了什么事(或者忽略了什么事),在中文环境下可以输入偏旁部首,但可能也造成了某些地方中文乱码的问题。我个人对 Ubuntu 已完全没有兴趣,对 fontconfig,如我在另帖提到,则功力不够不敢碰。只是浪费时间,而且不知道修改后会造成什么后果。

我在 Debian 12 里,使用 ibus-libpinyin 输入 “冖” 没有问题,候选词里也不会出现方块:
Screenshot from 2022-02-23 12-41-48.jpg
不过如我在另帖提到,我的系统已间接取消了 fontconfig 的功能。是不是有影响,实在没有这份闲功夫去探索。
头像
Ping-Wu
帖子: 1822
注册时间: 2012-11-14 9:34
系统: Debian 12

Re: debian中输入偏旁部首,候选词会显示方块

#15

帖子 Ping-Wu » 2022-02-24 8:06

在我的 Debian 12 系统里,从下面的偏旁部首里,用 ibus-libpinyin 随意(randomly)的选择输入完全没有问题,候选词栏也不会出现方块:

丨 亅 丿 乛 一 乙 乚 丶

八 勹 匕 冫 卜 厂 刀 刂 儿 二 匚 阝 丷 几 卩 冂 力 冖 凵 人 亻 入 十 厶 亠 匸 讠 廴 又

艹 屮 彳 巛 川 辶 寸 大 飞 干 工 弓 廾 广 己 彐 彑 巾 口 马 门 宀 女 犭 山 彡 尸 饣 士 扌 氵 纟 巳 土 囗 兀 夕 小 忄 幺 弋 尢 夂 子

贝 比 灬 长 车 歹 斗 厄 方 风 父 戈 卝 户 火 旡 见 斤 耂 毛 木 肀 牛 牜 爿 片 攴 攵 气 欠 犬 日 氏 礻 手 殳 水 瓦 尣 王 韦 文 毋 心 牙 爻 曰 月 爫 支 止 爪

白 癶 歺 甘 瓜 禾 钅 立 龙 矛 皿 母 目 疒 鸟 皮 生 石 矢 示 罒 田 玄 囗 疋 业 衤 用 玉

耒 艸 臣 虫 而 耳 缶 艮 虍 臼 米 齐 肉 色 舌 覀 页 先 行 血 羊 聿 至 舟 衣 竹 自 羽 糸 糹

貝 采 镸 車 辰 赤 辵 豆 谷 見 角 克 里 卤 麦 身 豕 辛 言 邑 酉 豸 走 足

青 靑 雨 齿 長 非 阜 金 釒 隶 門 靣 飠 鱼 隹

風 革 骨 鬼 韭 面 首 韋 香 頁 音

髟 鬯 鬥 高 鬲 馬

黄 鹵 鹿 麻 麥 鳥 魚

鼎 黑 黽 黍 黹

鼓 鼠

鼻 齊

齒 龍 龠
回复