TypeKit 字体将 ss 转换为 ß

Posted

技术标签:

【中文标题】TypeKit 字体将 ss 转换为 ß【英文标题】:TypeKit font converts ss to ß 【发布时间】:2017-10-31 03:33:49 【问题描述】:

在一个包含德语内容的网站上,我们正在使用标准脚本通过 Adob​​e 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

【讨论】:

谢谢,经过反复试验,我发现noneno-common-ligatures 的值会阻止这种行为。 老实说我不确定,它只是让我想起了连字... :) 幸运的猜测 是的,我也认为它应该与连字有关。但是我发现这个默认行为非常奇怪,因此我不确定 - 我还没有找到(或试图找到)这个 CSS 属性的可能设置的完整列表。 字体在排版方面是完整的“剧本”,包括有关“默认”应应用哪些印刷功能以及“按脚本”应用哪些印刷功能的说明。 Basel Neue 可能带有一个默认的排版调整列表,其中包括常见的连字,当被问及如何排版德语文本时,可能还有额外的规则,例如 s+s→ß(字体是游戏 ROM 的排版等价物。它们包含 所有规则,字体引擎只是设置引导参数,然后传入字符串输入变成形状输出)

以上是关于TypeKit 字体将 ss 转换为 ß的主要内容,如果未能解决你的问题,请参考以下文章

区分 ß 和 ss 的 SQL 查询

nvarchar 类型的不区分大小写的主键,其中 ß != ss

javascript Typekit字体的示例嵌入代码

php 添加Typekit字体

css 加载并使用TypeKit字体

scss 隐藏内容,直到Typekit字体加载或超时。