系统中使用的默认无衬线字体不包含一些来自中东语言的字符。所以我想设置一个后备字体,以便在某些符号丢失时使用。
AFAIK,它与fontconfig和fonts.conf文件有关。这是我当前的fonts.conf文件:
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans</family>
<prefer>
<family>FONTNAME</family>
</prefer>
</alias>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)
哪里FONTNAME是包含所有符号的字体。它可以工作,但是设置此后,默认字体消失,整个系统使用FONTNAME默认无字体。(请注意,FONTNAME也有拉丁字符。)
我正在尝试在运行 Ubuntu 18.04 的 docker 容器中安装字体(Dockerfile 继承自 Jupyter scipy 笔记本,该笔记本继承自基本 jupyter 映像,此处为Dockerfile )。
我尝试了很多不同的东西,包括这个答案和那里的其他建议。
我的 Dockerfile 看起来像
FROM jupyter/scipy-notebook
USER root
# bash instead of dash to use source
RUN ln -snf /bin/bash /bin/sh
# These require sudo so they must come before defining
# a user
# Font attempt
COPY GillSansMTPro-Medium.otf /usr/local/share/fonts
RUN fc-cache -f -v
# installing some pip packages
Run Code Online (Sandbox Code Playgroud)
当我尝试在 matplotlib 中使用这种字体时,我看到了这个错误:

我试过添加
RUN rm -fr ~/.cache/matplotlib
Run Code Online (Sandbox Code Playgroud)
到我的 Dockerfile(在上面显示的部分之后),因为我在网上阅读可以解决问题。它也没有用。
此外,如果我导航到/usr/local/share/fonts,字体会按预期出现。
任何想法如何解决这个问题?
可能重复:
如何安装字体?
这已经让我发痒了一段时间,很高兴知道是否有办法做到这一点,因为我有很多字体(ttf)我想安装但不想一次安装一个。
谁能告诉我如何在 LibreOffice snap 中安装新字体?是否有任何字体管理器?
所以我已经阅读了这个,现在我的问题是将字体放在~/.local/share/fontsvs 中有/usr/local/share/fonts什么区别?
上面链接中的答案说/usr/local/share/fonts“如果您需要字体在系统范围内可用”,所以我的猜测是这~/.local/share/fonts不会使字体在系统范围内可用。虽然我不确定,因此问题。
提前致谢。