关于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无法找到已安装字体的问题与解决的更多相关文章

  1. PyCharm无法找到已安装的Python类库的解决方法

    一.问题描述 软件系统:Windows10.JetBrains PyCharm Edu 2018.1.1 x64 在命令行cmd中安装python类库包Numpy.Matplotlib.Pandas. ...

  2. linux下各安装包的安装方法

    <转>linux下各安装包的安装方法   一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root ...

  3. linux下搭建lamp环境以及安装swoole扩展

    linux下搭建lamp环境以及安装swoole扩展   一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源  我安装的环境是:apache2.2.15+mysql5 ...

  4. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

  5. LINUX下中文语言包的安装(转)

    在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了.中文的是fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0- ...

  6. [转载]Linux下非root用户如何安装软件

    [转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...

  7. (转)linux下weblogic12c集群的安装部署

    本文介绍linux下weblogic12c集群的安装部署,版本12c,其他版本操作会有所不同,但其大体操作基本都是一样的 关于weblogic的集群,在此就不多做介绍了,如果有不了解的朋友可以百度搜索 ...

  8. Linux下通过源码编译安装程序

    本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...

  9. linux下Redis与phpredis扩展安装

    ++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...

随机推荐

  1. CentOS-查找删除历史文件

    背景:因服务器磁盘空间有限,根据实际情况控制保留指定的几天内的历史文件 find参数说明: /home/tmp        设置查找的目录 -mtime +30       设置修改时间为30天前 ...

  2. ELK处理Spring Boot 日志,妙!

    在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难. 工欲善其事,必先利其器.如果此时有一个统一的实时日志分析平台,那 ...

  3. Adaptive AUTOSAR 学习笔记 6 - 架构 - 方法论和 Manifest

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...

  4. 「AGC030D」Inversion Sum

    「AGC030D」Inversion Sum 传送门 妙啊. 由于逆序对的个数最多只有 \(O(n^2)\) 对,而对于每一个询问与其相关的逆序对数也最多只有 \(O(n)\) 对,我们可以对于每一对 ...

  5. 常用js代码积累

    1,js判断进入可视区,参考(亲测不行):https://www.cnblogs.com/Marydon20170307/p/8830069.html 重点学习的话,可参考: js计算元素距离顶部的高 ...

  6. springMVC-10-文件上传

    导入依赖(注意会和servlet-api依赖冲突) <!--文件上传jar包, 前面已导过servlet-api需排除--> <dependency> <groupId& ...

  7. 微信小程序云开发-云函数-云函数获取参数并实现运算

    1.编写加法运算的云函数addData 2.在本地小程序页面调用云函数

  8. Linux系统下Java 转换Word到PDF时,结果文档内容乱码的解决方法

    本文分享在Linux系统下,通过Java 程序代码将Word转为PDF文档时,结果文档内容出现乱码该如何解决.具体可参考如下内容: 1.问题出现的背景 在Windows系统中,使用Spire.Doc ...

  9. element取消全局loading

    背景 前两天在开发一个管理后台项目时, 遇到了一个问题,后端接口返回特别慢,由于该接口调用的是第三方API,无法通过后端去处理.此时想到用loading动画,但随之而来也产生了不少问题, 在此记录一下 ...

  10. POJ1934 Trip 题解

    LCS 模板,但要输出具体方案,这就很毒瘤了. 神奇的预处理:fa[i][j]表示在 \(a\) 串的前 \(i\) 个字符中,字母表第 \(j\) 个字母最晚出现的位置,fb[i][j]同理. 这样 ...