关于Linux下Texlive无法找到已安装字体的问题与解决
关于Linux下Texlive无法找到已安装字体的问题与解决
当我在Ubuntu系统下使用Latex时,在编译渲染时报出了Font "xxx" does not contain requested这种错误,其中xxx就是你可能想使用的字体格式。
然而我的Ubuntu系统已经正确安装了一些常用中文字体,然而在LaTeX编译渲染时还会报出错误。
由于笔者为了解决这个问题翻遍了国内外的网站、去查看了Texlive官方文档,耗费了许多时间与精力,都没能找到解决我的问题的信息,人们的时间往往都很珍贵,一般找不到解决方案过后,往往都不了了之,本着互联网极客精神(开源精神),在这里将笔者的解决过程记录并分享,希望人们可以将这种精神继承并传承下去。
我甚至在Texlive的官方安装文档中看到这么一段话:
可以看到关乎于LaTeX排版中让人非常头疼的问题就是汉字的一些处理了,好在今天有非常多好用的宏包可以解决处理这个问题。
首先看一下笔者出现的问题:


可以看到终端给出的错误提示是未能找到已安装的字体(installed font not found),有了这句话的提示,笔者想的可能是,在我的系统上已安装了的字体中,在LaTeX中未能正确地引用,查看代码中可以看到:

在这里设置字体格式的时候我们设置楷体对应的字体文件为simkai,我们可以查看我们的字体库中是否有simkai.ttf楷体的字体文件:
在Ubuntu存放字体的目录/usr/share/fonts/下可以使用find命令查找:

可以看到,笔者的系统中已经存放了simkai.ttf这个字体文件,为什么LaTeX还没有找到这个字体呢。
通过一番排查,原来是在Ubuntu中,对字体的使用并不仅仅是字体文件名,而是另一个别名。
我们可以使用fc-list来查看系统可用的字体列表,然后使用grep匹配simkai.ttf的字体文件,可以进一步查看字体的信息:

原来,图中1号框中的名字只是字体文件名,而在系统应用中想要使用这个字体,我们需要指定2号框中的字体名,例如本图,我们想要使用楷体就需要指定KaiTi或楷体这个名字。
回到LaTeX代码中,将之前出现错误原因的simkai替换成KaiTi即可解决问题。


为了进一步验证笔者的猜想,可以看到上图代码中,在KaiTi的下面还使用了SimSun宋体的使用,然而SimSun并不报错,这里笔者想可以继续查看SimSun的字体信息,其后面的别名应该包含SimSun。

所以笔者的猜想是正确的,所以在我们不同的系统、不同的字体文件中,每个人发生无法正确找到我们想要使用的字体的错误可能都不一样,因为我们使用的字体文件不同可能导致我们的在应用中使用字体中需要引用的名称的不同而不同,所以出现这种问题我们要具体问题具体分析,对症下药。
关于Linux下Texlive无法找到已安装字体的问题与解决的更多相关文章
- PyCharm无法找到已安装的Python类库的解决方法
一.问题描述 软件系统:Windows10.JetBrains PyCharm Edu 2018.1.1 x64 在命令行cmd中安装python类库包Numpy.Matplotlib.Pandas. ...
- linux下各安装包的安装方法
<转>linux下各安装包的安装方法 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root ...
- linux下搭建lamp环境以及安装swoole扩展
linux下搭建lamp环境以及安装swoole扩展 一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源 我安装的环境是:apache2.2.15+mysql5 ...
- Linux下非root用户如何安装软件
Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...
- LINUX下中文语言包的安装(转)
在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了.中文的是fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0- ...
- [转载]Linux下非root用户如何安装软件
[转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...
- (转)linux下weblogic12c集群的安装部署
本文介绍linux下weblogic12c集群的安装部署,版本12c,其他版本操作会有所不同,但其大体操作基本都是一样的 关于weblogic的集群,在此就不多做介绍了,如果有不了解的朋友可以百度搜索 ...
- Linux下通过源码编译安装程序
本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...
- linux下Redis与phpredis扩展安装
++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...
随机推荐
- vue v-if条件判断
<view class='circle-G' v-if="item.status === 'G'"></view> <view class='circ ...
- C# datagridview 这是滚动条位置
1.datagridview 设置 表格内容铺满,内容自动换行 dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True; ...
- WEB应用访问缓慢的问题定位
WEB应用访问缓慢的问题定位 欢迎关注博主公众号「java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载请注明出处 http://w ...
- Network:java中文转byte出现负数问题
字节的释义 字节(Byte) 是计算机信息技术用于计量存储容量的一种计量单位,通常情况下 1字节 = 8位(bit),也表示一些计算机编程语言中的数据类型和语言字符. 字符与字节 ASCII码:1个英 ...
- Springboot:Springboot+mysql5.7搭建服务,超过8小时连接mysql失败
报错信息 2017-03-12 03:00:02.539 ERROR 9311 --- [nio-9000-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] ...
- Spring data Jpa 提供的validator验证
- 如何查看wsdl文档
http://www.360doc.com/content/16/1027/00/37651083_601648996.shtml
- 【源码篇】Flutter GetX深度剖析 | 我们终将走出自己的路(万字图文)
前言 人心中的成见是一座大山,任你怎么努力都休想搬动. 这是电影<哪吒>里申公豹说的一句话,也是贯彻整部电影的一个主题:或许这句话引起了太多人的共鸣:35岁职场危机,大厂卡本科学历,无房无 ...
- 排序---python版
冒泡排序: 比较相邻的元素.如果第一个比第二个大,就交换它们两个: 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数: 针对所有的元素重复以上的步骤,除了最 ...
- 一文看懂HTTPS、证书机构(CA)、证书、数字签名、私钥、公钥(转)
说到https,我们就不得不说tls/ssl,那说到tls/ssl,我们就不得不说证书机构(CA).证书.数字签名.私钥.公钥.对称加密.非对称加密.这些到底有什么用呢,正所谓存在即合理,这篇文章我就 ...
