FontForge:免费字库设计软件 附使用教程
引用:http://www.sucaijishi.com/2018/articles_0817/259.html
如何设计一套自己的字库?今天分享一个开源的字库设计软件FontForge,
官方下载:http://fontforge.github.io/en-US/

选择语言
此语言非软件操作界面的语言而单纯是安装界面的语言,软件本身不提供中文选项但是有日语,无所谓什么语言,跟着下面步骤点击"ok"按钮继续,如下图所示

安装过程
同意XXxxxxxxx之类的


选择安装位置


创建桌面快捷图标勾选上

点击安装


安装完成


英文界面修改成中文
FontForge 汉化教程:http://www.sucaijishi.com/2018/articles_0815/258.html

接下来打开软件,立马变亲切有木有
了解字体文件
不知道是什么原因,只能显示上图所示几个文件夹,不过没关系也可以用,只是把文件存桌面而已,我们打开一个我们熟悉的字体文件看看.(后经实践证明在下面输入框中直接输入盘符+冒号可直接访问该盘符,例如:(d:)试试吧)


确定(如果该字形有多种粗细)会弹窗让你选要打开哪种,可能会有警告窗口弹窗直接无视,打开后的中文界面

我们先看一下字体信息,菜单“基础”-“字体信息”
主要看两项信息,其余的大家自行摸索;
在“PS字体名称”一栏中,我们可以看到字体名称(我们自己设计的字体就是在这里命名的),
在“TTF名称”一栏中我们可以看到,字体版权信息(大方正很威武)在我们自己设计的字体文件中可自行填写;


回到主界面,双击界面中字符,弹出的窗口是单个字符的编辑窗口,是不是很熟悉的路径,我们其实在这个软件里面就可以创建,挪动,调整,删除节点等操作,设计字符需要在这个窗口中保存退出,其他功能有兴趣的同学可自行摸索,


关于编码
设计字体文件涉及到使用哪种字符编码来做,为什么有ANSI编码,扩展ANSI编码,GB2312编码,GBK和GB18030编码这么多各种各样的形式呢,因为每个对应的编码方式对应的对象不同,我大天朝常用字就分好多个不同的大陆:常用字2,500字;台湾:常用字4,808字;香港:常用字4,759字;加上什么繁体字,蒙文,其他国家的文字这些种种,总之是因为字符数量不同造成不同的编码方式;一个叫 ISO (国际标谁化组织)的国际组织解决了这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号的编码!他们打算叫它 UCS, 俗称 UNICODE 。( Universal Multiple-Octet Coded Character Set )什么意思呢,就是说不用纠结于用什么编码了,
直接用ISO-10646-1(统一码,基础页)

关于字体文件制作
据了解,1994年出版的《中华字海》收入了87019个汉字,其中2500个常用字、1000个次常用字,总共只有3500字是我们的常用字,微软雅黑这种字体属于正文字体共收录了20902个字符,如果你想做一套正文字体,那可能需要做到这个数,如果是做一套常用汉字字库,那最起码要做到3500个常用字,类似这种字库有造字工房,门主的庞门正道标题体等等。那哪些字符是要设计的呢,其实我们常用到的都是要设计的,中文英文26个大小写字母、数字和各种常用符号。
对于矢量软件熟悉的同学可以直接用AI等软件将制作好的对应的单个字符存成SVG格式后导入到字符编辑窗口中(建议以字符编辑窗口中的尺寸为基础在AI软件中设计,这样的话就只需要摆放好位置就行了,不用在调整大小之类的操作了,因为FontForge里面的这些调节操作很繁琐不方便)需要注意的是软件默认单个字符宽度高度是800x1000,这个比例就是你要最终字体的比例,如果你想设计一个矮粗的,或者瘦长的字形,需要所有字符都统一修改宽度,将界面中字符都选中(可选中一个后Ctrl+A)可以使用“尺寸”菜单下的“设置宽度”命令修改,在弹出后的对话框中输入数字即可。

生成方法(1)
通过新建文件
可以看到界面中有各种各样对应的字符,打开是空白的,我们设计一套中文字体也应该包括英文字符和对应的标点符号等,数字从“0”开始,英文字符从“A”开始,中文字符从“一”开始,我们在软件“查看”菜单中使用“转到”命令,定位到相关字符处,总之你认识的都要设计一遍。

生成方法(2)
上面方法说到,每个我们认识的都要设计,我们常用字就3500个,我怎么去分辨具体哪些要做呢?
第二种方法就是通过修改已有字体文件,上面说到了,已有的字库并非全部都是正文字库成千万上个字符,很多个人或者小公司做的字库都是常用字库三五千,五六千字,前辈们已经帮我们筛选了哪些字符要做。我们跟着把字符替换就可以了,此处要注意的是,切勿将所有字符修改完全,要不然你做的字体中某些字你没修改还是沿用了原来的样子,会出现你的字体出现了其他字体的字符样式,之所以我们有时候用了某种字体但是有些字符字体是宋体或者是一个空白框就是因为这些字符没有重新设计而使用了宋体字来代替或者代替字也没有。按照方法1当中的字符定位按部就班一个一个替换就行了。
导出字体文件
字体设计完成保存后需要执行“文件”-“生成字体”命令讲字体导出成TrueType(.ttf) 或 OpenType (.otf)格式的字体,点击“Generate”生成字体文件,有弹窗选是,也可根据自身需要选择生成其他格式。需要注意的是,如果使用第二种方法修改已有字库的方式来设计的话记得在字体信息中修改字体名称和版权信息。

好了,以上是FontForge的一些简单操作和用法,如果觉得文章不错可以分享给身边的朋友。在使用过程中发现其他方法,欢迎分享。
FontForge:免费字库设计软件 附使用教程的更多相关文章
- CODESOFT条码设计软件如何隐藏数据源方法
作为强大的条码标签设计软件,用户在用CODESOFT设计条码标签时,有时需要根据实际情况,将条码数据源隐藏,也就是使设计与打印出来的条形码下不带有数据.那么这要怎么在CODESOFT中实现呢?下面,小 ...
- 20款精致的长阴影 LOGO 设计【附免费生成工具】
长阴影(Long Shadow)概念来自于最新非常流行的扁平化设计(Flat Design).扁平化设计趋势影响最大的是用户界面元素和图标,但它也开始蔓延到其他网页设计的其他部分. 长阴影其实就是扩展 ...
- 免费的ER 设计软件调研
目标: 找到一个免费的ER 设计软件, 适合数据仓库项目开发. 结果: 经初步调研, Oracle的 SQL Developer Data Modeler基本满足需求. 但在功能和操作性等方面, 较P ...
- 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。
AndroidDevTools Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具.An ...
- 分享20个最新的免费 UI 设计素材给设计师
用户界面设计涉及到很多的创意,灵感以及需要与客户进行有效沟通的技能.良好的用户界面是一致的,可以使网站更容易理解和使用.UI设计的重点在于用户体验和互动,同时易于使用对于一个成功的移动应用程序来说非常 ...
- 20个免费的 AngularJS 资源和开发教程
曾经,jQuery 无疑是最受欢迎的开源的 JavaScript 库,如今它有了很多的竞争对手,像 AngularJS.React.KnockoutJS 等等.在这里,我想重点关注一下 Angular ...
- 创想三维:5款最好用的免费3D建模软件【转】
虽然网上有需要现成的免费三维模型,但对于许多人而言,3D打印机最吸引他们之处是可以设计创造完全属于自己的模型.问题是,现代专业级CAD软件大多价格高昂,例如Solidworks或Zbrush这样的程序 ...
- MyHome3D在线装修设计软件测评
人人都是设计师 ——MyHome3D在线装修设计软件 关键词:云技术,3D呈现效果,自主设计,简单易用,家具装修设计 上海爱福窝云技术有限公司借助于前沿的3D渲染技术,降低了装修设计的门槛,真正实现了 ...
- 【Navicat】Navicat for MongoDBv15.0.6破解版(附破解教程)
安装包下载链接:https://download.csdn.net/download/l1028386804/12519681 Navicat for MongoDB 15是一款功能十分强大的数据库管 ...
随机推荐
- Zookeeper的安装与配置、使用
Dubbo的介绍 如果表现层和服务层是不同的工程,然而表现层又要调用服务层的服务,肯定不能像之前那样,表现层和服务层在一个项目时,只需把服务层的Java类注入到表现层所需要的类中即可,但现在,表现层和 ...
- 基于Proxy的小程序状态管理
摘要: 小程序状态管理. 作者:wwayne 原文:基于Proxy的小程序状态管理 Fundebug经授权转载,版权归原作者所有. 微信小程序的市场在进一步的扩大,而背后的技术社区仍在摸索着最好的实践 ...
- element-ui Rate组件源码分析整理笔记(十三)
Rate组件源码比较简单,有添加部分注释 main.vue <template> <!--valuenow当前的评分 valuetext当前显示的文本--> <div c ...
- Java 打印HelloKitty
Java第一课 如何在控制台打印出"Hello Kitty" 如图所示,在IDE中使用 System.out.println(); 语句来实现打印 最后附上AIDE下载链接: Ja ...
- Django Form 实时从数据库中获取数据
修改 models.py 添加 class UserType(models.Model): caption = models.CharField(max_length=32) 执行命令,生成数据库 p ...
- [TCP/IP] TCP第三次握手失败怎么办
三次握手 客户端 ==> SYN是1同步 ,ACK确认标志是0,seq序号是x ==> 服务器 客户端 <== SYN是1同步 ,ACK确认标志是1,seq序号是y,ack确认号是x ...
- 6、Routing
Routing In the previous tutorial we built a simple logging system. We were able to broadcast log mes ...
- 洛谷 P5564: [Celeste-B]Say Goodbye
题目传送门:洛谷 P5564. 题意简述: 有 \(n\) 个点,染 \(m\) 种颜色,第 \(i\) 种颜色染恰好 \(cnt_i\) 个节点,满足 \(cnt_1+cnt_2+\cdots+cn ...
- 201871010135 张玉晶《面向对象程序设计(java)》第十五周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/zyja/p/12000 ...
- dp的一些练习
#include<iostream> #include<vector> using namespace std; class Backpack { public: int ma ...