首页/新闻资讯/正文详情

FontForge 字形编辑教程(三):用一致茎宽、衬线与字高构建 l、i、k 字母

发布时间:2026/9/27 8:06:34 来源:云帆数科 栏目:资讯中心
FontForge 字形编辑教程(三):用一致茎宽、衬线与字高构建 l、i、k 字母
桌面应用图形学【免费下载链接】fontforgeFree (libre) font editor for Windows, Mac OS X and GNULinux项目地址https://gitcode.com/gh_mirrors/fo/fontforge点击查看免费下载导读本篇是 FontForge 官方入门教程的第三章承接 editexample.rst 的字体与字形创建、editexample2.rst 的字母 o 方向约定核心主题是在拉丁希腊、西里尔字体的设计过程中如何保证茎宽stem width、衬线serif与字高x-height / ascent height的一致性。文章将以 l、i、k 三个字母为例完整演示导入位图、衬线翻转复制、标尺测量、Guide 引导层、Knife 切割与 Correct Direction 修正方向等关键操作并对照 FontForge 源码解释底层原理。读完本文你将掌握一套可复现的、保证字体整体一致性的字形编辑工作流以及 FontForge 中与一致性检查相关的全部工具用法。为什么字体的一致性如此重要几乎所有拉丁Greek、Cyrillic字体都带有衬线——位于茎干末端的特殊收尾装饰。而在几乎所有 LGC 字体中应当只使用少数几种茎宽例如字母 l 与 i 的垂直茎干宽度应该相同同一字体中所有字母的 x-heightx 字高、上升部高度ascent height也应当对齐到统一的基准。FontForge 本身并没有一个强制一致性的开关但它提供了多种命令与工具来帮助你检查一致性、发现不一致之处例如标尺工具Ruler精确测量茎宽、位移与角度Guide 引导层在字体级共享的辅助图层上绘制 x-height、ascend 等参考线复制与翻转用同一个 l 的形状作为其他字母的构造基础从源头保证茎宽与字宽一致Correct Direction 命令自动修正轮廓的绘制方向保证外轮廓顺时针、内轮廓逆时针详见 editexample2.rst 的方向约定部分。下面我们以 l 为起点走一遍完整的流程。第一步构建字母 l——导入位图并描出右半衬线与 editexample.rst 中的 C 一样我们从导入位图开始在字体视图中双击 l 对应的方块打开 Outline Glyph 窗口通过File -- Import导入 l 的位置图如果位图恰好是一 em 高FontForge 会自动缩放到正确尺寸见 editexample2.rst 的说明使用放大镜Magnify工具放大观察底部衬线注意底部衬线在左右方向上应当是对称的。先在前景层Foreground, F上描出衬线的右半边轮廓添加点、切线点与角点的方式同 C 的绘制流程然后用指针工具选中整个轮廓执行Edit -- Copy再执行Edit -- Paste执行Element -- Transformations -- Transform在弹出对话框的下拉列表中选择Flip翻转并勾选Horizontal水平翻转。拼接翻转后的两半衬线翻转后的衬线是右半部分的镜像接下来用指针工具把翻转后的衬线拖到左侧让它紧贴字形左边缘见 l5.png取消选中整个路径然后只选中一个端点把它拖到另一半对应的端点上使两半端点重合完成闭合见 l6.png 与 l7.png微调曲线控制点完成整个 l 字形见 l8.png。小技巧由于两半是由同一段轮廓复制翻转而来只要把端点精确对齐两半的曲率天然对称无需手动重画。第二步测量茎宽并在 Guide 层标记升部线字形画完之后还有两件重要的事用标尺工具测量茎宽从工具面板中选择标尺Ruler工具从茎干的一侧边缘拖动到另一侧边缘松开鼠标后会弹出一个小的测量窗口显示宽度Width例如 58 units拖动方向Angle例如 180 度水平位移例如 -58 units垂直位移例如 0 units。这个 58 units 的数值就是该字体中 l 的茎宽基准。后续构建 i、k 时都应以这个数值为目标保持一致。坐标系统背景字形窗口中的单位由字体的 em-size 决定即 ascent 与 descent 之和PostScript 惯例为 1000TrueType 常为 2048 或 4096坐标原点位于基线水平原点即字形绘制起点参见 editexample.rst 中对坐标系的说明。因此 58 units 表示茎宽约为 em 的 5.8%当 em 为 1000 时。在 Guide 层标记升部线打开图层面板Layers Palette选择Guide#单选按钮使引导层变为可编辑状态。然后在 l 顶部画一条水平线。这条线会在所有字形中可见它标记了该字体的上升部高度ascent height——即字体信息对话框中设置的 Ascent 值对应的位置见 l10.png。Guide 层在 editexample.rst 中已有介绍背景层B存放针对单个字形的图像与线稿而 Guide#层存放字体级共享的参考线如 x-height 与升部线。第三步构建字母 i——复制 l 并调整衬线高度i 看起来就像一个短一些的 l 上面加一个点。因此最聪明的做法是把 l 复制进 i这会自动继承正确的茎宽与 l 完全一致正确的字宽advance width。复制有两种途径任选其一从字体视图复制在字体视图中选中 l 方块按Edit -- Copy从轮廓视图复制在 l 的轮廓窗口中执行Edit -- Select -- Select All再Edit -- Copy。粘贴同样有两种途径在字体视图粘贴选中 i 方块后按Edit -- Paste在轮廓视图粘贴打开 i 字形窗口后按Edit -- Paste。粘贴完成后此时 i 还是完整的 l 形状进行以下调整见 i1.png 至 i4.png选中 l 的顶部衬线用指针工具框选把它向下拖动到合适的 x-height 高度——即 i 的小写 x 字高通常比升部线低切回Guide 层在 x-height 位置再添加一条引导线标记该字体的小写 x 字高基准最后补上 i 上方的点dot。至此字体中已经建立了ascend 线与 x-height 线两条全局参考后续所有字母的顶部高度都可以参照它们对齐。关于 Overshoot曲线为什么需要越界一点回顾之前构建的 o见 editexample2.rst你可能会注意到o 略微高出我们标注的 x-height 引导线也略微低于基线。这并非失误而是有意的过冲overshoot设计——这是对视错觉optical illusion的补偿曲线部分在视觉上会比同高度的直线显得矮所以曲线必须实际高出约直径的 3%才能在肉眼中恰好落在 x-height 上。这也解释了为什么在设计阶段建立 Guide 参考线如此重要有了基线、x-height 线、ascend 线你才能有意识地区分真正的对齐与为补偿视错觉而做的过冲而不是凭感觉随手摆放。第四步构建字母 k——Knife 切割与内外轮廓k 的构造思路依然是以 l 为起点导入 k 的位图并把 l 复制进 k 字形见 k1.png注意 x-height 线恰好与 k 的上部对齐这正是引导线的价值所在l 的宽度对 k 并不合适所以先选中茎干并拖到合适位置。用 Knife 工具切割茎干从工具面板中选择刀Knife工具在 l 形状的茎干上、为 k 设计好的交叉点位置进行切割见 k2.png把字形切出上臂arm与腿leg的雏形。删除多余样条切割之后删除切割点之间的样条。最省事的方法直接用指针工具点选样条本身这会同时选中它的两个端点执行Edit -- Clear删除该段见 k3.png。将端点转为角点选中相关端点执行Point -- Corner把它们转换为角点Corner Point以便锐利地连接直线段见 k4.png。角点与曲线点、切线点的区别详见 editexample.rst。绘制外轮廓与内轮廓并修正方向接下来绘制外轮廓k 的主体外形见 k5.png绘制内轮廓内部挖空部分见 k6.png最后执行Edit -- Select -- Select All全选所有轮廓再执行Element -- Correct Direction。Correct Direction 的底层原理正如 editexample2.rst 所强调的PostScript 与 TrueType 都要求外轮廓为顺时针、内轮廓为逆时针在 FontForge 内部的非零环绕数规则约定下如果方向画反栅格化结果会出现填充错误。Correct Direction命令会逐个检查被选中的轮廓判断它是外轮廓还是内轮廓并在绘制方向错误时自动反转。这一命令并非只出现在菜单中图形界面中它由 fontview.c字体视图菜单与 charview.c字符视图菜单注册与分发在脚本/命令行环境FontForge 的.pe脚本或 Python 接口中对应命令为CorrectDirection实现位于 scripting.cpp 与 fontviewbase.c。因此无论是交互式点击菜单还是用脚本批量处理大量字形都可以利用这条命令来统一修正轮廓方向——这正是它被用于字体工程自动化的原因之一。小结一致性工作流的三个关键习惯回顾本章保证 l / i / k 一致的要点可归纳为三条可复用的习惯以单一母版派生从 l 复制出 i、k让茎宽、字宽自动继承避免逐字重画造成的偏差用工具量化验证用标尺工具记录茎宽数值用 Guide 层固化 ascend / x-height 基准线把目测一致变成数值一致构建后统一收尾全选轮廓并执行Element -- Correct Direction从底层数据上保证填充正确性为后续的 editexample4.rst重音字形、连字与 OpenType feature 构建打好基础。本章使用的所有插图l1-l10、i1-i4、k1-k6、o5均位于 doc/sphinx/images完整教程目录见 doc/sphinx/tutorial.rst。赞分享桌面应用图形学【免费下载链接】fontforgeFree (libre) font editor for Windows, Mac OS X and GNULinux项目地址https://gitcode.com/gh_mirrors/fo/fontforge点击查看免费下载相关推荐FontForge 开源字体编辑器使用教程FontForge 开源字体编辑器使用教程 1. 项目介绍 FontForge 是一个免费开源的字体编辑器支持 Windows、Mac OS X 和 GNU/桌面应用图形学Iosevka 26.3.3 更新全解字形变体命名重构、希腊字母衬线与斜体样式集修复Iosevka 26.3.3 更新全解字形变体命名重构、希腊字母衬线与斜体样式集修复 Iosevka 是一款由代码编写的代码字体Versatile ty开发工具老Mac如何免费装上新版macOSOpenCore Legacy Patcher 完整指南老Mac如何免费装上新版macOSOpenCore Legacy Patcher 完整指南 OpenCore Legacy PatcherOCLP是一个免操作系统固件驱动开发上一篇Context7 MCP Server迁移学习实践快速适配新的开发框架下一篇终极iOS二维码工具指南从生成到扫描的完整实践方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

缓冲区溢出的惊鸿:在越界的指针里看见宿命
缓冲区溢出的惊鸿:在越界的指针里看见宿命

缓冲区溢出的惊鸿:在越界的指针里看见宿命凌晨两点四十分,整栋大楼已经沉睡在墨色的夜空之下。 在用 GDB 逆向调试一段古老 C 语言网络服务的核心栈帧时,我将断点停在了一行充满诱惑、却又潜伏着毁灭深渊的无边界内存拷贝函数上: … · 2026/9/27 8:06:34

2026最新实测:帝国做的网站打开速度及被黑挂马自救指南
2026最新实测:帝国做的网站打开速度及被黑挂马自救指南

2026最新实测:帝国做的网站打开速度及被黑挂马自救指南 网站突然打不开,或者打开后跳出满屏的赌博广告、色情弹窗,后台密码也被篡改?这是很多做帝国CMS(Empire… · 2026/9/27 8:06:28

Snapcast Stream Plugin 开发指南:基于 JSON-RPC 2.0 的播放控制与元数据插件协议
Snapcast Stream Plugin 开发指南:基于 JSON-RPC 2.0 的播放控制与元数据插件协议

音视频 【免费下载链接】snapcast Synchronous multiroom audio player 项目地址: https://gitcode.com/gh_mirrors/sn/snapcast 点击查看 免费下载 本篇技术指南以 doc/json_rpc_api/stream_plugin.md 为骨架,结合 Snapcast 服务器端源码(s… · 2026/9/27 8:06:28

isomorphic-git readTag 完全指南:直接读取并解析 annotated tag 对象
isomorphic-git readTag 完全指南:直接读取并解析 annotated tag 对象

开发工具 【免费下载链接】isomorphic-git A pure JavaScript implementation of git for node and browsers! 项目地址: https://gitcode.com/gh_mirrors/is/isomorphic-git 点击查看 免费下载 readTag 是 isomorphic-git(一个纯 JavaScript 实现的 Gi… · 2026/9/27 8:46:24

全链路混沌工程与故障注入(Chaos Injection):测试极端网络分区下的系统自愈力
全链路混沌工程与故障注入(Chaos Injection):测试极端网络分区下的系统自愈力

全链路混沌工程与故障注入(Chaos Injection):测试极端网络分区下的系统自愈力在分布式网络监控与探针集群系统中,任何线上故障的发生都是不可预测且随机的: 专线光纤突发抖动导致 50% 随机丢包;某个中心 Co… · 2026/9/27 8:46:17

Midway 开源仓库协作指南:Issue 规范、Commit 约束与版本发布全流程解析
Midway 开源仓库协作指南:Issue 规范、Commit 约束与版本发布全流程解析

后端微服务云原生 【免费下载链接】midway 🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate w… · 2026/9/27 8:46:17

前端CI流水线构建缓存深度调优:GitHubActions与TurboCache
前端CI流水线构建缓存深度调优:GitHubActions与TurboCache

前端CI流水线构建缓存深度调优:GitHubActions与TurboCache在大型前端 Monorepo 工程或独立全栈产品的持续集成(CI/CD)发版流程中,“每次提 PR 或发版时 CI 流水线构建极其漫长(超过 8~12 分钟)” 是摧毁团队… · 2026/9/27 8:46:17

网站建设公司营销推广:3个报价策略让客户秒懂价值
网站建设公司营销推广:3个报价策略让客户秒懂价值

网站建设公司营销推广:3个报价策略让客户秒懂价值 不会写代码?想做网站又怕被坑?先别急着问建站报价。 很多老板找网站建设公司营销推广时,第一反应是“最便宜多少钱”。但真相是:低价往往意味着模板堆砌、无SEO优化、后期维护扯皮。真正的痛点不是… · 2026/9/27 8:46:11

产业资本运作之县域经济底层逻辑
产业资本运作之县域经济底层逻辑

产业资本运作之县域经济底层逻辑何伏 融通资管 投资合伙人县域经济产业资本运作,底层逻辑从来不是“资本砸出一个产业”;是“资本激活本地禀赋,长出一个产业”。别追风口,追禀赋。风口三年一变,禀赋百年不变。别拼… · 2026/9/27 8:46:11

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码