1

我不确定这是否是问这个问题的正确地方,但我不知道还有其他更适合的网站。这个问题与编程有关,所以:

我正在编写一个格式化的 txt 指南。请看一下这段摘录: http: //mad-gaksha.homelinux.net/public/width.txt。我需要显示全角字符,以便它们占据的空间正好是半角字符的两倍。虽然等宽字体似乎只适用于半角字符,但我尝试过的大多数全角“固定宽度”字体都没有产生预期的结果。

在 Firefox 中,当我将等宽字体(编辑>首选项>内容>高级)设置为“等宽”时,此方法有效。但仅适用于 14 号字体。与 gedit 相同,固定宽度字体 MS-Gothic 仅适用于 13/14 号字体。

由于我发现这种行为很奇怪并且不希望我的读者被技术细节所困扰,有没有人有建议或提供任何资源或可以解释这里发生了什么?为什么以固定大小显示每个字形似乎如此困难?

提前感谢您抽出宝贵时间。

4

1 回答 1

0

看起来它与舍入小数像素有关。

当字形的宽度不是屏幕像素的整数时,字体渲染器可能会调整水平定位。我相信 gedit 和 Firefox 在 Linux 上使用的 Cairo 渲染不会对字体进行亚像素定位,因此这里可能需要这样做。

在真正的等宽字体中,这无关紧要,因为每个字形都具有相同的宽度,因此接受相同的处理,但是如果混合了全角和半角字符,则舍入不会是均匀的,除非字形碰巧是整数个像素宽(在您的情况下,字体大小为 14)。

请注意,在大多数小尺寸的 Windows 上,像 MS Gothic 这样的字体将使用字体文件中的自定义内置位图来呈现,而不是呈现轮廓及其度量。这使得所有字形都必须具有固定数量的像素宽。然而,这确实会导致典型的老式“锯齿状”渲染风格。

如果您正在生成格式化的文本文件,那么您实际上无能为力。您只能希望您的目标受众拥有合适的日文等宽字体,并且可以以特定的字体大小切换到它们。

我同意 Clement 的评论,即使用 HTML 来获得你想要的渲染会更加健壮、现代和方便。使用 HTML 进行布局使您不必担心排列字符,并允许您获得比所有半角等宽拉丁文更丑的字体。

于 2011-08-28T13:14:18.477 回答