如何在 Squeak 中设置更多字体大小?

How to have more font sizes in Squeak?

我在 Squeak 中安装了 DejavuSansMono 字体 ttf。我想在 TranscriptCommandShell 中使用它。

注意:只需下载 ttf 文件,然后通过 Squeak FileList 应用加载它。

现在,如果我 select 在 Transcript 中输入一些文本,然后 RightClick -> SetFont。我可以将字体更改为 DejavuSansMono 但只能更改为大小:{9, 12, 15, 24, 36 }.

我想要其他中间尺寸。可能吗?我对字体的了解很少,但我想是的,因为在 this page 中我看到了大小:{10,14,18}

您必须添加您想要的尺码。

如果我想要字体大小 10,我会按以下方式进行:

(TextStyle named: #DejaVuSansMono) addNewFontSize: 10

我假设您在安装新字体时得到的是最常见的尺寸。 您可以通过以下方式查看您的尺码:

TextStyle fontArrayForStyle: #DejaVuSansMono

你应该得到(添加字体大小 10 后):

{TTCFont(DejaVuSansMono 9 Book) . TTCFont(DejaVuSansMono 10 Book) . TTCFont(DejaVuSansMono 12 Book) . TTCFont(DejaVuSansMono 15 Book) . TTCFont(DejaVuSansMono 24 Book) . TTCFont(DejaVuSansMono 36 Book)}

编辑:我是怎么找到它的? (我不经常使用 Squeak)

TTCFontSet>>#familyName:pointSize: 中,您会找到一个(全局)词典 TextConstants

如果您检查 TextConstants,找到 a TextStyle DejaVuSansMono 实例。当你检查它时,你会看到细节。从那里我想检查一个 TextStyle class。我在那里找到了 TextStyle>>#addNewFontSize:,您可以使用它来引入新尺寸。

当您将 #DejaVuSansMono 添加到 Squeak 时,您将收到 This font does not have a kerning table 消息,这意味着您不会优化字符之间的规范。我建议阅读一些好的资源 what is kerning 以了解更多信息。

我遵循了@tucan 的指示,一切都很好。

为了完整起见,我在此处添加了一张图片,显示了我在默认 Bitmap DejaVu Sans 和从 Internet 获得的 DejaVuSans ttf 之间看到的差异。

如果您仔细观察 TextStyle 字中的 "y" 字符,就可以看出字距调整问题(?)。

此外,我发现字母 "t" 和 "n" 通常在 DejaVuSans 中看起来更差,但可以随意调整此字体的大小。