【问题标题】:How to set lining numerals in a webfont?如何在网络字体中设置衬里数字?
【发布时间】:2023-03-22 16:50:01
【问题描述】:

我一直在与括号中的网络字体(eot、ttf、woff)集成,但似乎无法正确使用旧式数字

.lnum {
    -moz-font-feature-settings:"lnum" 1; 
    -moz-font-feature-settings:"lnum=1"; 
    -ms-font-feature-settings:"lnum" 1; 
    -o-font-feature-settings:"lnum" 1; 
    -webkit-font-feature-settings:"lnum" 1;  
    font-feature-settings:"lnum" 1;
}

我开始怀疑我使用的字体是否有正常的数字,因为我已经多次检查了所有内容。有没有办法检查网络字体中包含的所有特殊字符,并可能通过特殊字符代码调用数字?

【问题讨论】:

    标签: css webfonts opentype


    【解决方案1】:

    如果使用的字体有衬里数字,您使用font-feature-settings 及其供应商前缀变体的规则就是这样工作的(带有值"lnum=1" 的语法已过时,但在这里并没有真正干扰)。在 Windows 系统中,您可以通过将字体设置为 Constantia 来检查它是否工作(在现代浏览器中),默认情况下它具有旧样式编号,并且可以通过字体功能设置选择衬里数字。

    您可以使用免费的DTL OTMaster Light 程序检查 .ttf 字体以查看它是否包含衬里数字(选择“工具”、“'GPOS'/'GSUB'表格查看器”、选择“'GSUB'表格”在“布局表”下拉列表中,然后在“功能”下拉列表中查找“lnum”)。

    在从一种字体格式到另一种字体格式的转换中(例如从 .ttf 到 .woff),字体功能很有可能会丢失,具体取决于转换软件。使用FontSquirrel WebFont generator 时,选择“专家”模式并勾选“保留所有功能”或在“OpenType 功能:”中列出您要保留的功能。如果这无法保留您需要的功能并且您希望使用例如仅从字体中衬里数字,请尝试“Opentype Flattening:”选项。

    【讨论】:

    • 最终使用 fontsquirrel 而不是使用原始 Web 字体将打印字体转换为 Web。事实证明,webfont 版本只是缺少我怀疑的衬里数字。谢谢!
    猜你喜欢
    • 2020-01-22
    • 2015-03-11
    • 2015-01-05
    • 2014-04-27
    • 2018-07-05
    • 2013-05-22
    • 2014-12-08
    • 1970-01-01
    • 2014-02-23
    相关资源
    最近更新 更多