阅读:4555回复:11

关于输出字体显示字体问题

楼主#
更多 发布于:2022-11-08 17:25
请教周大对于配置文件中和皮肤中的font参数支不支持字体映射,比如我有个字体叫firacode但它只有英文和一些特殊符号,不支持中文,现在我想使用这些英文符号作为候选窗口编码的显示字体, 而汉字用“微软雅黑”来显示。我上网查了下可以用windows“字体映射”,意思就是当默认字体中没有显示的字体时,会自动根据注册表中“映射”的设置调用雅黑字。我这样搞了下,但候选出来的是似乎是宋体,我也没在哪里设置过宋体字啊,按理应该出“微软雅黑”才对啊。上面方法在win自带的记事本中测试能正确显示文字,但在小小中[input]->font似乎只支持设置为正常的字体比如“微软雅黑”。是不是这样呢?有没有方法实现这样的功能呢?
我这样做的目的其实是想实现部分非常用字显示问题,如果上面操作能行,就可以实现一般常用字用黑体显示,而有些大字集的字显示不出来时,安装一个大字集字体并映射到某个字体中去解决显示问题。(因为一般字也用大字集字体去显示不太好看)
图1:font设置及注册表映射

图片:字体.png

图片:注册表映射.png





图2:测试结果对比情况,左边显示为宋体(不成功),右边是正常“微软雅黑”字

图片:测试情况.png

图片:正常雅黑.png





图3:在win记事本中测试映射情况

图片:记事本1.png

图片:记事本2.png







另外,想问一下font参数是几个,带空格的名称该怎么写。如果一个字体的名字是 “Fira Code Retina”,本身就带了一些空格,而我同时又想扩大下字体,就写font=Fira Code Retina 16,这样行不行?,这么多空格,测试了下似乎不行。目前font支持中文倒挺好的,可以设置font=微软雅黑 16,最多加粗的时候加个bold,如font=微软雅黑 bold 16,但似乎空格区分参数也不超过2个啊,如果字体名称本身就有几个空格,这样的字体名称也直接写吗?
沙发#
发布于:2022-11-08 17:36
应该是支持多个空格的,最新测试版的话。

字体映射是什么我不懂,我直接用的windows api,CreateFont实现的,它支持我就支持,它不支持我也不支持。
板凳#
发布于:2022-11-08 19:06
dgod:应该是支持多个空格的,最新测试版的话。

字体映射是什么我不懂,我直接用的windows api,CreateFont实现的,它支持我就支持,它不支持我也不支持。
回到原帖
有没有什么方法让一般字与cjk大字集以不同字体显示呢,不想让大字集显示成方块
地板#
发布于:2022-11-08 19:09
zrjojo:有没有什么方法让一般字与cjk大字集以不同字体显示呢,不想让大字集显示成方块回到原帖
不清楚,输入法不会特意去处理这个。你说的映射应该可以实现把部分uncode编码区域对应到某个字体上。
4楼#
发布于:2022-11-08 19:18
dgod:不清楚,输入法不会特意去处理这个。你说的映射应该可以实现把部分uncode编码区域对应到某个字体上。回到原帖
如果配置和皮肤中不设字体,输入法是不是默认使用宋体字?
5楼#
发布于:2022-11-08 19:47
zrjojo:如果配置和皮肤中不设字体,输入法是不是默认使用宋体字?回到原帖
是的宋体 12
6楼#
发布于:2022-12-10 15:19
搭车求助,font=设置可以设多个字体么?优先英文字体,缺字再fallback到下一个字体,比如font=DejaVu Sans Mono 10, SimSun 12
7楼#
发布于:2022-12-10 17:14
laolang_cool:搭车求助,font=设置可以设多个字体么?优先英文字体,缺字再fallback到下一个字体,比如font=DejaVu Sans Mono 10, SimSun 12回到原帖
输入法不支持
8楼#
发布于:2022-12-10 18:03
dgod:输入法不支持回到原帖
谢谢,我试了一下,只设置一个英文字体也可以正常显示中文,就是中文不是自己期望的,我查查这个应该是从系统来设置的了。
9楼#
发布于:2022-12-10 18:13
laolang_cool:谢谢,我试了一下,只设置一个英文字体也可以正常显示中文,就是中文不是自己期望的,我查查这个应该是从系统来设置的了。回到原帖
搞定了,linux下的xorg,可以在font.conf里加一条规则,比如:
    <alias>
        <family>Arial</family>
        <prefer>
            <family>Arial</family>
            <family>NSimSun</family>
        </prefer>
    </alias>
就可以英文用Arial,中文用新宋体了。
上一页
游客

返回顶部