Unicode 有一组用于绘制简单图形的字符。这是维基百科的一个例子:
┌─┬┐ ╔═╦╗ ╓─╥╖ ╒═╤╕
│ ││ ║ ║║ ║ ║║ │ ││
├─┼┤ ╠═╬╣ ╟─╫╢ ╞═╪╡
└─┴┘ ╚═╩╝ ╙─╨╜ ╘═╧╛
有 U+2588,全块:
█████
█████
█████
以上内容是否正确渲染取决于您的浏览器使用哪种字体来渲染它。对于某些字体,这些图形可以正确呈现,而对于其他字体,您会看到行或列之间或两者之间的间隙。对于其他字体,行可能无法正确排列,尤其是对于非常长的行。
在创建 truetype 字体时,我需要做些什么来确保这样的字符正常工作?
我在尝试制作包含模式 7 块字形的 truetype 字体时遇到了这个问题。我使用 fontforge 和脚本将 PCF 位图字体转换为 truetype。你可以在这里看到一个例子。(您也可以下载字体,因为它是一种网络字体。)
在 Firefox/Linux 上,此页面会正确呈现,直到您放大/缩小 (ctrl-shift-+)。在 Chrome 上,任何缩放都看起来很糟糕。在这两种情况下,细线在水平和垂直方向都是可见的。
这是我看到的截图:
在开发创建网页的软件时,我还在各种 Linux 终端模拟器中使用过这种字体,并且总是会发生同样的事情。
以下是我的帖子在 Firefox 中的样子供参考:
但在编辑框中它看起来好多了(在任何缩放):
Chrome 设法使框字形正确,但仅在编辑框中,并且完整块是错误的:
我知道这很可能是由于提示、字符替换和不同字体渲染器的组合,但是在创建字体时我能做些什么吗?