IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.12.2.8 IfcFontWeight(字体粗细)

8.12.2.8.1 语义定义(Semantic definition)

_IfcFontWeight_ 类型定义字体的粗细。可选值包括:

  • normal
  • bold
  • 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900

字体数据通常具有一个或多个属性,其值为描述字体"粗细"的名称。这些粗细名称尚未形成公认的通用含义,其主要作用在于区分同一字体系列中不同黑度的字型。不同字体系列间的使用存在显著差异:例如,您认为的粗体字型可能被描述为_Regular、Roman、Book、Medium、Semi-或_DemiBold、Bold_乃至_Black,具体取决于该字体设计中"常规"字型的黑度。由于名称使用缺乏标准,CSS1中的粗细属性值采用数字刻度,其中'400'对应字体系列的"常规"文本字型。该字型关联的粗细名称通常为_Book、Regular、Roman、Normal_或有时为_Medium_。

字体系列内其他粗细与数值权重的关联仅旨在保持该系列内部的黑度排序。典型情况下的赋值遵循以下启发式规则: * 若字体系列已采用九级数值刻度,应直接映射字体粗细 * 若同时存在标为_Medium_和_Book、Regular、Roman_或_Normal_的字型,则_Medium_通常对应'500' * 标为"Bold"的字体通常对应权重值'700' * 若系列内粗细等级少于9级,默认补位算法如下:若'500'未分配,则分配与'400'相同字体;若'600'、'700'、'800'或'900'中任一值未分配,则分配至下一更粗的已分配关键字,若无更粗字型则分配至下一较细字型;若'300'、'200'或'100'未分配,则分配至下一较细的已分配关键字,若无较细字型则分配至下一较粗字型

以下两个示例说明该过程。假设"Example1"系列包含四种由浅至深的粗细:Regular、Medium、Bold、Heavy;"Example2"系列包含六种粗细:Book、Medium、Bold、Heavy、Black、ExtraBlack。注意第二个示例中决定不将"Example2 ExtraBlack"分配至任何数值。

可用字型        | 分配值    | 补位值
----------------------+---------------+-------------------
"Example1 Regular" | 400 | 100, 200, 300
"Example1 Medium" | 500 |
"Example1 Bold" | 700 | 600
"Example1 Heavy" | 800 | 900
可用字型        | 分配值    | 补位值
----------------------+---------------+-------------------
"Example2 Book" | 400 | 100, 200, 300
"Example2 Medium" | 500 |
"Example2 Bold" | 700 | 600
"Example2 Heavy" | 800 |
"Example2 Black" | 900 |
"Example2 ExtraBlack" | (未分配) |

8.12.2.8.2 形式化命题(Formal propositions)

WR1
SELF IN ['normal','small-caps','100','200','300','400','500','600','700','800','900']
表 8.12.2.8.A

8.12.2.8.3 形式化表示(Formal representation)

TYPE IfcFontWeight = STRING;
 WHERE
	 WR1 : SELF IN ['normal','small-caps','100','200','300','400','500','600','700','800','900'];
END_TYPE;

8.12.2.8.4 参考文献