如何在网络字体中设置衬里数字?

Posted

技术标签:

【中文标题】如何在网络字体中设置衬里数字?【英文标题】:How to set lining numerals in a webfont? 【发布时间】:2015-03-28 20:38:06 【问题描述】:

我一直在与括号中的网络字体(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;

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

【问题讨论】:

【参考方案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 版本只是缺少我怀疑的衬里数字。谢谢!

以上是关于如何在网络字体中设置衬里数字?的主要内容,如果未能解决你的问题,请参考以下文章

获取系统字体使用的 Raleway 衬里数字

如何在安装在gentoo的emacs 24中设置字体大小

在 html 中设置极小的字体大小

c# WinForm中如何在代码中设置控件的padding 设置Label的字体

如何在 ActionBar 标题中设置自定义字体?

如何在summernote中设置字体大小?