我不确定这是否是问这个问题的正确地方,但我不知道有任何其他网站更适合。这个问题与编程有关,所以:
我正在写一个格式化的文本指南。请看下面的节选:http://mad-gaksha.homelinux.net/public/width.txt。我需要显示全宽字符,以便它们占用半宽字符的两倍空间。虽然等宽字体似乎只适用于半宽字符,但我尝试过的大多数全宽"固定宽度"字体并没有产生预期的结果。
在firefox中,当我将monospace字体(编辑>首选项>内容>高级)设置为"monospace"时,这就有效了。但只适用于字体大小为14的情况。gedit也是一样,固定宽度的字体MS-Gothic只适用于13/14的字体。
我发现这种行为很奇怪,不想让我的读者被技术细节困扰,有没有人有建议或提供任何资源或可以解释这里发生了什么?为什么用固定的大小显示每个象形文字看起来如此困难?
提前感谢您的宝贵时间。
这看起来是与舍入小数像素有关。
当字形的宽度不是屏幕像素的整数时,字体渲染器可能会调整水平定位。我相信gedit和Firefox在Linux上使用的Cairo渲染不会对字体进行亚像素定位,所以这里可能需要这样做。
在真正的等宽字体中,这并不重要,因为每个字形都有相同的宽度,所以会得到相同的处理,但是在全宽和半宽字符混合的情况下,除非字形恰好是整数像素宽(在字体大小为14的情况下发生),否则舍入将不会是一致的。
请注意,在Windows上,对于大多数小字体,像MS Gothic这样的字体将在字体文件中使用自定义的内置位图来渲染,而不是渲染轮廓和它们的度量。这使得所有的字形必须有固定的像素宽度。然而,这确实会导致典型的老派"锯齿"渲染风格。
如果您正在生成格式化的文本文件,那么您真的无能为力。你只能希望你的目标受众有合适的日文等宽字体,并且可以切换到特定的字体大小。
我同意Clement的评论,使用HTML来获得你想要的渲染会更健壮、更现代、更方便。使用HTML进行布局使您不必担心排列字符,并且允许您获得比所有半宽度等宽的拉丁字体更美观的字体。