OpenType

✍ dations ◷ 2025-04-26 12:26:36 #OpenType

OpenType,是一种可缩放字体(scalable font)电脑字体类型,采用PostScript格式,是美国微软公司与Adobe公司联合开发,用来替代TrueType字体的新字体。这类字体的文件扩展名有.otf.ttf.ttc,类型代码是OTTO,现行标准为OpenType 1.9。

OpenType最初发表于1996年,并在2000年之后出现大量字体。它源于微软公司的TrueType Open字体,TrueType Open字体又源于TrueType字体。OpenType font包括了Adobe CID-Keyed font技术。Adobe公司已经在2002年末将其字体库全部改用OpenType格式。到2005年大概有一万多种OpenType字体,Adobe产品占了三分之一。

OpenType之前的主流是苹果公司和微软开发的TrueType类型,还有Adobe公司开发的Type 1(PostScript)字体类型。微软在1994年独自开发了“TrueType Open”类型,之后1996年Adobe加入开发,增加了其在Type 1字体中使用的对字体轮廓的支持,OpenType这个名字于是便用来称呼合并之后的技术。

在后来的十几年中,Adobe和微软继续开发改进OpenType格式,在2005年末,OpenType开始申请成为国际标准组织(ISO)的公开标准。这个新标准已经升级到OpenType 1.4,以适应ISO语言标准的一些变化,之后其被称为“开放字体类型(Open Font Format)”。这个标准在2007年3月以ISO/IEC 14496-22发布。

OpenType于2016年发布了1.8版规范,引入了“可变字体”的功能。支持通过调节一定的参数来自由改变文字的形状。

在OpenType1.9中,引入了COLR表的第二个版本,它增加了额外的图形功能。增强版最初由谷歌提出并与微软联合开发。增强的图形功能包括对三种类型的渐变、仿射变换、合成和混合模式的支持,以及定义可重用组件的能力。这些增强功能为COLR表提供了“SVG”表的所有图形功能,除了描边之外,应用程序应该支持这些功能。它还添加了合成和混合模式,对“SVG”表的支持被认为是可选的(因为这些在SVG中作为滤镜效果实现)。此外,COLR表的增强功能与OpenTypeFontVariations集成在一起,而“SVG”表则无法做到这一点。自版本98起,Chromium浏览器引擎支持增强的COLR表。

OpenType使用TrueType字体通用的sfnt架构,但其加入若干“智能字体”(smartfont)选项,可以加强字体的字形和语言支持能力。OpenType字体中的字形(glyph)、轮廓数据可以在两种格式中任选其一:一个是在'glyf'表中TrueType格式轮廓,另一个是在'CFF '表中的CFF(压缩字体格式,Compact Font Format)格式轮廓。CFF轮廓数据是基于PostScript语言Type 2字体格式。表格名'CFF '长度为四个字符,并且以一个空格字符结尾。

在如版式等大多数情况下,轮廓数据格式是什么类型并不重要,但这两种格式的区别在图元光栅化(rasterisation)的时候就有区别。而单从“OpenType”一词中看不出来使用的是哪种数据格式,所以有时候使用OpenType (PostScript flavor)、OpenType CFF、或者OpenType (TrueType flavor)等称呼加以区别。

OpenType的主要特征有:

与苹果公司的Apple Advanced Typography(简称AAT,旧名GX Typography)比较,OpenType在字形选项上更不灵活,但是在语言相关的选项和支持略胜一筹。OpenType比AAT更为成功,它现在有大量的字体和支持的应用程序,使AAT成为过时的技术。AAT的单平台性能使其缺乏苹果以外的大厂商的支持。

从开发者的角度来说,在一般情况下OpenType比AAT更容易开发。首先,简单声明替换和OpenType的定位比AAT的状态表更简单易懂。其次,Adobe的认证策略不需要改变源代码,运行第三方字体编辑应用程序,如FontLab、FontMaster去添加有关性能支持。虽然Adobe的文本驱动代码支持不如微软的单独开发工具更为直观,但是它的VOLT(视觉开放字体版式工具,Visual OpenType Layout Tool),一个制作字体的工具集成软件还是比较受欢迎的。

另一个区别是,OpenType支持framework(如微软的Uniscribe),若要处理阿拉伯语等语言的时候只需要提供一些特殊的语言处理知识。而在AAT中,ATT字体开发者需要对该语言字体的全面认识。这意味着AAT可以处理任何特殊语言,但是需要字体开发者的相当高度的语言知识。另外,OpenType字体更容易制作,但只能支持应用程序和操作系统能够识别的复杂文字。在支持OpenType之前,Adobe针对高级文字处理中曾推出“multiple master fonts”,但其缺乏OpenType的异体字和语言控制,在字体形状上有更多的控制参数。

OpenType支持有以下几个方面:所有应用程序和多数操作系统能在使用旧字体的同时使用OpenType字体;特别要注意的是,万国码的拓展语言支持;支持阿拉伯语、印度语言等“复杂文本”;以及英语等拉丁文本的高级字形支持等。

在微软的操作系统中,OpenType TT字体(.TTF)能向后兼容,因此其支持所有Windows系统。OpenType PS字体(.OTF)支持Windows 2000或以后的版本。在Windows 95/98/NT/Me系统中需要安装Adobe Type Manager才能使用基本的罗马字符支持。

通过万国码(Unicode)的拓展语言,可以在大多数的视窗应用程序中同时对OpenType和TrueType支持,包括Publisher,大多数的Adobe应用程序,微软Office 2003(但Word 2002不行),以及多数的Mac OS应用程序,包括苹果自己开发的TextEdit和Keynote。在Mac OS X中,通过文字处理Mellel,OpenType得到了全面支持。

OpenType通过微软的Office和Publisher等软件支持复杂书写文本,Adobe InDesign也提供日文的拓展OpenType功能,但是不直接支持中东和印度文本——Adobe为支持阿拉伯语、希伯来语等中东语言,单独发行另外的InDesign版本。

拉丁语言文本的高级字形支持主要是通过Adobe的应用程序,如Adobe InDesign、Adobe Photoshop和Adobe Illustrator来支持。QuarkXPress 6.5及其以下版本不支持万国码,因此含有WinANSI/MacRoman字符表外的文字在OpenType字体中将无法正常显示(同理,在其他使用万国码的字体格式也不行)。Corel公司的CorelDRAW不支持OpenType字形功能。尽管如此,Quark公司在2006年5月发布的QuarkXPress 7中开始支持OpenType,和Adobe程序达到类似的效果。

另外,Windows Presentation Foundation管理代码执行支持OpenType CFF字体和一些高级字形功能,如连写、旧体数字、花体字形、拐点、超文本和次文本,小型大写字母、字形替换、多重基线、前后/风格化字间距调整、行间调整、注释字符等等。

Mac OS X v10.4及其之后系统中的Apple Advanced Typography也支持OpenType拉丁文本语言的高级字形功能,如小型大写字母,旧体数字和多种连写。但是它不支持前后字母间距调整、定位格式、字形倒序等,因此Mac OS X v10.4不能通过OpenType支持阿拉伯语、印度的文字——这些文本通过苹果自己的AAT字体来支持。

在自由软件环境,如Linux中,OpenType支持是通过FreeType项目来支持的,包括自由执行X Window System,如Xorg。

在Mac OS X v10.4(Tiger)中,苹果公司开始在操作系统中支持OpenType功能,减轻了程序开发者的任务,但是仍有一些需要注意的地方:

2005年Adobe在其创意软件套装Adobe Creative Suite中发表了一个新的技术“外字”(Gaiji)解决方案。

所谓“外字”,源自日语的“表外汉字”(日语:表外漢字,hyōgai kanji)。与拉丁语言不同,在东亚表意文字系统如中文、日文中,没有固定数量的字符集。一般字符集只含有8,000到15,000的常用字,另外数万个非常用字、生僻字,往往没有在各国的标准中给予编码。另外一个情况是异体字:一个表意文字(汉字)在不同的历史时期、地域产生了不同的字形,而一些地名人名等专有名字必须要使用传统的写法,需要使用这些冷僻字形,造成了生僻字问题,日语中称为“外字”问题。

为了处理这些冷僻字,先前已经出现过很多方案,比如在万国码中的私用区域(Private use area)增加编码等。这样的处理方法无法在制定环境以外的地方使用,基于私用区域编码的万国码制作的文档无法通用。另外一个办法就是将其处理成图像,这又导致文字排版的麻烦,因为版面指令无法作用于图像,无法被当成文本搜索,而且由于机器从字体描绘字形和描绘图像的机制完全不同,这样的处理导致插入的冷僻字看起来很突兀。

SING技术是和Adobe Creative Suite 2一起发布的,它允许用户创建新字形,每个新字形作为一个独立的字体打包。这样打包出来的字形称为。这种格式通过Adobe公开的,且基于OpenType。这个包的内容包括字形的TrueType或CFF轮廓样式,标准OpenType表格,声明字形的尺寸和组合行为,以及元数据,附加信息,如字形包的认证、所属,还有读音或者部首分类等语言方面的分类等。SING字形包也可以使用Fontlab公司的SigMaker3程序创建。

SING(Smart INdependent Glyphlets,智能独立字形包)的规范允许字形包随同文件一起传送,这样包含SING字符的文件也是可携带的,而又不会字符乱码、异常显示。由于字形包的基础是OpenType字体,标准字体机制可以对其进行正常描画。SING规范也可以表述成XML格式,包括在二进制格式中重建字形的所有必要数据。一般情况下,一个字形包需要1-2 kB大小的容量。

OpenType版式标签含有4个字符串,含有字体版式中文本,语言系统,功能和基线等信息。微软的版式标签登陆中,包含了这些标签的使用和命名方法。OpenType特征都是由这些标签信息来体现的,创建特征文本来描述字符如何根据指令来排列。这些特征文本还可以通过高级字体编辑器如FontlabStudio和AsiaFont Studio来制定。

文本标签用来识别OpenType字体中的文本类型。每个标签对应Unicode中一个连续的字符区。每个字符标签含有4个或更少的小写字母。如,包含arab来识别阿拉伯字母表,cyrl对应西里尔字母表,latn对应拉丁字母表,等等。

语言体统标签识别OpenType字体中支持的语言系统。如包含ARA对应阿拉伯语,ESP对应西班牙语,HYE对应亚美尼亚语等等。这个代码类似于ISO 639-2,但不尽相同。

功能标签用来识别字符的一些字形特征和功能。

基线标签包含横、竖两个书写方向的信息。

相关

  • 头颈部皮质延髓束(英语:Corticobulbar tract,亦称为皮质核束)和皮质脊髓束一起组成锥体束,分别最终发往脑神经的各随意运动核,和脊髓前角运动细胞,支配肢体运动。是躯体运动传导通路的一
  • Indiana University-Purdue University Indianapolis印第安纳大学与普渡大学印第安纳波利斯联合分校(英文:Indiana University-Purdue University Indianapolis,简称IUPUI)又译印第安那波利斯普渡大学、印地安那大学-普度大学印地
  • 大礼服 (大日本帝国)大礼服(たいれいふく)是日本帝国从明治时期至终战为止使用的宫廷服(Court dress)。这种服装在明治初期自欧洲引入,在宪法颁布后确定。大礼服分为文官大礼服、有爵者大礼服、宫内
  • 陈瑄 (明朝宦官)陈瑄(?年-1475年),字德新,天顺时期的御马监太监。天顺年间,担任御马监太监。成化元年(1465年),负责监督军队事务,征讨剿平藤峡盗乱。成化年间,留守两广。成化五年(1469年),开设总督府、总兵
  • 钱实甫钱实甫(1909年-1968年),名鼎�,字实甫,以字行,湖南常德县人,中国历史学家。钱实甫出生于一个中落的书香人家,自幼即受到旧学熏陶。民国二十一年(1932年)从国立北平大学法学院毕业,南下两广
  • 菅纫姿菅纫姿(1991年10月19日-),汉族,中国女演员。2012年首登湖南卫视《天天向上》栏目而崭露头角,近年在热播剧《待嫁十年》《神雕侠侣》《爱的妇产科》《何以笙箫默》《合伙人》《猎场
  • 非乐墨家系列条目非乐,是墨子的一个主张。墨子认为作乐会加重人民的负担,同时耽误人的工作,因此作乐会影响国家的政治经济。墨子认为仁者办事,必定考虑利益天下之事。对人民有利的就
  • 我爱黑涩棒棒堂节目列表 (2011年)Channel V(台湾)的明星综艺节目 ─《我爱黑涩棒棒堂》每集设有一个主题(有时会横跨多集),以下是2011年各集的主题列表:※上周起改为逢星期一至四晚上十点播出。※本周起改为逢星期
  • 洁咪·莫瑞洁咪·莫瑞 (英语:Jaime Murray,1976年7月21日-) 英国女演员,饰演过BBC电视剧《飞天大盗》中的Stacie Monroe(英语:Stacie Monroe)和Showtime电视网电视剧《嗜血法医》中的Lila West(英语:Lila West)。她也饰演过Starz电视剧《斯巴达克斯:竞技场之神》中的Gaia,CW电视网电视剧《替身姐妹》中的Olivia Charles,Syfy剧集《第十三号仓库》中的海伦 G. 威尔士(英语:Helena G. Wells)和《地球异世界》中
  • 盲文图案盲文图案是一个位于基本多文种平面的Unicode区块,收录了256个盲文图案,包含六点制和八点制盲文所有可能的组合。在Unicode中,每一个盲文图案都没有被定义其代表的字母或意义。下列与Unicode相关的文档记录了在本区块中定义特定字符的目的和过程: