数字字帖做多了会发现,真正难的不是排版,是挑字体。免费商用的手写体一抓一大把,能直接塞进田字格当描红用的,十个里挑不出两个。这两年我陆续做过几套练字帖项目,从幼小衔接的描红本到成人硬笔临摹册,也专门拿标题里点名的喵呜体做过一轮横向对比,踩过的坑基本集中在三块:授权看不懂导致返工重排、字形不规范导致练出来的字是错的、描红印出来一团黑。这篇就把这几件事拆开说清楚,顺带给出五类我认为能直接上手用的手写体方向,以及一套可以复现的字帖生成流程。适合正在给孩子做练习册的家长、做教育类内容的设计、以及想自己做一套字帖来自用的普通用户看,不要求你是字体设计师。
1. 数字字帖对字体的要求,和普通排版完全是两套逻辑
做海报选字,越有个性越好;做字帖选字,越没个性越合格。这个反直觉的结论,是很多人第一次做字帖时最容易忽略的地方。一张字帖的核心使命是"教人把字写对",字体本身一旦带上了强烈的个人风格,练字的人就会把这种风格当成规范去模仿,最后练出来的字好看但不规范,甚至在笔画顺序和结构比例上是错的。普通字体排错了顶多难看,字帖字体排错了是误人子弟,这两件事的严重程度完全不在一个量级。
1.1 字面率、重心、笔画粗细,这三个隐形指标决定成品能不能用
字面率指的是汉字在字身框里占多大比例。市面上多数排版字体的字面率在 82% 到 92% 之间,视觉上看起来差不多,但一旦放进田字格就会被放大。假设格子边长 16mm,字体字面率 85%,那字实际占 13.6mm,四周留白 1.2mm,视觉上是舒服的;如果换成字面率只有 72% 的字体,字只占 11.5mm,缩在格子里,家长第一反应就是"这字怎么这么小"。做字帖最好控制在 80% 到 88%,低于 78% 就要靠调大字号硬撑,但字号一大,笔画又会顶格溢出,非常难受。
重心指的是字的视觉重心位置。规范楷书的单字重心基本落在字身框的中心偏上一点点,这样放在田字格里会显得"站得住"。有些手写体为了追求活泼感,会把字的重心故意压低或抬高,单个字看很俏皮,一整页排下来就会觉得字在格子里"飘",忽上忽下,这是做描红时最劝退的一种情况。
笔画粗细在描红场景下比前两项更致命。描红要求笔画边缘清晰、粗细基本一致,因为练习者要沿着笔画轮廓去写。如果字体本身的笔画粗细变化极大,比如横细竖粗相差三倍以上,或者笔画末端带大面积飞白,描红时练习者根本不知道该沿哪条线走。这也是为什么传统书法类字库字体几乎没法直接做描红,它们是为观赏设计的,不是为描摹设计的。
1.2 描红、临摹、凹槽三种字帖形态,对字体的诉求各不一样
同样是"字帖",不同形态对字体的要求差异很大,选错了就算字体再好看也白搭。我按实操经验整理了一张对照表,做之前先对号入座,能省掉大量返工。
| 字帖形态 | 对字体的核心要求 | 不合适的字体特征 | 典型翻车表现 |
|---|---|---|---|
| 描红(灰字覆盖) | 笔画边缘干净、粗细均匀、灰度可控 | 飞白多、笔锋尖锐、粗细反差大 | 印出来一片灰糊,看不出笔画 |
| 临摹(空白格对照) | 字形规范、结构匀称、重心稳定 | 重心飘、字面率偏小、异体写法 | 练出来的字结构是歪的 |
| 凹槽(物理压槽) | 笔画粗细高度一致、线条宽度足够 | 笔画有粗细渐变、线条过细 | 铣槽时细笔画断掉,无法成型 |
| 拼音田字格 | 中文与拼音字母风格统一 | 中文手写、拼音机械 | 上下两行风格割裂,很突兀 |
| 数字与加减法 | 数字字形统一、开口清晰 | 数字带花体、6 和 8 分不清 | 孩子认错数字 |
表格里最后两行是很多人忽略的。一套完整的练习册通常包含汉字、拼音、数字三部分,如果汉字用了圆润的手写体,数字却用了系统自带的机械数字,整页的观感会非常割裂。所以挑字体的时候一定要看它有没有配套的西文和数字设计,或者至少找一款风格接近的西文字体来搭配。
我在实际做的时候有个笨办法但很有效:把候选字体排成"永、我、的、是、了、中、国、人"这八个字,加上 0 到 9 和 a 到 z,全部打在同一页 A4 上,打印出来贴墙上。看三天,三天之后还觉得顺眼的再进下一步。单看屏幕很容易被骗,因为屏幕有背光,字看起来比实际打印出来要干净。
2. 授权这道坎:能免费下载和能免费商用,差着十万八千里
字体授权是字帖项目里最容易出事的一环,也是最容易被"免费商用字体合集"这类文章带偏的一环。很多合集标题写着"免费商用",点进去一看,实际授权是"个人学习免费、商业使用需授权",或者"可免费用于非商业场景,禁止嵌入电子产品"。这类信息通常藏在字体包里那个没人看的 txt 文件里,或者藏在字体站点的详情页最底部。一旦你做的字帖拿去售卖、放进付费课程、或者打包进 App,就属于典型的越界使用。
2.1 常见授权类型对照:你到底能用在哪
我把这几年遇到过的授权类型整理成了一张表,判断的时候对照着看,基本不会走偏。需要说明的是,具体条款以字体发布方提供的授权文件为准,这里给的是常见实践的归纳,用来做初步筛选。
| 授权类型 | 免费个人使用 | 免费商业使用 | 允许嵌入 PDF | 允许随产品分发字体文件 | 常见风险点 |
|---|---|---|---|---|---|
| 明确免费商用型 | 可以 | 可以 | 通常允许 | 一般不允许 | 商标注册、字库转售仍受限 |
| 开源字体协议类 | 可以 | 可以 | 允许 | 允许(需保留协议与署名) | 保留名称、衍生作品需同协议 |
| 仅个人学习免费 | 可以 | 不可以 | 视条款 | 不可以 | 最容易被误判为免费商用 |
| 免费商用但限制场景 | 可以 | 部分场景可以 | 视条款 | 不可以 | 电商、出版、嵌入常单列 |
| 完全商业授权 | 需购买 | 需购买 | 视条款 | 视条款 | 授权按人数、按项目计价 |
关键结论只有一句:做字帖最安全的路径,是优先选择开源协议发布的字体。这类字体的授权边界最清晰,允许商用、允许修改、允许嵌入文档,唯一的硬性义务通常是保留原授权文件和署名信息。对于要打印成册、要做成电子 PDF 分发、甚至要放进小程序里的字帖项目来说,这一点非常关键。
2.2 嵌入与再分发:字帖项目里最容易被忽略的两条
导出 PDF 的时候,绝大多数排版软件默认会做"字体子集嵌入"——把用到的字裁出来打进文件里,保证对方打开时显示一致。这个行为在普通文档里没人管,但在字体授权里是单独一条。有些授权明确写了"允许商业使用,但禁止嵌入电子文档",那就意味着你可以打印成纸质册子卖,但不能导出 PDF 卖。
再分发是另一条红线。字帖项目的常见形态有两种:一种是给印刷厂,需要把字体文件和设计稿一起打包过去;另一种是做在线生成工具,用户输入文字后由服务器渲染。前者涉及字体文件交付,后者涉及服务器端使用,这两种都比"我自己电脑上排版打印"的权限要求高得多。如果授权文件里没有明确写"允许嵌入"和"允许随文档分发",就默认不行,这是行业里比较稳妥的判断方式。
2.3 商业场景的边界画在哪:卖字帖、做课程、做工具
很多人对"商用"的理解停留在"我有没有直接卖这个字"。实际上判断标准更简单:只要你的行为产生了收入,或者服务于一个有收入的业务,基本就算商用。举几个具体场景:
- 打印装订成纸质字帖在网店卖,属于商用,且涉及实物分发。
- 免费送字帖,但字帖用于引流到付费课程,整体业务有收入,一般也认定为商用。
- 公司内部给员工做培训手册里的练字页,属于企业经营活动的一部分,通常算商用。
- 自己家孩子用、自己练字用,不算商用,绝大多数"个人免费"授权都覆盖。
后面几章推荐的方向,我都优先选开源协议或明确标注免费商用的类型,这样你在做上面这些场景时不用反复纠结。
3. 五类能直接上手的手写体方向,谁适合描红谁只配当封面
这一章讲的是"方向"而不是具体某一款字体。原因很实际:字体版本会更新,授权会调整,站点会下架,写死一个名字过半年可能就失效了。更可靠的做法是掌握每类字体的识别特征,然后去字体站按特征去筛。下面这五类,是我实测下来最能覆盖字帖需求的五个方向,每一类我都给出了识别特征、适配场景和实测表现。
3.1 圆头铅笔楷型:幼小衔接描红的首选
这类字体的特征是笔画末端圆润、横竖粗细接近、转折处略带圆弧,整体观感像用 HB 铅笔在纸上写的字。它的字面率通常做得比较满,在 85% 上下,塞进田字格刚好,不用额外调字号。笔画粗细均匀这一点对描红特别友好,练习者沿着轮廓写不会跑偏。
实测下来,这类字体做 6 到 8 岁孩子的描红最合适。笔画的起笔收笔都做了圆角处理,孩子用铅笔描的时候不容易描出格。缺点是它不太适合做进阶训练,因为笔画缺少必要的粗细对比,练到一定程度会显得"软",转去写真正的楷书会有落差。我的建议是把它定位在入门阶段,一本书的前三分之一用它,后面逐渐过渡到更规范的楷体。
筛这类字体的时候,检索关键词可以用"铅笔""圆体""儿童""手写楷",看样例的时候重点看"口""日""国"这类封闭结构的字,方框的四个角如果是硬直角,说明它偏黑体取向,如果带圆弧,就是铅笔楷的路子。
3.2 硬笔行楷型:成人临摹和签名练习的主力
硬笔行楷的特征是笔画之间有轻微的连带关系,横画收笔带一点点上挑,字形略扁,整体有书写速度感。这类字体不适合描红,因为连笔处的轮廓会糊成一团,但它非常适合"对照临摹"——左边印一行范字,右边留空让人照着写。
用这类字体做字帖有个诀窍:不要整篇都用行楷,初学者会看花眼。正确做法是同一个字先给一个规范楷体,再给一个行楷,让练习者看到"从正楷到行书是怎么变的"。这个对比页在成人练字市场里非常受欢迎,我自己做的那本里,对比页的翻看率明显高于纯范字页。
选这类字体要注意区分"手写行楷"和"书法行书"。书法行书的笔画粗细反差极大、飞白多,是给毛笔或软笔设计的,用硬笔去临会非常别扭。判断方法是看"三点水"这个偏旁,如果三个点大小差异超过一倍,就是书法取向,直接跳过。
3.3 儿童描红专用型:为字帖而生的窄众方向
市面上确实存在一类专门为描红设计的字体,特征是笔画极细且等宽、字形高度标准化、几乎完全没有笔锋,看起来甚至有点"呆"。很多人第一眼觉得丑,但它是真干活的。因为笔画等宽且细,描红时打印出来的灰度非常均匀,不会出现某个字黑一块浅一块的情况。
这类字体的另一大优势是字符集通常做得比较全,常用字覆盖到位,标点符号也是按字帖场景设计的,逗号句号的大小和位置都居中,不会出现标点飘在格子角落的问题。做大批量字帖的时候,字符集不全是最要命的问题——排到一半发现某个字缺字,软件自动回退到系统字体,整页风格瞬间崩掉。
这类字体适合做纯描红的低龄练习册,特别是需要大量重复同一个字的那种。缺点是风格过于工具化,做封面、做标题完全没有美感,只能当内页用。
3.4 手写仿宋型:介于规范与手写之间的过渡选择
手写仿宋是把传统仿宋的骨架和手写的笔意结合起来的一类字体,横画略细、竖画略粗,起笔有轻微的顿笔,整体比标准仿宋柔和,比行楷规范。它在字帖里的定位很特别:适合给已经掌握基本笔画、需要练习"字形结构"的中高年级学生用。
我拿这类字体做过一版古诗抄写帖,效果比预期好。因为它的字形结构接近印刷体,孩子对照着写不会学歪,同时笔画又带一点手写感,不至于像临印刷体那样死板。缺点是这类字体的字重选择通常很少,往往只有一两个字重,做不了粗细对比页。
筛选的时候看"横"画,如果横画两端有明显的三角形顿笔,且横画中间略微上拱,基本就是这一类。这类字体里质量参差比较大,有些做得很粗糙,偏旁比例失调,一定要把常用偏旁都打出来看一遍再决定。
3.5 轻手写黑型:封面、标题和非正式练习页的好帮手
最后这类是带手写味道的黑体,笔画粗细基本一致、端点圆润、结构偏方正,观感接近用马克笔写的字。它做不了描红,也做不了严格意义的临摹,但它在字帖项目里有自己的位置——封面标题、章节页、鼓励语、姓名栏。
一套字帖如果内页全是规规矩矩的楷体,翻起来会很闷。在章节页用手写黑写一句"今天也要加油",整本书的节奏感就出来了。这类字体的另一个用途是做"自由书写页",就是给孩子随便写写画画的那几页,用轻松一点的字体做提示语比用宋体自然得多。
选这类字体最重要的是看它的标点。手写黑的标点常常做得很大很夸张,如果同一页里还排了正文,标点大小不统一会非常刺眼。建议把它单独用在一页里,不要和别的手写体混排。
4. 喵呜体放进田字格会怎样:一次针对性的对比记录
标题里点名了喵呜体,我就专门拿它做了一轮测试。这款字体在各类"免费商用字体"清单里出镜率极高,很多人第一眼看到就喜欢,因为它确实可爱——笔画圆润、字形微微倾斜、转折处有明显的圆弧处理,整体像小孩子用圆珠笔写的字,带一点俏皮的味道。问题也恰恰出在这里。
4.1 它本来是为"可爱"设计的,不是为"规范"设计的
把喵呜体和规范楷体放在一起逐字比对,能看出几个系统性差异。它的横画普遍带有轻微的上扬弧度,这在视觉上会让人觉得活泼,但在书写训练里,横平是基础中的基础,练字的人如果照着带弧度的横去描,会把弧线当成正确写法。它的竖画也常带一点倾斜,单个字看是俏皮,连成一行就会显得字在往一边倒。
再就是字面率。喵呜体的字面率偏小,大约在 75% 上下,塞进 16mm 的格子里只占 12mm 左右,四周的留白明显比规范楷体多。如果为了填满格子把字号调大,笔画又会顶到格子边缘,出现"字贴边"的观感。我试过把字号调到字身占格 90%,结果"国""图"这类全包围结构的字,外框直接压线,非常难看。
4.2 三个实测问题:描红糊、重心飘、笔画黏
第一个问题在描红上最明显。喵呜体的笔画偏粗,且粗细变化不小,做成浅灰描红之后,粗笔画的区域灰度叠加,打印出来是一块明显的深灰;细笔画区域则几乎看不见。同一页上出现"黑一块、白一块",练习者根本没法沿着轮廓写。我试过把灰度调到很浅来缓解,但浅到一定程度,细笔画就直接消失了,两头堵。
第二个问题是重心。喵呜体里有些字的重心明显偏低,比如"心""之"这类字,视觉重心压在格子下半部分。单独看挺萌,但放在一整页田字格里,从上往下扫,会觉得字一行比一行沉。做临摹帖的时候这个问题会被放大,因为练习者会跟着这个重心去写。
第三个问题是笔画黏连。它的部分偏旁在缩小到 12mm 左右时会糊在一起,典型的是"氵"和"讠",三个点或者两个点之间的间距太窄,小字号下打印出来就是一个色块。描红帖的字通常在 12 到 14mm 之间,正好落在这个尴尬区间。
4.3 它在哪些位置反而是加分项,以及正确的搭配方式
说了这么多不是要否定它。喵呜体在字帖项目里有明确的适用位置,用对了效果很好。
- 封面主标题:字帖封面需要吸引孩子,喵呜体的亲和力在这里是优势,配合大字号完全没有笔画黏连的问题。
- 奖励页和贴纸:写完一页给个小星星、小印章,用这类字体写"真棒",情绪价值拉满。
- 低龄趣味练习页:给三四岁孩子的"描线条""画圈圈"这类不涉及规范书写的页面,用喵呜体做提示语很合适。
- 姓名栏和日期栏:手写感强,填上去不像印刷体那么生硬。
正确的搭配方式是"分工明确":封面和装饰用喵呜体,内页规范练习用铅笔楷或描红专用体,两套字体之间不要混排在同一行里。我见过有人把喵呜体当正文范字用,结果是整本字帖的规范性问题,只能重排。
| 对比维度 | 喵呜体类 | 圆头铅笔楷类 | 结论 |
|---|---|---|---|
| 字面率 | 约 75%,偏小 | 约 85%,适中 | 铅笔楷更适合填格 |
| 笔画粗细均匀度 | 变化明显 | 基本均匀 | 描红选铅笔楷 |
| 小字号黏连 | 偏旁易糊 | 少见 | 12mm 以下慎用喵呜体 |
| 亲和力与趣味性 | 强 | 中等 | 封面、奖励页用喵呜体 |
| 规范书写参考价值 | 低 | 高 | 范字必须用铅笔楷 |
5. 从字体到成品:一套能直接复现的字帖生成流程
掌握了选字逻辑,接下来是把手上的字体变成一页能打印的字帖。这一段给的是我自己反复用的一套参数和脚本,参数是针对 A4 纸、300dpi、儿童练字场景调的,你按自己的场景微调就行。需要说明的是,下面的参数是基于常见字帖版式做的合理取值,不是某个标准的规定值,可以按手感改。
5.1 版式参数怎么定:格子、字号、行距的换算关系
核心换算关系是:1 毫米约等于 2.835 磅,300dpi 下 1 毫米约等于 11.81 像素。做版式的时候我习惯全部用毫米思考,再换算成软件单位,这样不容易乱。
| 参数 | 幼儿描红 | 小学低年级 | 成人硬笔 | 说明 |
|---|---|---|---|---|
| 田字格边长 | 18mm | 16mm | 14mm | 年龄越大格子越小 |
| 字身占格比例 | 80% | 84% | 86% | 低于 78% 会显小 |
| 对应字号(约) | 40.8pt | 37.9pt | 34.1pt | 边长乘比例再换算 |
| 格间距 | 5mm | 4mm | 4mm | 横向略大于纵向更透气 |
| 每页列数 | 7 | 8 | 9 | 按可用宽度算 |
| 每页行数 | 9 | 10 | 11 | 留出页眉页脚空间 |
| 页边距 | 上下 22mm、左右 18mm | 上下 20mm、左右 16mm | 上下 20mm、左右 15mm | 装订侧再加 3mm |
| 描红灰度 | #CCCCCC | #C8C8C8 | #D0D0D0 | 低于 #B0B0B0 偏黑 |
描红灰度这一项值得单独说。我见过太多人直接把字体设成 50% 灰,打印出来一片糊。原因是屏幕上的 50% 灰和打印机的 50% 网点完全不是一回事,喷墨打印机会把浅灰打成密密麻麻的点,视觉上反而更深。比较稳妥的做法是灰度控制在 #C8C8C8 到 #D0D0D0 之间,然后先打一张样张确认。激光打印机和喷墨打印机的表现差异也很大,激光机偏深,喷墨机偏浅,最好用你最终要用的那台机器试。
5.2 用脚本批量生成:比手工排版省十倍的力气
如果只是做一两页,用排版软件拖一拖就行。但如果要做一整本、每个字重复三遍、还要带拼音,手工排会疯掉。我一般用一段 Python 脚本生成,逻辑很简单:先画格子,再在格子里写字。
from PIL import Image, ImageDraw, ImageFont DPI = 300 MM = DPI / 25.4 # 1 毫米对应的像素数 PAGE_W, PAGE_H = int(210 * MM), int(297 * MM) MARGIN_X, MARGIN_Y = int(16 * MM), int(20 * MM) CELL = int(16 * MM) # 田字格边长 GAP_X, GAP_Y = int(4 * MM), int(4 * MM) COLS, ROWS = 8, 10 FONT_SIZE = int(CELL * 0.84) # 字身占格 84% FONT_PATH = "your-handwriting-font.ttf" # 换成你选定的字体文件 TRACE_GRAY = (200, 200, 200) # 描红灰度,约 #C8C8C8 GRID_GRAY = (170, 170, 170) img = Image.new("RGB", (PAGE_W, PAGE_H), "white") draw = ImageDraw.Draw(img) font = ImageFont.truetype(FONT_PATH, FONT_SIZE) def draw_cell(x, y, size): """画田字格:外框 + 十字虚线""" draw.rectangle([x, y, x + size, y + size], outline=GRID_GRAY, width=2) cx, cy = x + size // 2, y + size // 2 step = 12 for i in range(x, x + size, step * 2): draw.line([i, cy, min(i + step, x + size), cy], fill=GRID_GRAY, width=1) for j in range(y, y + size, step * 2): draw.line([cx, j, cx, min(j + step, y + size)], fill=GRID_GRAY, width=1) def draw_char(ch, x, y, size): """在格子内居中写字,按实际字形包围盒对齐""" box = draw.textbbox((0, 0), ch, font=font) w, h = box[2] - box[0], box[3] - box[1] offset_x = x + (size - w) / 2 - box[0] offset_y = y + (size - h) / 2 - box[1] draw.text((offset_x, offset_y), ch, font=font, fill=TRACE_GRAY) TEXT = "永和九年岁在癸丑暮春之初会于会稽山阴之兰亭" # 按需替换 idx = 0 for r in range(ROWS): for c in range(COLS): px = MARGIN_X + c * (CELL + GAP_X) py = MARGIN_Y + r * (CELL + GAP_Y) draw_cell(px, py, CELL) if idx < len(TEXT): draw_char(TEXT[idx], px, py, CELL) idx += 1 img.save("zitie_page.png", dpi=(DPI, DPI))这段脚本有两个细节值得注意。一是draw_char里用了textbbox得到的包围盒来做居中,而不是简单地用格子中心减去字号的一半。原因在于不同字体的字形在字身框里不是绝对居中的,直接按字号居中会导致字整体偏移,尤其是带长撇长捺的字会明显偏左。用实际包围盒对齐之后,视觉重心才是真的在中间。二是格子的十字线做成了虚线,实线会干扰描红的视觉判断,虚线既提供了参照又不抢戏。
批量生成的时候,把TEXT换成一个字表文件读进来就行。我一般会把字表按"常用字频顺序"排,先练高频字,效果比按课本顺序练好得多。
5.3 打印与后处理:决定成品手感的最后一公里
电子稿做得再漂亮,打出来不行就是白搭。几个实操经验:
纸张选 80g 以上的双胶纸,太薄的纸描红时铅笔一压就破,而且背面透字。描红帖建议用 100g 左右,翻页手感和透光度都比较平衡。打印设置里一定要选"实际大小"或者 100%,不要选"适应页面",一缩放整个格子尺寸就全乱了,18mm 的格子变成 17.2mm,看着差不多,实际练字时的手感完全不同。
装订方向决定页边距。如果做的是左侧装订,左侧页边距要比右侧多留 3 到 5mm,否则装订完靠订口那几个字会被压住,没法写。如果是上翻式(骑马订),上边距要多留。这个细节做印刷的朋友提醒过我一次,之后就再没出过错。
6. 装完字体不生效、标点错位、描红太黑:几个高频故障的排查链路
最后这一段讲几个几乎必然会遇到的问题。我按"现象—排查顺序—解决办法"的方式写,方便你遇到时直接对号入座,不用从头推导。
6.1 字体明明装了,软件里就是找不到
排查顺序建议这样走。第一步,确认字体真的安装成功,重新打开软件再看一次,绝大多数软件只在启动时扫描字体列表,装完不重启是看不到的。第二步,看字体名称的排序位置,有些字体家族的命名带特殊前缀,会排到列表最前面或者最后面,往下翻翻。第三步,检查字体文件是不是只装了部分字重,有些字体包解压出来有十几个文件,只双击安装了常规体,粗体没装上,出现的情况就是在列表里能看到名字但选了没反应。
如果三步都排除了,还有一种情况:字体文件损坏或者格式不被系统支持。比较老的 TTF 在一些新系统上会出问题,转成 OTF 通常能解决。另外如果是团队协作,注意对方电脑上没装这个字体,你发过去的源文件在对方那里会全部回退成默认字体,这种"我这边好好的"的争论我遇到过不止一次,解决办法要么是导出 PDF 并确认字体已嵌入,要么是把字体文件一起打包,但这一步要先确认授权允许。
6.2 中文好看,标点和数字却很出戏
这是手写体做字帖最常见的观感问题。原因通常是字体本身的中文设计很用心,西文和数字部分是拼凑的,或者干脆缺失。症状很典型:一排工整的手写汉字里,突然冒出几个机械的阿拉伯数字,或者逗号变成了一个位置偏下的小点。
判断方法是把 0 到 9、a 到 z、以及中英文标点全打出来,和汉字排在同一行里看。如果风格明显割裂,有两个处理方案。方案一是换字体,选那些西文和数字也做了配套设计的字体,开源字体里这类比较多。方案二是拆开用,中文用主字体,数字和标点单独指定一款风格接近的西文字体,在排版软件里做字符级样式覆盖。方案二麻烦一点但灵活,我现在基本都这么做。
标点的位置问题更隐蔽。汉字标点在字身框里通常是居左下或者居中偏左的,如果字体本身没做这个偏移,标点会顶在格子正中间,看起来非常怪。做字帖的时候,建议标点单独占一格,并且关掉"标点挤压"之类的自动排版功能,人工控制位置。
6.3 描红印出来一片黑,或者浅到看不见
这个问题我在 5.1 里提了灰度,这里补充完整的排查链路。先确认是显示问题还是打印问题:屏幕上看着浅、打出来深,说明是打印机的网点扩散导致的,把灰度再调浅一档。再确认打印机类型:激光打印机对浅灰的表现普遍比喷墨深,同一份文件换机器打会差很多。然后检查纸张:同一份文件在 80g 双胶纸和 100g 铜版纸上打出来,灰度能差一档,铜版纸涂层会把墨点锁住,看起来更实。
还有一个容易被忽略的原因:字体本身的笔画有重叠。有些手写体的笔画在转折处是两笔叠在一起的,单独看是正常的粗细,做成浅灰之后重叠区域灰度相加,出现明显的深色块。这种情况下调灰度没用,只能换字体。判断方法是把字放大到 400% 看转折处的像素,如果明显比笔画中段深,就是这个问题。
6.4 一整页排下来,字忽大忽小
这是字面率不一致导致的,常见于把两款字体混排的情况。解决思路是统一按"视觉大小"对齐,而不是按字号对齐。具体做法是拿"国""口""一"这几个字做基准,把两款字体分别调到视觉上占格比例一致,再记下各自的字号,后面统一用这个字号。这个过程有点像调音,靠眼睛比靠参数准。
另外全包围、半包围结构的字天生显大,独体字显小,这是汉字本身的特性,任何字体都这样。如果追求极致的视觉统一,可以对不同类型的字做微调,但我不太建议这么做,因为字帖的目的是让人学规范写法,人为调整会让字形失真。适度接受这种不均匀,反而更接近真实的书写状态。
上面这套流程走下来,一套能用的数字字帖基本就成型了。我自己最深的体会是,字体选择这件事没有绝对的好坏,只有场景是否匹配。喵呜体做封面能让人一眼喜欢,做范字就是灾难;铅笔楷做范字稳当,做封面又太素。把每款字体放在它该在的位置上,比死磕一款"万能字体"要现实得多。