Chrome变量中的垂直字符间距

Posted

技术标签:

【中文标题】Chrome变量中的垂直字符间距【英文标题】:Vertical character spacing in Chrome variable 【发布时间】:2022-01-14 19:33:23 【问题描述】:

我使用 FontForge 将 SVG 字体转换为 OTF。我知道原始字体有一些错误,但真的不认为这些错误会导致以下问题:

使用 CSS 时 writing-mode:vertical-lr; text-orientation:upright,我得到以下结果。 Firefox 渲染是完美的,但由于某种原因,结果似乎在 Chrome(版本 96)中对某些字母组合进行了紧缩处理。我已经尝试在 FontForge 中做所有我能想到的事情,比如清除字距调整表、切换“旧字距调整”和“微软字距调整”的选项等。似乎对结果没有任何影响。

我知道一般浏览器不能很好地支持垂直方向,但是很明显 Arial 字体在 Chrome 下可以完美呈现,所以我认为我必须采取一些措施来解决这个问题。

字体是在 FontForge 中从使用 vert-adv-y 的 SVG 字体生成的。该参数的值在 SVG 中是正确的(SVG 有其他错误,但我认为它们在这里没有任何影响)。我正在链接导出的 OTF 文件的副本。也许有人可能会在那里发现某种字距调整或字母提前问题。

或者 Chrome 正在执行某种自动字距调整,在这种情况下,为什么 Arial 字体不会发生这种情况?也许 Arial 字体有 GPOS 设置,而我的字体有旧式字距调整?我真的不知道。

LINK TO DOWNLOAD OTF FILE。 虽然图像左侧的字母是小写的,但它们是使用大写键 A、B、C 等生成的。

【问题讨论】:

【参考方案1】:

好的,所以这似乎是问题似乎可以自行解决的那些奇迹般的实例之一。我重新保存了该文件,然后将其踢到运行 FontForge 的微服务中,该微服务将 SVG 转换为 OTF,当它重新加载时,一切看起来都很好。 我仍然不知道为什么,因为我没有更新微服务,也没有更改 SVG 生成代码 AFAIK。我所做的只是升级 Chrome(新版本一直显示旧文件存在问题),但它仍然应该发送相同的数据。不过,我没有抱怨!

【讨论】:

以上是关于Chrome变量中的垂直字符间距的主要内容,如果未能解决你的问题,请参考以下文章

Delphi中的GDI行距?

Chrome 和 Safari 中的双边框间距

chrome网页英文数字字体间距特别大该怎样设置?

UIScrollView 上具有垂直间距的动态 UIButton

stackView 中的 StackView 不能通过 swift 使用它的间距

ASP .Net 菜单项垂直间距