如何在 20.04 上激活位图字体?

Dav*_*rdt 5 fonts 20.04

我使用的是 Ubuntu Mate 20.04。我想在终端(不是 xterm)中使用固定 6x13 字体。当我尝试更改终端字体时,固定字体不在可用字体列表中。但是,mate-font-viewer和 和xfontsel显示固定字体。

我按照如何激活位图字体?中的说明操作如何启用此字体。和https://ubuntuforums.org/showthread.php?t=1270870。提供的解决方案似乎都不起作用。这是我到目前为止所做的:

  • 我安装了xfonts-100dpixfonts-75dpi软件包。
  • /etc/fonts/conf.d/我删除70-no-bitmaps.conf并添加了70-yes-bitmaps.conf70-force-bitmaps.conf符号链接。我两种都尝试过,一次一种。
  • 按照https://ubuntuforums.org/showthread.php?t=1270870上的说明,我Fixed通过添加69-fixed-bitmaps.conf.
  • 在每次试验中dpkg-reconfigure fontconfig-config,我都运行dpkg-reconfigure fontconfigfc-cache -f重新启动我的系统。

如何在 Ubuntu 20.04 上使用这些字体?

bai*_*ain 6

(24.04 Wayland 更新见下文)

Ubuntu 20.04需要手动启用位图字体,并且位图字体文件必须为OpenType Bitmap (otb) 格式。

启用位图字体:

$ rm /etc/fonts/conf.d/70-no-bitmaps.conf
$ ln -s ../conf.avail/70-force-bitmaps.conf /etc/fonts/conf.d/
$ dpkg-reconfigure fontconfig-config
$ dpkg-reconfigure fontconfig
$ fc-list | grep Fixed | grep 6x13.pcf
/usr/share/fonts/X11/misc/6x13.pcf.gz: Fixed:style=SemiCondensed
/usr/share/fonts/X11/misc/trad--6x13.pcf.gz: Fixed:style=SemiCondensed
Run Code Online (Sandbox Code Playgroud)

如果您没有 otb 字体,则需要从 bdf 字体转换(从 pcf 字体转换将导致大小不正确)。这种转换可以使用 来完成fonttosfnt。不幸的是,Ubuntu 20.04.1 中的版本fonttosfnt存在错误,并且输出的字体间距不正确(参见12),因此需要使用最新的 git 代码。

从 git 安装最新的 fonttosfnt:

$ git clone https://gitlab.freedesktop.org/xorg/app/fonttosfnt.git
$ apt-get build-dep xfonts-utils libfreetype6-dev libfontconfig1-dev xclip libfontenc-dev x11proto-core-dev
$ cd fonttosfnt
$ ./autogen.sh
$ ./configure
$ make
Run Code Online (Sandbox Code Playgroud)

下载6x13.bdf,重命名以避免与.pcf字体冲突,并转换为otb格式:

wget https://opensource.apple.com/source/X11fonts/X11fonts-14/font-misc-misc/font-misc-misc-1.1.2/6x13.bdf
sed -i 's/FAMILY_NAME.*/FAMILY_NAME "MyFixed"/' 6x13.bdf
./fonttosfnt -b -c -g 2 -m 2 -o myfixed.otb 6x13.bdf
Run Code Online (Sandbox Code Playgroud)

安装新的 otb 字体:

$ cp myfixed.otb /usr/local/share/fonts
$ dpkg-reconfigure fontconfig-config
$ dpkg-reconfigure fontconfig
$ fc-list | grep otb
/usr/local/share/fonts/myfixed.otb: MyFixed:style=SemiCondensed
Run Code Online (Sandbox Code Playgroud)

启动应用程序,选择字体,搜索“myfixed”。

Ubuntu 24.04(Wayland)更新:

好消息是这仍然有效,并且某些步骤更简单。坏消息是系统6x13字体还没有更新到otb,也fonttosfnt没有升级,所以我们还是要构建github代码,手动转换bdf字体:

$ sudo rm /etc/fonts/conf.d/70-no-bitmaps.conf
$ fc-list | grep Fixed | grep 6x13.pcf
/usr/share/fonts/X11/misc/6x13.pcf.gz: Misc Fixed:style=SemiCondensed
$ git clone https://gitlab.freedesktop.org/xorg/app/fonttosfnt.git
$ sudo apt-get build-dep xfonts-utils
$ cd fonttosfnt
$ ./autogen.sh
$ ./configure
$ make
$ wget https://opensource.apple.com/source/X11fonts/X11fonts-14/font-misc-misc/font-misc-misc-1.1.2/6x13.bdf
$ sed -i 's/FAMILY_NAME.*/FAMILY_NAME "MyFixed"/' 6x13.bdf
$ ./fonttosfnt -b -c -g 2 -m 2 -o myfixed.otb 6x13.bdf
$ sudo cp myfixed.otb /usr/local/share/fonts
$ fc-list | grep otb
/usr/local/share/fonts/myfixed.otb: MyFixed:style=SemiCondensed
Run Code Online (Sandbox Code Playgroud)


Rou*_*oux 4

UPD:22.04 中有一个包 fonts-terminus-otb,因此只需删除/etc/fonts/conf.d/70-no-bitmaps.conf并重新启动 X。

原答案:

虽然 Ubuntu 已经放弃了对 disto 中包含的位图终点字体的支持,但我使用了 ArcLinux 中的 otb 位图字体。原始收据来自此处:https://forum.manjaro.org/t/howto-use-terminus-bitmap-font-with-pango-1-44/101442

这是针对 Ubuntu 20.04 的适配:

  1. 从https://www.archlinux.org/packages/community/any/terminus-font-otb/获取 otb 字体包(从镜像链接下载)
  2. 使用 Alien 将包转换为 .deb:
    zstd -d terminus-font-otb-4.48-3-any.pkg.tar.zst
    fakeroot alien terminus-font-otb-4.48-3-any.pkg.tar
Run Code Online (Sandbox Code Playgroud)
  1. 删除/etc/fonts/conf.d/70-no-bitmaps.conf
  2. 安装生成的 deb:
    sudo dpkg -i terminus-font-otb_4.48-2_all.deb
Run Code Online (Sandbox Code Playgroud)
  1. 注销-登录(或者重新启动X,否则)

中提琴!美丽的终点站字体再次可用!


小智 1

根据此https://fedoraproject.org/wiki/BitmapFontConversion,不再支持旧格式的位图字体。我尝试按照该页面上的方法进行操作,但它对我不起作用。

最后,我通过执行以下步骤成功转换并使用了我想要的字体:

  1. 在fontforge中打开它( /usr/share/fonts/X11/misc/6x13-ISO8859-1.pcf.gz)
  2. 编辑字体信息(元素 -> 字体信息),更改名称和系列,使其不会与位图字体冲突。
  3. 将其以 otb 格式(文件 -> 生成字体...)保存到~/.fonts.
  4. /etc/fonts/font.d然后使用我的新字体系列名称添加一个新文件。