如何在Smalltalk中制作非常大的文本?

时间:2014-03-24 08:38:57

标签: smalltalk squeak

我尝试使用以下代码在Squeak Smalltalk中制作一个大型文字横幅:

t := TextMorph new.
t string: 'You win!' fontName: 'BitstreamVeraSans' size: 400.
t extent: 600@100.
t center: Display center.
t openInWorld.

但文字大小似乎最大约为60.我使用错误的课程吗?我不需要文本可编辑。

2 个答案:

答案 0 :(得分:3)

两种方式:

  1. 添加另一种字体大小:(TextStyle named: #BitstreamVeraSans) addNewFontSize: 200并像以前一样使用常规文字变体。

  2. 使用" Truetype横幅"可以任意缩放:从对象目录中获取一个,或使用TTSampleStringMorph new initializeToStandAlone openInHand。查看initializeToStandAlone方法来创建自己的方法。

  3. 对于大型标题,我可能会使用

答案 1 :(得分:1)

我认为这是因为Squeak使用位图字体作为标准。包含在Squeak图像中的BitstreamVeraSans的最大大小似乎是36。 因此,虽然你可以扩展变形,但文本本身并没有变得更大。

在Pharo中,您可以在TextMorph中使用TrueType字体,如下所示:

|font textMorph text|
font := (TextFontReference toFont: (LogicalFont familyName: 'Cochin' pointSize: 99)).
text := 'You win!' asText addAttribute: font.
textMorph := TextMorph new.
textMorph contents: text.
textMorph openInWorld

Squeak也可能有类似的东西。包含了一些TrueType支持。