AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1140030
Accepted
gerlos
gerlos
Asked: 2019-05-03 09:19:36 +0800 CST2019-05-03 09:19:36 +0800 CST 2019-05-03 09:19:36 +0800 CST

如何禁用未使用的亚洲字体?

  • 772

我正在为意大利的一所学校配置 Ubuntu 18.04 LTS PC,我已经看到安装了 200 多种字体作为ubuntu-desktop软件包的依赖项。

我们不需要它们中的大多数,例如,我们不希望典型的用户用孟加拉语或泰语编写或阅读文档。实际上,如此多的字体使我们的用户(例如在 LibreOffice 中)的字体选择变得更加困难,因为他们很难找到有用的字体。

有没有办法在系统范围内禁用那些非拉丁字体,这样它们就不会出现在应用程序中?

我知道我可以手动删除它们(例如清除fonts-tlwg-*软件包),但我想保留它们的安装,以便单个用户稍后可以在需要时启用它们,而不会影响同一系统的其他用户。

package-management fonts apt libreoffice localization
  • 3 3 个回答
  • 1291 Views

3 个回答

  • Voted
  1. Best Answer
    gerlos
    2019-05-03T16:16:56+08:002019-05-03T16:16:56+08:00

    无需卸载任何软件包,因为fontconfig它提供了一种将某些字体或路径列入黑名单的方法,并将它们排除在外,就好像它们在系统中不存在一样。

    您只需要在系统或用户配置中添加如下几行:

    <selectfont>
        <rejectfont>
        <glob>/usr/share/fonts/truetype/fonts-beng-extra/*</glob>
        </rejectfont>
    </selectfont>
    

    在哪里放置配置

    • 要在系统范围内禁用这些字体,请将这些说明放入/etc/fonts/local.conf
    • 要仅为一个用户禁用这些字体,您可以将它们放入~/.config/fontconfig/fonts.conf

    要为每个新用户设置默认行为,请将此配置放入/etc/skel/.config/fontconfig/fonts.conf.

    这种方式默认禁用不需要的字体,但用户仍然可以让它们重新编辑自己的fontconfig配置文件(最后一种方法对于我的用例来说似乎更通用)。

    显然,如果你把这个配置放进去,/etc/skel/它不会影响现有用户。他们需要手动将其复制到自己的主目录中才能使其正常工作。

    示例配置

    这是我的完整fonts.conf文件,它禁用了我不需要的所有非拉丁字体。它住在~/.config/fontconfig/fonts.conf.

    这不仅使字体列表更短,而且使一些应用程序(例如 LibreOffice)更快一些,因为它们需要应付较少的字体来预览,用户仍然可以在需要时为自己启用一些字体,而不会影响其他用户和没有管理员权限。

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
        <!-- disable non-latin fonts -->
        <selectfont>
            <rejectfont>
            <glob>/usr/share/fonts/opentype/malayalam/*</glob>
            <glob>/usr/share/fonts/opentype/noto/*CJK*</glob>
            <glob>/usr/share/fonts/truetype/abyssinica/*</glob>
            <glob>/usr/share/fonts/truetype/fonts-beng-extra/*</glob>
            <glob>/usr/share/fonts/truetype/fonts-deva-extra/*</glob>
            <glob>/usr/share/fonts/truetype/fonts-gujr-extra/*</glob>
            <glob>/usr/share/fonts/truetype/fonts-guru-extra/*</glob>
            <glob>/usr/share/fonts/truetype/fonts-kalapi/*</glob>
            <glob>/usr/share/fonts/truetype/fonts-orya-extra/*</glob>
            <glob>/usr/share/fonts/truetype/fonts-telu-extra/*</glob>
            <glob>/usr/share/fonts/truetype/Gargi/*</glob>
            <glob>/usr/share/fonts/truetype/Gubbi/*</glob>
            <glob>/usr/share/fonts/truetype/kacst/*</glob>
            <glob>/usr/share/fonts/truetype/kacst-one/*</glob>
            <glob>/usr/share/fonts/truetype/lao/*</glob>
            <glob>/usr/share/fonts/truetype/lohit*</glob>
            <glob>/usr/share/fonts/truetype/malayalam/*</glob>
            <glob>/usr/share/fonts/truetype/Nakula/*</glob>
            <glob>/usr/share/fonts/truetype/Navilu/*</glob>
            <glob>/usr/share/fonts/truetype/padauk/*</glob>
            <glob>/usr/share/fonts/truetype/pagul/*</glob>
            <glob>/usr/share/fonts/truetype/Sahadeva/*</glob>
            <glob>/usr/share/fonts/truetype/samyak/*</glob>
            <glob>/usr/share/fonts/truetype/samyak-fonts/*</glob>
            <glob>/usr/share/fonts/truetype/Sarai/*</glob>
            <glob>/usr/share/fonts/truetype/sinhala/*</glob>
            <glob>/usr/share/fonts/truetype/tibetan-machine/*</glob>
            <glob>/usr/share/fonts/truetype/tlwg/*</glob>
            <glob>/usr/share/fonts/truetype/ttf-khmeros-core/*</glob>
            </rejectfont>
        </selectfont>
    </fontconfig>
    

    参考

    • https://wiki.archlinux.org/index.php/Font_configuration
    • http://manpages.ubuntu.com/manpages/xenial/man5/fonts-conf.5.html
    • 这个答案受到这篇博文的启发
    • 4
  2. djvg
    2020-11-07T09:44:30+08:002020-11-07T09:44:30+08:00

    @gerlos 的回答很好,但就个人而言,我不喜欢为每种语言指定单独的文件夹。这感觉有点麻烦,看起来很脆弱。

    另一种方法是排除所有不支持所需语言的字体,例如en在我的情况下是英语 ( )。

    用户配置文件 ( ~/.config/fontconfig/fonts.conf) 可能如下所示:

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
    <fontconfig>
      <selectfont>
        <!-- reject all fonts -->
        <rejectfont>
          <pattern>
          </pattern>
        </rejectfont>
        <!-- accept only fonts that support english -->
        <acceptfont>
          <pattern>
            <patelt name="lang">
              <string>en</string>
            </patelt>
          </pattern>
        </acceptfont>
      </selectfont>
    </fontconfig>
    

    如果这太严格,我们可以根据需要接受其他字体。

    • 4
  3. Gunnar Hjalmarsson
    2019-05-03T10:29:21+08:002019-05-03T10:29:21+08:00

    请注意,ubuntu-desktop 推荐大多数字体包;它不依赖于他们。因此,您应该能够安全地删除字体包并仍然保留ubuntu-desktop.

    • 1

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行判断机器是否需要重新启动?

  • 有没有办法重置所有包/源并从头开始?

  • 如何回滚到 PHP 5.2?

  • 包管理器之间有什么区别?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve