Ubuntu安装ttf-mscorefonts-installer以及python使用“Times New Roman”等字体

本文详细介绍了在Linux(Ubuntu)系统中安装TimesNewRoman字体的步骤,包括安装必要的支持库、手动安装字体、解决安装过程中可能出现的错误,以及如何在matplotlib中配置并使用该字体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在linux使用matplotlib绘图时,发现图中的英语字体都不是times new Roman,一般论文或者其他情况要求times new Roman字体,而linux一般是没有预装这些字体。我在基于Ubuntu的bio-linux以及qiime2上面,发现正常安装一定会报错,几经搜索,找到一个可靠的安装流程,所以写下这篇博文。

解决方法

安装必要的支持库软件

这个fontconfig先下载,下面可能用得到

sudo apt-get install fontconfig
sudo apt install ttf-mscorefonts-installer

安装过程以及报错

下载完install ttf-mscorefonts-installer,会自动弹出一个对话框,让你点击ok,要注意此时需要用“Tab”键将光标移到ok之后,再回车,然后会有以下画面:
在这里插入图片描述选中yes以后,就会有以下的报错:
在这里插入图片描述不管你是选择run this action now,还是直接关闭,最后都是安装不成功的,这个时候就需要手动去安装字体。

解决办法

你的usr/share/package_data_downloads里有一个ttf-mscorefonts-installer,如下:
在这里插入图片描述ttf-mscorefonts-installer是一个配置文件,打开会有一系列的链接,是用来下载字体文件的,当然也可以用别人已经下载好的文件。放在一个文件内,我的放在Downloads里面,这些文件含有的内容如下:
在这里插入图片描述运行以下代码,会让你手动指定fonts的目录,将ttf-mscorefonts-installer的绝对目录输入到这里,点击确定:

sudo dpkg-reconfigure ttf-mscorefonts-installer

在这里插入图片描述
如果有以下报错:
在这里插入图片描述
可以执行以下命令,再重新进行配置,成功的界面如下:

#如果没有fontconfig,就不能运行这个命令
sudo fc-cache

在这里插入图片描述## 安装成功
查看usr/share/fonts/turetype/msttcorefonts这个文件夹有超多字体就说明是成功了:
在这里插入图片描述
也可以用以下命令来测试:

fc-match Times
fc-match "Times New Roman"

如果有成功匹配就没有问题,没有成功匹配,也可以重启之后再进行。
在这里插入图片描述

安装失败后,重新安装的方法

如果有人是中途安装失败,又想重新安装的,有人提供方法:也是基于下载文件到本地然后进行的
我个人更建议用以下命令,将其完全删除,并再重新安装:

sudo apt-get move ttf-mscorefonts-installer --purge

matplotlib内使用Times New Roman字体

如果你是matplotlib.plot绘图,直接用以下的配置就行,这个配置的弊端是,可能中文字体不能显示了:

import matplotlib.plot as plt
plt.rcParams['font.sans-serif']=['Times New Roman']

如果使用的是其他更高级的命令,我建议这么配置:

import matplotlib.font_manager as font_manager
#这句话rebuild是特别重要,不然会提示找不到文件
font_manager._rebuild()
footpath='/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf'
prop=font_manager.FontProperties(fname=footpath)
matplotlib.rcParams['font.family']=prop.get_name()
matplotlib.use('Agg')
matplotlib.rcParams['svg.fonttype'] = 'path'

这个代码我是综合了其他的解决方法写的:传送门时光机。我加了svg.fonttype配置,因为我想出svg图,所有对以上代码有看法的朋友,可以讨论一下。

本教程结束

一个科技小白,以小白的态度写教程…☺

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值