TypeKit 字体将 ss 转换为 ß
Posted
技术标签:
【中文标题】TypeKit 字体将 ss 转换为 ß【英文标题】:TypeKit font converts ss to ß 【发布时间】:2017-10-31 03:33:49 【问题描述】:在一个包含德语内容的网站上,我们正在使用标准脚本通过 Adobe TypeKit (Basel Neue
) 集成自定义字体。然而,字体将 任何 出现的 ss
显示为 ß
- 这在许多情况下没有意义(例如,Wasser
将显示为 Waßer
等)。 p>
我不确定这是否是 OpenType 功能,因此可以通过 CSS 设置进行控制。至少我无法识别这样的 OpenType 功能here。我在网上也找不到任何关于这种情况的信息——只有关于其他方式的信息(ß
到ss
)。
有谁知道为什么会发生这种情况,或者 TypeKit 设置是否可以控制这种行为?
【问题讨论】:
请注意,您始终可以通过检查文本而不是查看 CSS,而是查看computed
规则来判断正在应用的内容。例如,对于您问题中的文本,SO 没有明确的规则,开发工具显示font-variant-ligatures: normal
。知道了这一点,我们现在可以强制font-variant-ligatures: none
防止字体的连字意外启动。
【参考方案1】:
对我来说,这看起来像是连字问题。 试试这个:
font-variant-ligatures: normal;
font-variant-ligatures: none;
font-variant-ligatures: common-ligatures; /* <common-lig-values> */
font-variant-ligatures: no-common-ligatures; /* <common-lig-values> */
font-variant-ligatures: discretionary-ligatures; /* <discretionary-lig-values> */
font-variant-ligatures: no-discretionary-ligatures; /* <discretionary-lig-values> */
font-variant-ligatures: historical-ligatures; /* <historical-lig-values> */
font-variant-ligatures: no-historical-ligatures; /* <historical-lig-values> */
font-variant-ligatures: contextual; /* <contextual-alt-values> */
font-variant-ligatures: no-contextual; /* <contextual-alt-values> */
font-variant-ligatures: contextual; /* <no-historical-ligatures> <common-ligatures> */
/* Global values */
font-variant-ligatures: inherit;
font-variant-ligatures: initial;
font-variant-ligatures: unset;
来自 MDN: https://developer.mozilla.org/en/docs/Web/CSS/font-variant-ligatures
【讨论】:
谢谢,经过反复试验,我发现none
和no-common-ligatures
的值会阻止这种行为。
老实说我不确定,它只是让我想起了连字... :) 幸运的猜测
是的,我也认为它应该与连字有关。但是我发现这个默认行为非常奇怪,因此我不确定 - 我还没有找到(或试图找到)这个 CSS 属性的可能设置的完整列表。
字体在排版方面是完整的“剧本”,包括有关“默认”应应用哪些印刷功能以及“按脚本”应用哪些印刷功能的说明。 Basel Neue 可能带有一个默认的排版调整列表,其中包括常见的连字,当被问及如何排版德语文本时,可能还有额外的规则,例如 s+s→ß
(字体是游戏 ROM 的排版等价物。它们包含 所有规则,字体引擎只是设置引导参数,然后传入字符串输入变成形状输出)以上是关于TypeKit 字体将 ss 转换为 ß的主要内容,如果未能解决你的问题,请参考以下文章