Fonts web字体是否需要同时具有粗体/斜体文件?

Fonts web字体是否需要同时具有粗体/斜体文件?,fonts,Fonts,在桌面软件(如MS WORD)中,为了对unicode字体使用粗体或斜体样式,我们必须安装单独的文件: MyFont.ttf MyFont-Bold.ttf MyFont-Italics.ttf ..... 但在CSS中,我们只需要.ttf文件,浏览器本身就可以使用粗体/斜体。所以,我的问题是-浏览器如何“创建”这些样式而不提供专门用于粗体和斜体的文件?关于这个问题,桌面应用程序和浏览器有什么区别?或者为什么…bold.ttf和…italics.ttf文件曾经存在,并且根本没有集成到主ttf文

在桌面软件(如MS WORD)中,为了对unicode字体使用粗体或斜体样式,我们必须安装单独的文件:

MyFont.ttf
MyFont-Bold.ttf
MyFont-Italics.ttf
.....

但在CSS中,我们只需要.ttf文件,浏览器本身就可以使用粗体/斜体。所以,我的问题是-浏览器如何“创建”这些样式而不提供专门用于粗体和斜体的文件?关于这个问题,桌面应用程序和浏览器有什么区别?或者为什么
…bold.ttf
…italics.ttf
文件曾经存在,并且根本没有集成到主
ttf
文件中?

浏览器有自己的人造粗体和斜体算法,用于在字体没有自己的粗体和斜体字体时模拟粗体和斜体。而且,它们并不是唯一带有人造粗体和斜体的应用程序——一些图像编辑应用程序,如Photoshop也有

字体具有自己的粗体和斜体字体的原因是,变体字形通常对每种字体都是唯一的,浏览器无法准确模拟。例如,人造斜体算法只是以斜体样式倾斜轮廓,而不是实际将其斜体化。出于这个原因,CSS将
斜体
斜体
都定义为
字体样式
属性的值,尽管实际上是这样


字体的粗体和斜体变体存储在单独的字体文件中的原因是,文件格式一开始就是这样设计的。TrueType确实提供了一种
.ttc
文件格式,它代表TrueType集合,将多种字体组合到一个文件中。但是由于
@font-face
规则是为一次使用一种字体而设计的,
.ttc
文件不能与它一起使用。

我忘了。。。大写字母呢?2017年年中更正:字体集合从OpenType 1.8开始就与轮廓无关,因此它不再是“truetype集合”(最后一点),它现在只是OpenType集合,而与truetype、cff、位图或svg轮廓表无关。