码迷,mamicode.com
首页 > 其他好文 > 详细

IfcTextStyleFontModel

时间:2021-01-05 11:27:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:loading   cte   expr   nta   定义   list   sign   电子   HERE   

根据W3C对级联样式表的定义:

设置字体属性将是样式表最常见的用途之一。但是,目前还没有一个定义良好且普遍接受的分类法来对字体进行分类,适用于一个字体系列的术语可能不适用于其他字体系列。例如,“斜体”通常用于标记倾斜文本,但倾斜文本也可以标记为倾斜、倾斜、倾斜、草书或Kursiv。因此,将典型字体选择属性映射到特定字体并不是一个简单的问题。

字体匹配

因为没有公认的、通用的字体属性分类法,所以必须小心地将属性与字体面进行匹配。属性按定义良好的顺序进行匹配,以确保此匹配过程的结果在用户代理之间尽可能一致(假设每个代理都有相同的字体库)。

①用户代理制作(或访问)一个数据库,其中包含UA知道的所有字体的相关CSS1属性。UA可能知道某个字体,因为它已在本地安装或以前已通过web下载。如果有两种字体具有完全相同的属性,则忽略其中一种。

②对于给定的元素和该元素中的每个字符,UA组装适用于该元素的字体属性。UA使用完整的属性集,使用“字体系列”属性来选择一个暂定字体系列。其余的属性将根据每个属性描述的匹配标准针对族进行测试。如果所有剩余属性都匹配,那么这就是给定元素的匹配字体。

③如果第2步处理的“字体系列”中没有匹配的字体,并且字体集中有下一个可选的“字体系列”,则使用下一个可选的“字体系列”重复第2步。

④如果有一个匹配的字体面,但它不包含当前字符的字形,并且如果字体集中有下一个可选的“字体系列”,则使用下一个可选的“字体系列”重复步骤2。

⑤如果在2中选择的系列中没有字体,则使用依赖于UA的默认“字体系列”,并重复步骤2,使用可在默认字体中获得的最佳匹配。

 

(可以优化上述算法,以避免重新访问每个字符的CSS1属性。)

上面(2)中的每个属性匹配规则如下:

①首先尝试“字体样式”如果UA的字体数据库中有一张标有CSS关键字“italic”(首选)或“oblique”的人脸,则“italic”将得到满足。否则,值必须完全匹配,否则字体样式将失败。

②下一步将尝试使用“字体变体”“normal”匹配未标记为“small caps”的字体;“small caps”匹配

(1)标记为“small caps”的字体,

(2)合成小大写的字体,

(3)将所有小写字母替换为大写字母的字体。小型大写字体可以通过电子缩放普通字体的大写字母来合成。

④“font-weight”下一步匹配,它将永远不会失败。(请参阅下面的“字体粗细”。)

⑤“字体大小”必须在UA相关公差范围内匹配。(通常,可缩放字体的大小四舍五入到最接近的整像素,而位图字体的公差可能高达20%。)进一步的计算是基于使用的“字体大小”值,而不是指定的值。

 

继承的名称属性用于定义字体名称,特别是在没有提供字体系列(列表)的情况下。

注:对应的CSS1定义是字体属性(‘Font-family‘、‘Font-style‘、‘Font-variant‘、‘Font-weight‘)。

IFC2x3中增加的新实体。

 

Formal Propositions

RuleDescription
MeasureOfFontSize

尺寸应该用正的长度来表示。

 

 

 

技术图片

 

 

Attribute inheritance

#AttributeTypeCardinalityDescriptionC
IfcPresentationItem
IfcPreDefinedItem
1 Name IfcLabel [1:1]

用来标识预定义项的字符串。字符串的允许值在子类型级别声明。

X
IfcPreDefinedTextFont
IfcTextStyleFontModel
2 FontFamily IfcTextFontName L[1:?]

该值是按优先级排列的字体系列名称和/或通用系列名称列表。第一个列表项具有最高优先级,如果此字体失败,则使用下一个列表项。最后一个列表项(如果可能)应该是泛型族。

 

X
3 FontStyle IfcFontStyle [0:1]

font style属性在字体系列中的普通(有时称为“罗马”或“直立”)、斜体和斜体之间进行选择。

X
4 FontVariant IfcFontVariant [0:1]

font variant属性在普通大写和小写之间进行选择。

注意,它的引入是为了以后能够完全支持CSS1。

X
5 FontWeight IfcFontWeight [0:1]

font weight属性选择字体的权重。

注:除了“normal”和“bold”之外,还引入了其他值,以便以后完全符合CSS1支持。

X
6 FontSize IfcSizeSelect [1:1]

字体大小提供文本字体的大小或高度。

注意:允许使用以下值,<IfcLengthMeasure,对于正值,长度单位在IfcUnitAssignment处全局定义。

X
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

EXPRESS Specification

ENTITY IfcTextStyleFontModel
 SUBTYPE OF (IfcPreDefinedTextFont);
  FontFamily : LIST [1:?] OF IfcTextFontName;
  FontStyle : OPTIONAL IfcFontStyle;
  FontVariant : OPTIONAL IfcFontVariant;
  FontWeight : OPTIONAL IfcFontWeight;
  FontSize : IfcSizeSelect;
 WHERE
  MeasureOfFontSize : (‘IFCMEASURERESOURCE.IFCLENGTHMEASURE‘ IN TYPEOF(SELF.FontSize)) AND (SELF.FontSize > 0.);
END_ENTITY;

 

IfcTextStyleFontModel

标签:loading   cte   expr   nta   定义   list   sign   电子   HERE   

原文地址:https://www.cnblogs.com/herd/p/14221539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!