Core Text 中的规范字体粗细是啥?

Posted

技术标签:

【中文标题】Core Text 中的规范字体粗细是啥?【英文标题】:What are the canonical font weights in Core Text?Core Text 中的规范字体粗细是什么? 【发布时间】:2015-09-14 17:57:40 【问题描述】:

GDI 和 Pango 都有一个规范字体粗细列表,范围为“细、超轻、轻、正常、中等、半粗体、粗体、超粗体、粗体”。出现CSS does too。

但是,我在 OS X 上没有看到这样的 Core Text(甚至 NSFont/NSFontDescriptor)字体列表。相反,我看到的是

kCTFontWeightTrait,记录为从 -1.0 到 1.0,其中 0.0 是“常规或中等”(所以是正常和中等还是只是中等?),并且 -[NSFontManager fontWithFamily:traits:weight:size:],其权重参数记录为从 0 到 15,其中 5 是正常/书(我假设它介于轻和正常之间,如果不正常的话),9 及更高的都是粗体

那么,上述规范权重名称的等价物是什么?谢谢。

【问题讨论】:

【参考方案1】:

标准名称在标题中给出:

APPKIT_EXTERN const CGFloat NSFontWeightUltraLight NS_AVAILABLE_MAC(10_11);
APPKIT_EXTERN const CGFloat NSFontWeightThin NS_AVAILABLE_MAC(10_11);
APPKIT_EXTERN const CGFloat NSFontWeightLight NS_AVAILABLE_MAC(10_11);
APPKIT_EXTERN const CGFloat NSFontWeightRegular NS_AVAILABLE_MAC(10_11);
APPKIT_EXTERN const CGFloat NSFontWeightMedium NS_AVAILABLE_MAC(10_11);
APPKIT_EXTERN const CGFloat NSFontWeightSemibold NS_AVAILABLE_MAC(10_11);
APPKIT_EXTERN const CGFloat NSFontWeightBold NS_AVAILABLE_MAC(10_11);
APPKIT_EXTERN const CGFloat NSFontWeightHeavy NS_AVAILABLE_MAC(10_11);
APPKIT_EXTERN const CGFloat NSFontWeightBlack NS_AVAILABLE_MAC(10_11);

要了解他们的价值观,只需依次记录每一个。

NSLog(@"%f", NSFontWeightUltraLight);
NSLog(@"%f", NSFontWeightThin);
// ... need I go on?

【讨论】:

哦,太好了。这是哪个标头?今天早些时候看的时候完全错过了>////> 哦,等等,我才意识到为什么我错过了它:我只有 10.10 的标题:/ 很惊讶它们现在才被添加...... 我认为直到现在还没有规范的权重。 是的,this 确认了这一点。谢谢!由于我需要在 10.7 及更高版本上运行,我只需从 10.11 的框中获取常量的值,并在我的需求发生变化时直接切换到使用常量。

以上是关于Core Text 中的规范字体粗细是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 pdfkit 时,我可以在同一段落中混合字体粗细吗?

Xcode 中的超轻字体粗细显得太细

Firefox 开发人员忽略字体粗细

表格元素忽略Firefox 4中的字体粗细?

如何更改文本的笔画粗细?

Internet Explorer 8 忽略 CSS 中的字体粗细