如何在Gnome终端中或需要等宽字体的地方使用Fixedsys


10

我认为Fixedsys字体是用于编程的最清晰的等宽字体之一。它具有零抗锯齿功能,垂直线大部分为2像素宽。在我眼中(从字面上看)非常接近当前监视器点间距。这是一个示例:

Fixedsys示例

经过数年的Windows家庭办公(出于家庭原因)和Linux服务器在工作中通过Cygwin在Windows上访问(出于公司政策原因),并且使用Fixedsys作为外壳程序和IDE字体,我终于决定切换到在家的Ubuntu。

Eclipse和gedit没问题,它们接受Fixedsys Excelsior TTF字体的更正版本,您可以在注释16中找到它(文件名:FSEX301-L2.ttf)。但是Gnome终端仅接受等宽字体。

尽管Fixedsys Excelsior本质上是等距的,但它包含较大的字形(主要用于东方语言)以及一些连字。由于显然所有字符都必须具有相同的宽度才能将字体识别为等宽字体,因此无法在需要等宽字体的所有那些上下文(包括gnome-terminal)中选择Fixedsys Excelsior。

那么,在仅接受等宽字体的上下文中使用Fixedsys克隆的最简单/最干净的方法是什么?


顺便说一句,要在NetBeans中使用Fixedsys Excelsior,必须-J-Dswing.aatext=false在/etc/netbeans.conf中添加到netbeans_default_options。否则,NetBeans会将其渲染为“彩色”和模糊-这也适用于Windows
Walter Tross 2013年

更新至我之前的评论:Windows上的Netbeans 7.4需要-J-Dawt.useSystemAAFontSettings=on摆脱抗锯齿。
Walter Tross 2014年

在MacBook Pro上,我必须处理的示例图像不清晰。Fixedsys字体似乎具有灰色边框像素。在AFAICT中,这是因为所谓的“视网膜”显示,这是一种高分辨率显示,可将HTML内的图像缩放两倍(是的,它们更喜欢破坏HTML并使图像模糊...)。同样的缩放比例适用于字体本身,破坏了字体。另一方面,高分辨率显示器极大地提高了所有字体的可读性,从而消除了Fixedsys的需要。
Walter Tross

Answers:


7

这是我找到的解决方案。我已经对其进行了彻底的测试,并且已经在超过2年的时间里在很多地方使用了结果字体,但是要警告:过程的某些部分可能从次优到明显的错误。

在问“为什么不提供结果字体”之前,答案是:“因为我不确定是否可以这样做”。字体版权是一件复杂的事情。


下载更正的Fixedsys Excelsior字体(文件FSEX301-L2.ttf,注释16)

安装FontForge(例如,从Ubuntu软件中心)

右键单击该FSEX301-L2.ttf文件,然后使用FontForge打开它。在出现的“ 加载位图字体”窗口中,单击“ 否”

单击文件→执行脚本...,然后将以下内容复制并粘贴到出现的窗口中:

SelectAll()
foreach
   if (GlyphInfo("Width") != 80)
      DetachAndRemoveGlyphs()
   else
      b = GlyphInfo("BBox")
      if (b[0] < 0 || b[1] < -30 || b[2] > 80 || b[3] > 130)
         DetachAndRemoveGlyphs()
      endif
   endif
endloop
SelectNone()

然后选择FF并单击“ 确定”(这将需要一段时间,您将需要等待Execute Script窗口消失)

点击元素→字体信息......PS名称更改字体名名的人类,例如,通过附加Mono(允许使用空格仅在第二和第三个字符串)。

在相同的字体信息窗口中,选择OS / 2
杂项中。选项卡,将PFM系列更改为Monospace
在“度量标准”选项卡中,将“ Win Descent Offset”和“ HHead Descent Offset”都设置为0 (*)
Panose标签中,将Proportion更改为Monospaced

在同一“ 字体信息”窗口中,选择“ 查找”
在“ GSUB”选项卡和“ GPOS”选项卡中,依次选择每行,然后单击“ 删除”

在同一“ 字体信息”窗口中,单击“ 确定”,然后在“ 更改唯一ID?”中。出现的窗口中,单击“ 更改”

如果需要,可以调整Fixedsys的一项或多项可疑功能。例如,零字符向右移动一个像素。要将其移回中心,请双击它,然后单击“ 度量标准”→“设置LBearing ...”,将“ LBearing”设置为10,然后单击“ 确定”。您还可以更改字符的形状,但始终将控制点保持为10的倍数,宽度为80。

单击元素→位图可用罢工...,然后在出现的窗口中将像素大小设置为16,然后单击确定

单击文件→生成字体...,根据需要选择其他目录和/或其他文件名,确保输出格式为TrueType,然后单击保存。在出现的非标准Em-Size窗口中,单击。在下一个出现的“检测到错误”窗口中,单击“ 保存”(不用担心)。

退出FontForge(文件→退出)。在出现的“ 更改字体”窗口中,单击“不保存”


将生成的文件移动到.fonts主目录的子目录(如果不存在,则创建它)。

打开Gnome终端。单击编辑→配置文件...在配置文件中(建议您创建一个新文件),将字体更改为Fixedsys Excelsior 3.01-L2 Mono(或任何称为Fixedsys Excelsior的单声道版本),并更改其大小12(这是唯一的“真实” Fixedsys大小)。 。如果需要,还可以禁用粗体文本。我建议在白色背景上使用黑色文字,但这是一个品味问题。

该字体的粗体变体等效于重复向右移动一个像素的字符(这与FSEX301-L2.ttf,它看起来很平滑)不同。它不是很清晰-但是您真的需要大胆吗?我不。问题仅在于无法禁用粗体的情况下(甚至不能通过编辑语法突出显示来解决),尤其是在字符间距也增加一个像素的情况下,会破坏对齐方式(gnome中不是这种情况) -终奌站)。我还没有找到解决这个最后麻烦的方法。欢迎提出建议。


(*):自2012年7月31日FontForge版本以来不需要(在14.04 LTS-Trusty Tahr中)


对于所有保存和/或应用了此食谱的人:请注意,为了解决一些小问题,它在此期间可能有所更改,并且将来可能还会更改。您可以查看编辑历史记录。
Walter Tross

仅供参考,在Windows上也可以正常运行。还使用了“ Fixedsys Excelsior 2.0”(在我看来,由于字符比FSEX3小一些,因此对于终端机来说要好得多)。PuTTY的绝佳字体!(原FSEX和任何字体被视为非等宽,使腻子慢,当屏幕刷新非常频繁)
ThiefMaster

14.04上的PhpStorm 7.1无法识别我在答案中描述的字体为等宽字体,我不知道为什么:-(幸运的是,如果取消选中“仅显示等宽字体”,您仍然可以得到它。出于某种原因大小必须为15或16(它们看起来相同),而不是
12。PhpStorm

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.