我已经能够通过使用更改 Grub 的默认字体
grub-mkfont -s 16 -o /boot/grub/grubfont.pf2 font.tty
Run Code Online (Sandbox Code Playgroud)
然后将以下行添加到 /etc/default/grub:
GRUB_FONT=/boot/grub/grubfont.pf2
Run Code Online (Sandbox Code Playgroud)
而且当然
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
新字体确实出现了(记住选择等宽字体)。但是,“框”字符(在条目周围)永远不会正确显示。我想大多数字体根本没有那个字符集。有什么办法可以添加这些字符吗?甚至可以从默认的 unicode.pf2 字体中复制它们?如果这真的不可能,你知道有这些字符的字体吗?
更新:
我尝试了很多不同的方法,例如从 ttf 转换为 bdf,然后再转换为 pf2,并且我尝试仅使用 option 转换 ascii 字符--range=0x0-0x7f
,但它们似乎都无法完美运行。我有一种感觉,这是因为我生成的字体比默认字体大,因此无法使用默认字形。
我将尝试查看是否可以使用较小的字体大小,尽管这是我想更改字体的原因之一。
基本上你想要做的是使用范围运算符来限制你的新 grub 字体包含的字符。如果您不使用范围运算符,那么您将获得所有字形,包括来自目标字体的错误或不正确的框元素。
例如:
grub-mkfont -s 16 --range=0x0-0x7f -o /boot/grub/grubfont.pf2 font.tty
将生成仅包含 ASCII 字符的字体,您的字体没有的任何字体都应优雅地衰减为默认字体,因此框和箭头应来自默认字体。请参阅此网站了解更多信息:
理论上 grub-mkfont
允许传递多种字体。在这种情况下,如果您可以同时传递指向Unifont或其他覆盖范围更广的字体的链接。生成的 Grub 字体将是两种输入字体的覆盖范围的组合。
注意:最近 Grub 启动时字体加载器的性能改进意味着 Grub 字体文件中的字形必须按特定的升序排列,但不幸的是,该grub-mkfont
实用程序并未同时进行更改!现在这是一个错误:
顺便说一句,如果您有兴趣,这个错误是因为在 Grub 启动菜单中调查使用Ubuntu 字体系列开发中的Ubuntu Mono字体的实验而发现的,并且遇到了与您刚刚遇到的完全相同的问题!
归档时间: |
|
查看次数: |
26270 次 |
最近记录: |