http://www.ad518.com/article/2017/11/12536

我们将为大家介绍Glyphs最受人瞩目的一项功能:智能母件(Smart Component)

字体是大家每天都在接触的东西,却很少有人会去想一套字体是如何产生的这个问题。常见的中文字库主要有国标GB码、GBK码、港台BIG-5码这三种编码标准,简单的说,GB标准收录了6763个汉字,GBK标准收录了21003个汉字,BIG-5标准收录了13060个汉字。所以,要制作一套中文字库,至少需要设计6763个汉字,这还不包括英文字母和标点符号,是不是感觉任务很艰巨?

巨大的工作量使得很多人对中文字库设计望而却步,而字体设计师们却花着大量的时间在一个字一个字的造字。当然也有一些程序员和工程师们一直在研究如何利用电子技术提高做字效率,实现自动化。

中文字库设计,花时间最多的一个工作内容就是拼字。当我们用几十、几百个字确定了整套字库的风格和各种细节时,我们就要开始扩充字数了,也就是按照编码标准把收录的字全部做出来,这时我们就需要从基础字中提取笔画和部件,进行拼字。

汉字主要可以分为两类,独体字和合体字,独体字只包含一个部件,而合体字包含多个部件。有些部件会经常用到,比如部首,另外还有些部件也常会重复出现,比如声旁、形旁。

在拼字过程中需要经常调用这些常用的部件,由于每个字的构成都有差别,因此在调用部件后都还是需要再做细节的调整,过去我们采用的都是复制粘贴部件,然后手动调整细节的方式,而今天要讲的这个智能母件,就为我们提供了一种相对自动化的操作,节省了很多时间。

上图为禅宋细体的智能母件示范

如上图,将撇设置为智能母件后,我们可以为其设置长短、粗细等属性,这样再去做调整就会方便许多。

上图为禅宋细体的智能母件示范

将部首设置为智能母件后,在调用部首适配相应汉字时就变得非常容易操作。如上图“木字旁”的智能母件,只需要一个滑杆操作,我们就可以同时调整四个笔画,非常方便。

通过上面两个举例我们可以看到,第一个智能母件有两轴变化,粗细和长短,第二个智能母件只有一轴宽窄的变化。事实上我们可以根据自己的需要设定一轴或多轴变化。其实原理很简单,我们只需要为部件做出属性两个极值的形态,就可以通过计算生成中间的变化过程。简单说,比如要设置粗细变化,只要做出最细和最粗的,就可以实现;要设置粗细和长短两轴变化,那就做一个最短的(可最粗可最细),一个最长的,一个最细(粗)的,只要做出的三个形态包含了四个极值中的任意三个,就可以实现两轴变化。以此类推。

下面我就以禅宋细体的撇为例,讲解如何建立两轴变化的智能母件。

新建字形首先,点击菜单栏-字形-新建字形(Option+Shift+Command+N)或者点击字形窗口左下角的加号键新建一个字形,然后打开这个新字形,将宽度改为1000(你的字体的字身框宽度)。

建立智能母件将撇(你的部件)复制粘贴到这个新字形中(我这里选择的是最粗最短的撇),然后选择整个路径并右击,选择将选取的对象转为母件,这时会弹出一个窗口让你为这个部件命名,智能母件有固定前缀,因此我们需要将其命名为_part.pie(_part.部件名)。

设置属性点击图层栏下方的Copy键复制一个图层,双击图层将其命名为chang,然后将撇(你的部件)调整为最长的状态,再次点击Copy键复制一个图层,双击图层将其命名为xi,然后将撇调整为最细的状态。

在空白处右击,选择显示智能字形设定选项,点击属性标签左下角的加号键新建一个属性,命名为chang/duan,设置限制为0到100(-100到100也行),再新建一个属性,命名为cu/xi,设置限制为0到100,然后在图层标签中为每个图层选择相应的属性值,点击好,智能母件就设置好了。

编辑字形时在空白处右击选择新增母件(Shift+Command+C)在弹出的窗口中输入智能母件名称,选择后点击选取即可调用母件,在智能母件选中的状态下右击任意位置选择显示智能母件设定(Option+Command+I)即可调出智能母件设定选项,进行属性参数调整。调整到满意的形态后你可以右击智能母件选择释放组件将智能母件打散(相当于Ai中的扩展),进行更细微的调整,也可以选择不释放,这样如果对智能母件进行修改,那么调用该母件的字形都会发生相应的变化。

注意:在智能母件设置完成后需要删除新建的新字形,否则输出字库时会报错。调整部件各个极值形态时要保持节点数一致,路径方向也要保持统一。

智能母件是一个很棒的功能,它不仅帮我们节省了调整字形的时间,也使查找部件变的非常快捷,同时也会使整个字库的形态更加统一化,真是字体设计师的好帮手。

ad 新建一个componen的类_Glyphs智能母件:字体设计师的好帮手 Glyphs smart Component: a good helper font designer...相关推荐

  1. LKDHelper使用LKDBHelper以实体类对象进行数据库的操作,例如新建一个新闻实体类,以这个类来

    LKDBHelper以实体类对象进行数据库的操作,例如新建一个新闻实体类, 很早的时候用过,是基于FMDB基础上封装的,现在记录下使用过程,年纪大了容易健忘 哈哈 #import "Base ...

  2. 城市大脑全球标准,构建人类协同发展类脑智能支撑平台

    21世纪以来,种种迹象表明诞生于1969年的互联网正在从网状结构向类脑模型演化.这种演化不但导致物联网.云计算.大数据.工业互联网.边缘计算.云机器人的产生,同时也使得谷歌大脑.百度大脑.阿里大脑.3 ...

  3. springboot controller 中新建一个控制器类 提示该类从未被使用

    java web项目 springboot框架 webapi前后端分离 看了一篇文章 从文章中提到的github上拉取的代码 在springboot中新建一个控制器类,却提示该类从未被使用? 是因为创 ...

  4. idea(中英文版)java新建一个运行项目到类(超详细)

    使用idea时候要新建一个项目,这个是下载了中文的一个插件,如果是英文原版的对照着位置进行操作即可. 这里的步骤就是新建一个空项目(第1-4步)----新建一个新模块(第5-7步)---新建一个包(第 ...

  5. 孙鑫对话框二逃跑按钮中为什么为按钮新建一个类

    为类添加消息处理函数与成员变量,因为要对控件添加WM_MOUSEMOVE消息处理函数,而控件变量本身 不能加消息处理函数,只有类才能添加,所以要创建CNewButton类,然后使按钮控件属于这个类,当 ...

  6. 孙鑫对话框二中为什么要对按钮控件新建一个类(小结,5.2给出了结论)

    为类添加消息处理函数与成员变量,因为要对控件添加WM_MOUSEMOVE消息处理函数,而控件变量本身 不能加消息处理函数,只有类才能添加,所以要创建CNewButton类,然后使按钮控件属于这个类,当 ...

  7. 【AD】Altium Designer 新建一个项目

    软件版本:Altium Designer 14 通常一个嵌入式开发都需要一个开发板,这就涉及到原理图设计和PCB设计等流程.目前比较主流的设计软件当属Altium Designer了,于是便向写一个关 ...

  8. HTML+CSS实战---------一个电商类的小型项目:品优购(三)

    昨天完成到了main主体区域板块. 公共样式写好了,就该新建一个CSS文件单独为首页index设置样式. 进度有点慢,因为昨天出现了问题,debug都用了半个小时,最后找到出问题的地方. 就是有一个盒 ...

  9. IDEA新建一个多maven模块工程(有图)

    对于一些大型的项目来说,将项目的各个模块理清并进行管理,便于后续项目的维护,使用maven管理是很方便的,它可以很好的构建模块来设计项目的整体结构,对一些小型的项目不建议使用 1.新建父maven模块 ...

最新文章

  1. 人工智能改进传统云ERP的10种方法
  2. Base64实现图片的编码和解码
  3. python3.9出了吗_Python 3.9 正式版要来了,会有哪些新特性?
  4. Oracle学习:分组数据(group by)与笛卡尔积
  5. 远程仓库---添加远程库
  6. cstring判断包含字符串_Python字符串方法之-解决判断问题
  7. 分披萨问题_比萨问题–建造者与装饰者
  8. 好像博问不能回复了,看似是某个脚本错误阻止了提交。可有此事?
  9. 7-69 超市促销 (6 分)
  10. 【编译工具】之gcc中-march与-arch的使用
  11. 了解令人困惑的物联网平台世界
  12. Win10设置定时关机命令简单介绍
  13. 北航计算机学院考研专硕,北京航空航天大学计算机学院2020考研拟录取及未录取名单...
  14. 企业邮箱的优势有哪些
  15. 个人如何搭建博客网站
  16. java文件乱码_Java文件读取乱码问题解决
  17. 《第一桶金怎么赚——淘宝开店创业致富一册通》一一1.1 创业者需具备的素质...
  18. 用JavaScript移动对象
  19. AV/EDR 免杀逃避技术汇总
  20. 编程小题目之01:从键盘输入一数字a,求S=a+aa+aaa+aaaa+aa...a的值,例如:a=2,S=2+22; a=4,S=4+44+444+4444

热门文章

  1. 计算机网络到底讲了些什么
  2. Maven 父文件的依赖 子文件不能接收_maven报错:Non-resolvable parent POM for com...
  3. 游戏行业面貌不断变化,打破长久以来刻板印象
  4. 在 Kubernetes 集群中使用 MetalLB 作为 LoadBalancer(下)- BGP
  5. java多线程12:阻塞队列Queue
  6. delphi 人脸比对_中控人脸/指纹机DEMO(delphi)
  7. Word2013使用 插入题注的方式为word自带编辑器编辑的公式进行编号
  8. 破解手持机Socket通讯协议手记之一
  9. 5G学习(四):PRACH专题
  10. gensim基本使用+文本相似度分析