问题描述

我们认为,标题已经准确的描述出本笔记的内容。我们再详细补充说明:我们常用的字体有 Microsoft YaHei、Courier 10 Pitch、Consolas 等等,虽然这些字体可以正确显示中文以及英文,但是却无法显示 Emoji 表情,因为这些字体中并没有 Emoji 表情的字体(其实 Courier 10 Pitch 连中文字体都不支持)。当没有特定字体时,该字符将显示为方块(注意“没有字体”与“乱码”这两者的区别)。

此时,我们就需要设置“备用(Fallback)字体”,即:当字体 A 中没有某个字符时,从字体 B 中加载该字符。

该笔记将记录:在 Linux 中,如何设置备用(Fallback)字体,以及常见问题处理。

解决方案

在 Linux 中,设置字体需要通过 Fontconfig 完成。该应用无需自行安装,因为它是在图形界面下必须的应用,默认已经安装。

我们的配置,也是围绕 fonts.conf 文件。对于入门学习,阅读 Font configuration - ArchWiki 页面。更多详细内容,参考 man 5 fonts.conf 手册。

作为普通用户,建议修改 $XDG_CONFIG_HOME/fontconfig/fonts.conf(通常为 ~/.config/fontconfig 目录)配置文件。

如下配置,默认使用 Courier 10 Pitch 字体,如果某个字符不存在,则将在 Microsoft YaHei 字体中需找该字符对应的字体:

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig><match target="font"><test name="lang" compare="contains"><string>ar</string></test><alias><family>Courier 10 Pitch</family><prefer><family>Microsoft YaHei</family></prefer></alias></match>
</fontconfig>

修改 monospace 字体

Changing monospace fonts system-wide

如下配置文件将 monospace 字体指向 Courier 10 Pitch 字体:

<match target="pattern"><test name="family" qual="any"><string>monospace</string></test><edit binding="strong" mode="prepend" name="family"><string>Font B</string></edit>
</match>

参考文献

How to change the fallback font for missing languages? - Ask Ubuntu

「Font」- 设置 Fallback 字体(如果字体 A 中不存在某个字符,则从字体 B 中加载该字符) @20210212相关推荐

  1. java font 字体库,「Font」- 编程字体 @20210209

    问题描述 该笔记将记录:与编程字体有关的内容,以及我们使用过的字体. 解决方案 访问 Programming Fonts - Test Drive 站点,以查看并下载自己喜欢的字体. 我们使用的编程字 ...

  2. 程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreat的问题解决

    今天在写一个应用的时候,因为需要设置成横屏模式,所以在Manifest里面的Activity里面加了两个参数设置: android:screenOrientation="landscape& ...

  3. R语言读取(加载)txt格式数据为dataframe、可视化绘制温度直方图、自定义设置坐标轴名称字体大小

    R语言读取(加载)txt格式数据为dataframe.可视化绘制温度直方图.自定义设置坐标轴名称字体大小 目录 R语言读取(加载)txt格式数据为dataframe.可视化绘制温度直方图.自定义设置坐 ...

  4. linux安装了中文字体,但是无法加载the font can not be loaded,the path[‘/usr/share/fonts/msyh/微软雅黑.ttf‘] is error

    linxu安装了微软雅黑字体,但是代码发布上去之后,运行的时候又说不能加载这个字体, 报错日志:the font can not be loaded,the path['/usr/share/font ...

  5. omnigraffle 画曲线_「技法」三步学会用绘图利器 OmniGraffle 绘制流程图

    OmniGraffle 是 Mac 上的绘图利器,曾获2002年苹果设计奖.Graffle 在很多方面对标 Windows 系统上的 Microsoft Visio,是制作各种文档的绝妙工具.这篇文章 ...

  6. 浅析Android字体加载原理

    浅析Android字体加载原理 前言 之前在处理系统字体问题的时候,可借鉴的资料很少,遇到了很多坑,不得不了解Android字体加载原理,现抽空写一篇总结,来加深自己对这块的理解. 内容 概述 And ...

  7. web字体库加载优化_优化Web字体以提高性能:最新技术

    web字体库加载优化 This article is part of a series created in partnership with SiteGround. Thank you for su ...

  8. 破解马赛克有多「容易」?

    刷短视频时,估计大家都看过下面这类视频,各家营销号争相曝光「一分钟解码苹果笔刷背后内容」的秘密.换汤不换药,自媒体们戏称其为「破解马赛克」,殊不知让多少不明真相的用户建立起了错误的认知,也让苹果笔刷第 ...

  9. 在Vue.js中加载字体的最佳做法

    博客原文:https://blog.zhangbing.site/2021/04/07/best-practices-for-loading-fonts-in-vue/ 添加字体不应该对性能产生负面影 ...

  10. hp-socket 文本跟图片同时发送_文本、截图和应用,这样「包装」一秒变美观

    社交网络被发明出来的一个重要目的就是分享,无论是所见所闻还是喜怒哀乐,亦或是脑海中突然迸发出的一段妙言,某个转瞬即逝的精彩瞬间,一篇深度好文,一个在少数派看到的绝赞应用-- 分享内容丰富多彩,相比之下 ...

最新文章

  1. Cocos2d-x 生成真正的随机数
  2. 连接linux工具Mtr,mtr命令_Linux mtr命令使用详解:网络连通性判断工具
  3. 建议 Solr 用户更新 Apache POI
  4. html批量转doc linux,HTML+CSS入门 Linux下如何批量将md文件转换为html文件
  5. 自己搭建的CISCO实验环境
  6. Depth-first Search深度优先搜索专题7
  7. leetcode74. 搜索二维矩阵 ,你见过吗
  8. php网站渗透实战_【案例分析】记一次综合靶场实战渗透
  9. 西安python后端招聘_有大佬招 Python 后端初级人员吗?
  10. 【AAA】AAA协议介绍
  11. CNVD和CNNVD披露漏洞教程(个人申报)
  12. C++入门教程(一)
  13. matlab连接段端子怎么画,matlab在电路仿真PPT课件
  14. MSM8960和MSM8930
  15. 2015年天翊他爹有想法了
  16. Python自动登录校园网
  17. inurl+:php?id,实操:SQL注入国外xx网站
  18. Scikit-learn实战之最近邻算法
  19. java课程 数独 文库_JAVA课程设计九宫格数独.pdf
  20. BigDecimal精度丢失问题

热门文章

  1. Hadoop教程(一) Hadoop入门教程
  2. 已知圆心及半径,通过MATLAB画圆
  3. (七)视频背景移除/去背景/换背景/抠图/抠像代码示例:实时抠图、实时抠像、人像去背景、背景消除
  4. linux (centos 8.1)生产环境基于9台物理机 安装 opentstack ussuri集群以及集成ceph (已转gitee)
  5. Linux安全加固 附脚本
  6. 网易云音乐android变臃肿,网易云音乐,你变成了我最讨厌的模样
  7. (4.2.48)MVPArms源码分析
  8. keil报错:*** FATAL ERROR L250,注册2032年
  9. IDEA格式化SQL代码
  10. 在Windows中用VMWare虚拟机安装Linux 64位Gaussian 09手记