中国设计之窗带你重新认识一下电脑里面用的

中文字体

字体分类

历史划分

甲骨文

商周时期的文字形式。

作为字体(字库)目前使用的最广的是“北师大甲骨文体”,另外还有台湾中研院甲骨文体、香港中文大學漢達文庫的ics3.ttf、日本文字鏡研究會的Mojikyofont等。

篆书

春秋战国时期的代表文字。是秦始皇统一六国后以小篆为全国的官方字体。

常用字体:汉仪篆书、方正小篆

隶书

汉朝的代表字体。隶书在秦朝就已诞生,不过到汉朝才成为主流,所以也被称为“汉隶”。

隶书笔画粗细变化小、较平直,外形扁平、工整、庄重。讲究“蚕头燕尾”(起笔凝重,结笔轻疾)、“一波三折”(线条运笔变化)。

常用字体:汉仪隶书、华文隶书、蒙纳小隶

草书

草书源于汉代初期。

草书源于书写潦草的隶书,主要分为章草、今草、行草、狂草。草书有大量字形的简化、连笔,较难辨认。并且通常有一定倾斜。

常用字体:方正大草、方正黄草、叶根友疾风草书、白舟草書、奔行かな

行书

行书源于东汉时期。

行书发展源于隶书,是介于楷书、草书之间的一种字体,分为“行楷”和“行草”,“行草”较“行楷”笔画更加奔放,更近似草书。相比草书,行书只是在隶书的基础上更加突出笔画的变化,笔画间增加了“游丝”,字形构成基本不变,没有草书那样较显著的简化、连笔和倾斜,能很容易的辨认。

常用字体:华文行楷、汉仪行楷、DF行書体、王汉宗中行楷、方正硬笔行书、金梅草行書、方正字迹-吕建德行楷

魏碑体

魏碑体是北魏的代表字体。

魏碑体阶与隶书与楷书之间,相比隶书,不像隶书那样粗扁,相比楷书笔画粗细变化又更为明显。独特的特征是撇捺会向两侧伸展,收笔前有明显粗顿以及抬峰,使整个字形稳重中又略显飞扬。

很多时候也会把魏碑体当成楷书的一种。

常用字体:华文新魏、方正魏碑、汉仪魏碑

楷书

魏晋、南北朝时期到唐朝的代表字体。大体可分为早期的“魏碑”和后期的“唐楷”。

楷书始脱于隶书,没有隶书那么粗扁,笔画带有明显毛笔书写痕迹,“横”依然明显的左低右高。

在常见的中文排版中,楷体有类似西文中Italic(意大利体)的作用,即宋体作为正文,而楷体作为强调、引用字体。

常用字体:华文楷体、方正新楷体、汉仪全唐诗、方正苏新诗柳楷、方正宋刻本秀楷

宋体

明朝的代表字体,起源于宋朝。

宋体虽称为宋体,但在宋朝并不流行,反而在明朝更为常见。由于历史原因在大陆称为宋体,港台和日本则称其为“明朝体”。

宋体始源于宋代的印刷字体,当时以木板作活版印刷,为顺应木的天然纹理,笔画直横平竖直、横细竖粗,起落笔有棱有角(有明显衬线),字形方正。所以也被称为“匠人体”。

由于宋体横细竖粗的特征,很适合竖排,而现代排版通常都是横排,所以现在常用的宋体笔画横竖笔画对比会比传统宋体略低。

另外由于Windows中自带的宋体(中易宋体)12~14pt大小时显示的是点阵字体,常有人以宋体代称为点阵字,实际2者并没关系。

中易宋体12~14pt会显示为点阵字体

常用字体:汉仪书宋、游明朝体、小塚明朝Pro、ヒラギノ明朝、リュウミン(RyuminPro)、方正新书宋、方正雅宋、方正宋体、方正新报宋、造字工房刻宋、蒙纳长宋

仿宋体

可以代表宋朝的字体。

仿宋体是仿制南宋临安陈起陈宅书籍铺出版的书籍的字体,于实际兴盛于明朝但被叫做“宋体”的宋体来说更能代表宋朝的字体风格。在日本直接称其为“宋朝体”。

仿宋实际是有明显楷体风格的印刷体,笔画较直,但不如“宋体”那样完全直来直去,“横”依然带有楷书的左低右高特征,笔画粗细没有宋体的横细竖粗,而是较为平均。

常用字体:方正仿宋、文悦古体仿宋、蒙纳仿宋

清朝体

清朝的代表字体应该说是楷书,随着雕版印刷技术的提升,印刷字体相比宋体有了更多表现笔画的特征。清朝字体的一个特征是中宫普遍较紧凑,不过和其他楷体来说没有决定性差别,所以“清朝体”的称呼在国内并不多见,反而在日本比较常见。

清朝体有代表性的字体有仿照扬州诗局刊行的《全唐詩》而作的全唐诗字体,还有清朝官刻体,另外还有前些年在平面设计领域用到烂的康熙字典体,不过康熙字典体的流行和清朝体关系不大,主要是因为其扫描古籍录入的斑驳字迹。

常用字体:康熙字典体、汉仪全唐诗、弘道軒清朝体、欣喜堂清朝官刻体、DF古籍木蘭A

黑体

二十世纪中期以来的代表字体。

黑体即是无衬线的中文字体,没有装饰用的衬线,简化笔画特征,笔画粗细差别极小。也被称为等线体、哥特体(日本叫法)。最早是日本依据西文无衬线体而作的中文无衬线体,后传入中国(吴竹体),最早只是作为粗大的标题字体,所以被称之为黑体。

黑体是目前屏幕显示的首选字体。

常用字体:思源黑体、中易黑体、方正兰亭黑、冬青黑体、方正等线、方正幼线、方正纤黑、汉仪旗黑、小塚ゴシック、游ゴシック、信黑體、微軟正黑體(蒙纳)、微软雅黑体(方正)、方正悠黑简、メイリオ、苹方

风格字体分类

上面是中文字体的主要划分方式,有些字体在其基础上又独特的风格,自成一体。

综艺体

综艺体是黑体的变种,通常用在广告、标题上。字面极大、追求尽量将空间充满。

常用字体:創挙蘭、方正综艺、汉仪综艺、造字工房力黑、造字工房版黑

圆体

圆体也是黑体的变种,最早在秀英舎的『活版見本帳』(年)中出现,早期流行的圆体是石井丸ゴシック体()。

圆体的特征在于笔划的末端与转角呈圆弧状。因此圆体不但具有黑体清晰易读的优点,而且也予人较柔和的感觉。国内更加常见的幼圆体是圆体的一种,是笔画更加细的圆体。

常用字体:蒙纳幼圆、DF丸ゴシック体(華康圆体)、あいこフォント、方正圆体、造字工房悦圆

宋黑体

宋黑体是介于宋体和黑体之间,带类似宋体的衬线和黑体笔画特征的字体,和普通的的粗笔画宋体的差别是:粗宋体会有明显的“横细竖粗”的笔画粗细对比,而宋黑体没有。

常用字体:方正宋黑、锐字云字库宋黑体

圆宋

圆宋是基于宋体的变体,相当于圆体之于黑体。在日本被称为“丸明朝体”。相对于圆体,其有宋体的特征:笔画有“横细竖粗”的粗细对比、带有衬线。而相对于宋体其衬线圆滑,虽有宋体的笔画特征但把棱角都做了圆化,字体结构方正,但细节圆润,有马克笔书写的感觉。

常用字体:丸明オールド、汉仪润圆、方正秉楠圆宋

姚体

姚体通常认为是原中华书局聚珍部主任姚竹天于民国时期设计,上海解放日报社高级技工姚志良在二十世纪50年代改刻的字体。也有说法是姚体跟姚竹天的关系是误传。姚体兴盛于中国大陆的60、70年代,被用作报纸标题、宣称标语和招牌的字体。至今仍能在很多城市的车站中见到姚体的站名。

姚体是结合了宋体和黑体特征的字体,一般归类为黑体的变种。其特征是像宋体一样的直线笔画和“横细竖粗”的粗细对比,但没有宋体的衬线,但有明显的喇叭口和笔画出头作为装饰,最明显的莫过于竖长的字形和纵向的笔画走向。

常用字体:方正姚体、蒙纳小姚

金文体

这个金文体并不是指中国古代的金文,而是一个在日本流行的字体,实际上类似于篆书体,其特点是垂直延伸的字形,并且字的下半部分看起被拉长,有类似篆书的笔画曲线。这种字体看起来既有有古典气息,又有现代、神秘的感觉,非常多的用在日本科幻、魔法风格的小说、漫画、动画产品产品的标题和海报中。

常用字体:华康金文体(DFP金文体)、DFP金文体うめ

其他字体

绘文字emoji

绘文字(emoji)最早是在年左右出现在日本NTTDoCoMo公司的i-mode手机中的功能。

最早的au絵文字

把文字和图形穿插日本自古就有:日本江户时代的判じ絵(画迷)

绘文字(emoji)是以一个字符表示一个图形的方式表达信息,每个绘文字(emoji)其本质是一个特殊字符,年10月发布的Unicode6.0中首次把绘文字(emoji)编入其中,往后每次Unicode更新几乎都会增加新的绘文字(emoji)。每个绘文字(emoji)字符虽然都有指定的意义,但是实际外观取决于使用的字体,而各个平台使用的字体并不相同:

各个平台对的支持情况可以参考:CanIEmoji,各个平台上绘文字(emoji)实际外观可以查看:emojipedia。要注意的是绘文字(emoji)和顔文字(かおもじ、Emoticon、表情符号)是指定不同的东西,顔文字是指如::-)_(:3」∠)_^_^这样用普通字符组成特定外形来表达表情或动作的文本。其使用的是普通字符,而不是特殊的字符,所以顔文字有更好的通用性,是ASCII艺术的一种形式。

Dingbat字体与Icon-font

虽然现在流行的绘文字(emoji)形式的图形字符起源于日本的手机,不过把图形用在字符中,早在数字时代之的印刷业就有了,活字时代就有用来装饰文本的fleuron(花边),后来也出现了Dingbats(装饰符号、杂锦字体),其中最有名和使用最广的是年的ZapfDingbats,在ZapfDingbats中主要还是用在传统印刷品中的标志或装饰性符号,不过小圆脸表情已经出现了。而年随Windows3.1发布的Wingdings和后来发布的其web版本Webdings(网页核心字体之一)有了更多现代的图形比如心型和眼睛。

ZapfDingbats(部分)

Wingdings

Dingbats字体也被称为Pi字体,一般名字中带Pi的就是Dingbats字体。而当今流行的icon-font技术就是他们的继承者,例如网页中常用的FontAwesome、iconfont.cn都是一种Dingbats,这种技术可以方便的在网页或者文本构成的用户界面中加入图形标志,而且由于是字体,所以这是当前(支持Svg等矢量图形显示技术的地方还不多)最方便的显示矢量图形的方式。

iconfont

文本编码与Unicode

对于了解字体来说文本编码标准是不得不认识的,尤其是对要制作或者修改字体的人来说。字体的一个字符对应一个编码(码点:codepoint),而编码对应字符集(CharacterSet)里的一个“字”,字体的字符通过字符集与“字”相连。

文本编码的流程

字符集与编码方式

像通常说的Unicode、GBK、BIG5、Shift_JIS这些都是字符集,其主要作用是为字符集中的每一个“字”分配一个编码(码点:codepoint),要注意的有两点:

字符集里的每一个编码对应的是一个“字”而不是“字形”,也就是说一个“字”在不同的地区或标准中可能有不同的“字形”,但字符集中只能对其分配一个编码(除非相差过大,比如简化字),要显示其不同的“字形”要通过使用为不同地区或标准设计的字体来实现。

同字异形。左边是简体中文的,右边是日文

字符集是为字分配一个编码(码点),而这个字存储到文件要再通过特定编码方式(Encoding)来变成实际的二进制数据,这样做的意义在于能够使用不定长(为了节省空间)的编码。

举一个十进制的例子来说:有两个字,编码分别是1、15要存储的话,最简单的方式是存储为定长数据:01、15。之所以要定长是为了再次读取时不会发生混淆,比如如果直接不定长存储的话,读取10字符时,读到第一位1就以为读到是1了。1,15存储为再读取就变成了1,1,5了。而要定长存储的话,就要浪费很多空间,所以要再经过一次编码,比如这个例子里可以用把1作为标志位,读到1就表明这是2位编码的字,要再度一位。这样把两个字编码为2、15,这样就能直接存储为了,这比定长的要节省空间。这个过程就是编码方式(Encoding)来决定的。实际上的Encoding是根据二进制来处理的,上面的例子只是便于理解。

过去的字符集往往与编码方式相对应,比如GB就只使用EUC-CN,这让我们可以忽略它的编码方式,或者说把编码方式看成是字符集的一部分,统称为编码标准,比如只说某个文本是用GB文本编码。而后来出现了可能会又不同的编码方式的字符集,Unicode字符集就有UTF-8、UTF-16LE、UTF-16BE等编码方式,这时就要区分字符集和编码方式了。用UTF-8、UTF-16等编码方式存储同一个字符,它们的数据可能是不同的,但是这些数据都唯一对应于Unicode中的一个编码(码点:codepoint)。这本来容易理解,不过Windows下用Unicode来称呼UTF-16LE(应该是由于UTF-16LE是Windows的内部Unicode编码所以就这么称呼)这就造成了很多误解,让人以为UTF-8是字符集。

Windows用Unicode直接代指UTF-16LE

代码页

代码页(codepage)是操作系统中管理各种编码标准的方法,每个代码页对应一种字符集和编码方式,比如Unicode-UTF-8的代码页是,GBK是的代码页是。

代码页是实际编码标准到应用程序间的中间层,好处是通过改变代码页可以简单的切换系统默认支持的编码标准,而且便于更新编码标准,比如Winodows3.1时代码页还是对应的GB,而winodws95时已经代码页就更新到对应GBK了,这样应用程序不需要修改就能支持新的编码标准。

Windows中把当前系统默认代码页称为ANSI。

GB、GBK、BIG5、Shift_JIS

GB是年制定的编码标准,GBK是对GB的扩展(K)增加了一些字符并保持向下兼容。

BIG5是台湾制定的编码标准,由于台湾使用繁体字,所以这是繁体地区最常用的文本编码标准。

Shift_JIS是日本最常用的文本编码标准。

目前中国大陆的标准是国家编码标准是GB。

Unicode

上面的GBK、Shift_JIS等传统编码标准都只为一个地区使用所制定的,而Unicode是目标为所有国家、地区、语言的字编入同一个字符集,所以其被称为统一码、万国码。

Unicode使用平面(Plane)来安排编码空间,每个平面分为行,列,即个字。共有17个平面。所以Unicode共可以容纳约万字(1,,),最大的编码是10FFFF。目前Unicode8.0已经所使用了12万字(,)。

Unicode是个还在不断不断更新扩充的标准。

Unicode的平面分为基本平面BMP(BasicMultilingualPlane)和补充平面(也有翻译成辅助平面)SMP(SupplementaryMultilingualPlane),只有第一个平面是基本平面,也就是Plane0,剩下的16个平面都是补充平面。

如上面所说Unicode有多种编码(Encoding)方式,UTF-32、UTF-16LE、UTF-16BE、UTF-8等,最常用的是UTF-8,其基本平面的字符(主要是ASCII字符)只要使用1个字节存储,而中文通常是占3个字节,少数要占4个字节。而UTF-16编码第一平面的字符也要占2个字节,中文占2到4个字节。一般来说存储中文使用UTF-16要比UTF–8占有更少的空间。UTF–16BE和LE有的只是字节序的差别,BE是大端在前,LE是小端在前。

此外历史上还有UCS-2、UTF7等的编码方式,至今已经很少使用了。由于历史原因JavaScript内部使用的是UCS-2。UCS-2可看成是UTF-16的字集。在没有补充平面(SMP)字符前,UTF-16与UCS-2所指的是同一的意思。但当引入辅助平面字符后,就称为UTF-16了。现在若有软件声称自己支持UCS-2编码,那其实是暗指它不能支持在UTF-16中超过2个字节的字符。对于小于0x的UCS码,UTF-16编码就等于UCS码。JavaScript在ECMAScript6之前就因为这个原因无法处理大于2个字节字符。

BOM

BOM是字节顺序标记(byte-ordermark),通常用在UTF-16中标识文本的字节顺序,即区分UTF-16LE和UTF-16BE。后来在Windows中被用作区分文本编码方式的标志:

由于除了Windows其他系统对BOM的支持程度不一,所以在制作Web用的文本时,不应该使用BOM。

CJK

CJK是中日韩统一表意文字(CJKUnifiedIdeographs),目的是要把分别来自中文、日文、韩文、越南文、壮文中,起源相同、本义相同、形状一样或稍异的表意文字,赋予其在UISO及Unicode标准中相同编码。

字体格式

TrueType

TrueType是最常见的字体格式,后缀名为“.ttf”的字体就是TrueType格式。TrueType字体的轮廓使用的是二次贝塞尔曲线,

OpenType

OpenType可以说是TrueType的扩展,OpenType有和TrueType一样的封装格式(SFNT),可以使用TrueType的二次贝塞尔曲线的字体轮廓,也可以使用对曲线表现效果更好的三次贝塞尔曲线CFF(PostScriptType2)。

WOFF、EOT

WOFF是W3C标准推荐的网页字体格式,其本质上是对TrueType、OpenType格式的压缩封装。EOT是微软推出的网页字体格式,本质上是对OpenType格式精简再封装,虽然EOT不是W3C标准,但是由于EOT出现的很早(IE4就支持了),为了兼容性(尤其是对IE),EOT也是常见的网页字体·格式。

格式转换

由于TrueType是二次贝塞尔曲线,OpenType一般是三次贝塞尔曲线,从三次转换到二次的过程不会是无损的,所以很可能产生偏差。而且很多TrueType字体的UMP(元素/单位)设置的很低,所以从现状来看,TrueType字体的质量往往要低于OpenType字体。

而从TrueType转换到OpenType格式是无损的,因为OpenType格式甚至可以不用把二次贝塞尔曲线转换成三次贝塞尔曲线,而是直接包含TrueType的曲线。

三次曲线转二次曲线

UPM值低(左)与UPM值高(高)

抗锯齿

字体的抗锯齿通常是用次像素(亚像素)对字体像素做成调整,让曲线在人眼中看起来更加平滑。

通常抗锯齿渲染的次像素分为两种,灰度的次像素和彩色的次像素。灰度的次像素是更为简单和基础的抗锯齿方法,而彩色的次像素是根据LCD显示器像素点的构成而设计的,目的是不仅仅控制图像的最小单位:像素,还要控制组成像素的RGB子像素,如下图显示,灰度次像素只能降低整个像素的亮度,而彩色的次像素,黄色能够关闭蓝色的子像素的显示,青色能关闭红色像素显示,这样就能控制子像素了:

微软的ClearType是典型的使用彩色次像素抗锯齿的技术,OSX上也有类似的技术。彩色的次像素能够控制比灰度次像素更高实际显示精度,这在屏幕单位尺寸分辨率低的时候格外有效,而屏幕单位尺寸分辨率较高的场合,效果相对于灰度次像素优势就不大了,比如手机端,彩色次像素在手机上不仅会花更多性能和电量,在屏幕旋转时还需要重新计算,而且手机屏幕单位尺寸分辨率较高,所以目前手机上Android和iOS等系统都只是使用灰度次像素,只有曾经Windowsphone7里使用过ClearType。

彩色次像素的效果是完全依赖特定屏幕的(根据屏幕子像素排列顺序),所以在PhotoShop这样的绘图工具中都是使用的灰度次像素而不是彩色次像素,因为制作出的图片可能会在各种屏幕中展示,使用彩色次像素在一些屏幕中效果会很好,而另外的则会很差。所以使用彩色次像素的都在系统层,而且会根据检测连接显示器的型号或者用户设置来保障效果:

Windows显示设置里的ClearType文本设置。实际上就是要你选择你屏幕的子像素排列顺序

Windows、OSX字体渲染差异

Windows和OSX的字体渲染差异一直是富有争议,Windows和OSX的字体渲染完全是从两种不同的偏好出发的,Windows的字体渲染追求在屏幕上清晰的像素表现,而OSX追求的是尽可能再现字体本来的外观,这两者的差别在于Windows下显示字体很大程度依赖hinting(微调)来进行像素对齐,力求点对点显示即使是要改变字体的外形。而OSX不依赖hinting,即使字体显示到像素不是点对点而造成模糊,也不愿意改变字体外形。

可以明显看到Windows下示例字体像素对齐更清晰、锐利但是代价是改变了字体笔画,字体笔画变细了,p字字碗上提的特征也没有了。OSX下示例字体由于没有强制对齐像素所以边缘较模糊,但是保留了字体的外形和笔画特点。

应该说OSX的字体渲染策略在高分辨率的屏幕下效果要比Windows更好,不过在较低低分辨率下,Windows的字体渲染策略也有其优势,能够在低分辨率下提高字体的易辨识度。不过也有很多问题,比如由于过于追求像素的对齐,很可能产生破坏性的字形改变:

Windows下字体渲染的问题,有的字体的m的像素对齐造成的字形改变过大

由于现在Mac都是高分屏,所以字体渲染比起大多都是低分屏的Windows要好的多,不过要是与高分屏的Windows相比,实际优势不是特别大。

系统默认字体

桌面端

网页端

微软的网页核心(Webcorefonts)字体,是微软在年所发起的一个计划,定义了一套基础字体集以供网页显示之用,这些字体是Windows中会预置的字体,而且微软提供免费的下载。这些字体直接使用在网页中有很好的通用性。不过这并不是W3C的标准,所以也不能保证在不同系统都可用,具体各种字体在不同操作系统中的支持情况可以参考这个列表:fontmatrix

移动端

排版与标点

点号

点号作为语句的分隔符,表示语句的停顿或结束。

标号

标号作为语句的标识符,起标示语句性质的作用。

简体中文使双引号“”和单引号‘’,繁体中文(台湾)和日文中相对应的是『』「」。简体中文中有时也会使用『』「」,与繁体的区别是,简体中文里嵌套的方法是先双后单:『「」』在繁体(台湾)和日文中是先单后双:「『』」。在日文中『』还有书名号的作用(日文也有《》二重山括弧,但没有固定用途,通常是标注汉字的假名),另外繁体(台湾)中除了乙类书名号(《》),甲类书名号是﹏﹏形式的下划线。

西文引号

引号常见的有2种,直引号和弯引号“”

前者是直引号,是打印机时代的产物(可以用一个键表示引号),通常在传统印刷领域,使用直引号会被当做是业余者的行为。不过在网络时代,直引号的广泛使用,让人们已经习惯了直引号,甚至由于编程的代码使用的都是直引号,在要表现IT技术的场合往往还会特意直引号。

直引号用在传统排版中被称为Dumb(呆瓜)冒号

另外要注意的是引号的方向,在中文和英文中引号的方向都是朝内的:“”,而德文则是朝外的:Danish“,另外法文引号和中文书名号相似:franais,德文中也有使用法式引号的,不过方向相反:Danish

间隔号混淆问题

间隔号很容易混淆,简体中文中的间隔号与为·,与英文中的一样如:道格拉斯·理查·郝夫斯台特。另外还有全角的间隔号:.如《禮記.禮》。在台湾的标准里所有间隔号都应该是全角的,而中国大陆的简体中文里两种都可用,而且常常使用的是与英文一样的半角形式。还有一个是日文中的“中黑”:,其用法是用作分隔符,用在罗列词是整体的情况下,如「北京台北間のホットライン電話」

这几个间隔号混淆的问题在于验证系统,比如验证用户名是否相同,很可能不同来源的名称其实指的是一个用户,只是用不同的系统、输入法输下输入了不同的间隔符,由于中国少数民族众多,名字中带间隔符的不在少数,所以这是个值的注意的问题。

斜体

斜体在西文中是其强调的作用,通常表示要强调、引用的词,还有书名号的作用。由于大部分情况下中文字体都只能用仿斜体,效果很差,所以尽量避免对中文使用斜体。

中西混排

中西文间隔

中文中出现西文,中文和西文间应该要有一定间隔,排版和文字处理工具一般都会自动在中西文间留有间隔,不过在更多情况下,需要手动的输入空格来把中、西文隔开。

标点规则

在中西混排中,由于正文是中文,原则上应该使用中文标点,遵守中文标点的习惯用法。出现英文原句时,可以使用英文标点,再用中文引号标识出来。

段首空格

按传统的习惯,段首应该留两个空格,作为段与段之间的分隔标志,不过现在数字排版时代,已经使用了段与段之间的间距很大,已经可以作为段与段之间的分隔标志了,所以不需要段首空格了



转载请注明地址:http://www.chinajianan.net/jbzd/13552.html
  • 上一篇文章:
  • 下一篇文章: