中文排版指南
中文排版的基本原则:标点、标点挤压、避头尾、中西文混排、段落缩进和对齐、引号和着重号、竖排、注音,以及网页 CSS 速查和公文排版。
中文排版的基本原则
适合谁看:刚开始做中文书籍、文章、网页排版,想先建立整体概念的设计师、编辑和前端开发者。
本书主要依据 W3C 发布的《中文排版需求》(Requirements for Chinese Text Layout,简称 clreq)。它由中文排版从业者和标准专家共同编写,覆盖简体和繁体、横排和直排,是目前最系统的公开参考。
方块字和「密排」
clreq 总结的中文排版几条根本原则:
每个汉字和标点都占一个正方形的字框。 字号就是字框的大小。
默认密排。 汉字之间不额外加字距,一个挨一个排。
行长是字号的整数倍。 这样每行能放下整数个字,行首行尾都能对齐。
除段落最后一行外,每行两端对齐。 中文书籍正文极少用左对齐、右边参差的排法。
这几条决定了后面很多规则:标点要能挤压、行尾要能调整,都是为了在保持密排的同时让每行两端对齐。
常用四种字体
clreq 把宋体、楷体、黑体、仿宋列为中文排版最重要的四种字体:
字体
典型用途
宋体(明体)
正文、标题、注释,最常用
楷体
教科书、引文、对话、出处;台湾公文多用楷体
黑体
标题、图说、强调;数字媒体上也越来越多用作正文
仿宋
文艺作品、古籍、副标题;中国大陆政府公文正文
各类字体的来历见《宋体、黑体、楷体、仿宋:四大类从哪来》。
字号:「号」和「点」
中文排版至今常用「号」。clreq 给出的常见换算(仅供参考):
号
点(pt)
初号
42
一号
27.5 / 28
小一
24
二号
21 / 22
小二
18
三号
15.75 / 16
四号
13.75 / 14
小四
12
五号
10.5
小五
9
六号
7.875 / 8
七号
5.25
书籍正文常用五号(10.5 pt),报刊常用小五(9 pt);clreq 认为正文不宜小于六号。
行长
clreq 给出的参考:多数书籍正文每行 17 到 40 字;不宜少于 10 字;横排不宜超过 48 字,竖排不宜超过 55 字。屏幕上的正文字号、行距建议见《正文用字:字号、行距和字重》。
本书的结构
标点:《标点符号:大陆与港台的写法差异》、《标点挤压》、《行首行尾禁则》
混排与段落:《中西文混排》、《段落:缩进、对齐、孤字》
特殊排法:《引号、书名号和着重号》、《竖排》、《注音和拼音》
落地:《在网页上实现中文排版:CSS 速查》、《公文排版:字体和字号》
参考资料
标点符号:大陆与港台的写法差异
适合谁看:同时处理简体、繁体内容,或者发现标点「位置不对」的设计师、编辑和开发者。
点号和标号
clreq 依照《标点符号用法》(GB/T 15834—2011)把中文标点分为两类:
点号:表示停顿。句内点号有顿号、逗号、分号、冒号;句末点号有句号、问号、叹号。
标号:标示词语或句子的性质。有引号、括号、破折号、省略号、着重号、连接号、间隔号、书名号、专名号、分隔号。
最大的差别:标点放在字框的哪里
地区
点号的位置
中国大陆
横排时在字框左下角,竖排时在字框右上角
台湾、香港
在字框正中
Unicode 并没有为这两种写法分开编码,同一个「,」在不同字体里位置不同。所以:
简体内容用简体字体,繁体内容用对应地区的字体,标点才会在正确的位置;
网页上用
lang 属性标明语言(
zh-Hans、
zh-Hant、
zh-TW、
zh-HK 等),浏览器和字体才能选对字形。
其他差异
项目
中国大陆
台湾
引号
横排用弯引号 “ ” ‘ ’,先双后单;竖排用直角引号
直角引号「 」『 』,先单后双
书名号
《 》,内层用〈 〉
甲式为波浪线,乙式为《 》〈 〉
着重号
字下加点
规范手册未收录,部分出版物使用
几个容易打错的符号
省略号:占两个字的位置,六个点,居中。通常用两个
…(U+2026)。不能拆成两行。
破折号:占两个字的位置,通常用两个
—(U+2014)。
间隔号:用于外国人名、书名与篇名之间,常用
·(U+00B7)。
不要用全角英文字母和数字。 clreq 建议文本里使用普通的西文字母和数字,由字体和排版引擎处理宽度。
科技文献的例外
公式较多的科技图书,句号可以统一用西文句号「.」,这是 clreq 和国家标准都允许的。一份文档里保持一致即可。
参考资料
标点挤压
适合谁看:觉得中文段落里标点「空得太多」,想知道怎么收紧的设计师和开发者。
为什么要挤压
中文标点(除省略号、破折号等占两格的以外)通常占一个汉字的宽度,但字形只占其中一半左右,另一半是空白。两个标点连在一起,比如「。」」或「)、」,中间就会出现很大的空隙。
clreq 说明:是否调整标点宽度属于排版风格。台湾很多印刷品不调整;中国大陆和香港的出版物多数会调整。
连续标点怎么挤
clreq 给出的原则:
两个相邻标点原本占 2 个字宽,应缩减为 1.5 个字宽;排版风格可以进一步缩到 1 个字宽;
挤压的方向是让开始、结束的夹注符号(引号、括号、书名号)紧贴被夹注的内容。
例如「他说:“好。”」中,「。”」两个标点连在一起,就要把空白挤掉一部分。
行首、行尾的标点
行首出现开始的引号、括号时,可以去掉它前面半个字的空白;
依照 GB/T 15834—2011 第 5.1.10 条,原本占一个字宽的标点出现在行尾时,应缩减其末侧半个字的空白。
哪些标点不能挤
clreq 列出的不可调整标点包括:大陆式的半字连接号、间隔号、分隔号(本来就只占半字);港台式横排的问号、叹号,以及竖排的冒号、分号、问号、叹号(固定占一个字宽)。
软件里怎么做
InDesign:段落设置里的「标点挤压」(Mojikumi)设置,可以选用或自定义挤压规则;
网页:CSS 的
text-spacing-trim 属性可以处理连续标点和行首标点的挤压,目前只有 Chrome 系浏览器支持(Chrome 123 起),见《在网页上实现中文排版:CSS 速查》;
字体:有的字体自带
halt(半宽替代)、
chws(上下文半宽间距)等 OpenType 功能,排版软件或 CSS
font-feature-settings 可以调用。
参考资料
行首行尾禁则
适合谁看:发现段落里有标点跑到行首,想知道规则和处理办法的编辑、设计师和开发者。
什么是禁则
为了阅读顺畅,很多标点不能出现在行首或行尾。这项规则从活字排版时代就开始通行。clreq 把它分为四个级别:
级别
规则
不处理
完全不管,常见于台湾、香港的报刊
基本处理(最推荐)
点号、结束引号、结束括号、结束书名号、连接号、间隔号、分隔号不能在行首;开始引号、开始括号、开始书名号不能在行尾
GB 法
在基本处理之上,分隔号也不能在行尾
严格处理
在 GB 法之上,破折号、省略号也不能在行首
一份文档里的级别应当统一。
处理顺序:先挤进,后推出
遇到标点要落到下一行行首时:
先挤进:先通过标点挤压,看能否把这个标点挤回上一行;
后推出:挤不下,再把上一行最后一个字推到下一行,和标点一起;
上一行因此空出来的位置,按优先顺序拉开,最后才平均加大字距。
所以标点挤压要先于禁则处理,见《标点挤压》。
不能拆开的内容
clreq 还规定了「符号分离禁则」,下面这些不能拆到两行:
占两个字的标点:破折号、省略号(连续多个时允许拆);
一个阿拉伯数字整体;
数字和后面的
%、
‰、
°、
℃;
正负号和后面的数字;
货币符号和数字;
上标、下标、注释记号和被标注的文字;
西文单词(除可加连字符的位置外)。
行尾点号悬挂
日文排版里常把行首的逗号、句号「挂」到上一行行尾、伸出版心。clreq 说明绝大多数中文出版物没有这个习惯;港台点号居中,横排时尤其不适合悬挂。
软件里怎么做
InDesign、方正飞翔等专业排版软件都有禁则设置;
网页:浏览器默认就会避免大部分标点出现在行首,CSS
line-break: strict 可以更严格,见《在网页上实现中文排版:CSS 速查》。
参考资料
中西文混排
适合谁看:中文里常夹着英文、数字,想知道该不该加空格、怎么加的人。
怎么挑搭配的西文字体,见《中文字体怎么搭配:标题、正文和中西文混排》。本页讲间距和摆放的规则。
间距:不超过四分之一个字
clreq 的原则:
汉字和西文字母、阿拉伯数字之间,使用不多于四分之一个汉字宽的字距或空白;
西文、数字在行首或行尾时,不加空白;
中文标点前后、开始括号引号之后、结束括号引号之前的西文和数字,不加空白。
例如「使用 iPhone 拍摄」中,「用」和「i」之间、「e」和「拍」之间可以有约四分之一字的间距;而「(iPhone)」括号内侧不加。
手动加空格,还是交给软件
做法
优点
缺点
手动在中西文之间打一个空格
任何环境都能看到间距
空格宽度随西文字体变化,常常超过四分之一字;文本里多了字符,搜索、复制时可能不便
交给排版软件或浏览器自动加
宽度准确,文本干净
依赖软件支持
clreq 也承认可以用普通的西文空格代替。实际工作中,一份文档或一个网站统一一种做法最重要。
排版软件:InDesign 的中文排版设置可以自动处理中西间距。
网页:CSS
text-autospace 可以让浏览器自动在中西文之间加间距,它的默认值就是
normal,所以在支持的浏览器里默认就会生效;不想要时写
text-autospace: no-autospace。据 MDN 兼容性数据,Chrome 140、Firefox 145、Safari 18.4 起支持,见《在网页上实现中文排版:CSS 速查》。它只在中西文直接相邻的地方加间距,已经手动打了空格的地方通常不会再叠加。
数字用什么字体
横排时西文字母用比例字体;阿拉伯数字可以用比例或等宽字体;
表格、价格、时间等需要上下对齐的数字,用等宽数字(CSS:
font-variant-numeric: tabular-nums)。
全角字母和数字
不要用全角的「ABC」「123」来凑整齐。clreq 建议文本里使用普通的西文字符,由字体和排版软件处理宽度。
竖排里的西文
竖排时西文有三种摆法:逐字直立、整体顺时针旋转 90°、两三位数字横排(纵中横),见《竖排》。
参考资料
段落:缩进、对齐、孤字
适合谁看:排书籍、长文章或网页正文,想让段落看起来「像中文书」的编辑、设计师和开发者。
段首缩进两个字
clreq 说明:中文出版物段首缩进以两个汉字为标准;多栏、每栏字数少的杂志,有时只缩一个字。常见的三种段落形式:
所有段落首行都缩进——几乎所有中文书籍和杂志都这样;
篇章第一段不缩进,其余缩进——多见于西文书籍;
都不缩进,段与段之间加间距——部分书籍、杂志和很多网页这样。
传统中文书籍段落之间不加空行;空一行表示一节结束。如果选择「不缩进、加段间距」的形式,就不要再用空行分节,以免留白过多。
网页上用 CSS 实现缩进:
p { text-indent: 2em; }
不要用全角空格或
来缩进,换了字号、换了设备就会对不齐,也会混进文本。
两端对齐
中文正文原则上两端对齐。中文能调整的地方比西文多:标点空白、中西文间距、最后才是字距。网页上:
p { text-align: justify; }
浏览器的两端对齐会把多出的空间分配到字与字之间。行尾有长的英文单词或网址时,可能出现字距明显拉开的行,可以给这类内容设置
overflow-wrap: anywhere 或
word-break: break-all(只用在网址等局部)。
凸排
剧本对白、编号列表、法律条文等,常常首行不缩进、第二行起缩进,叫「凸排」:
.dialog { padding-left: 4em; text-indent: -4em; }
孤字和孤行
中文排版传统有「孤字不成行、孤行不成页」的说法:
孤字:段落最后一行只有一个字(或一个字加标点)。处理办法是从上一行拉一个字下来,或删改文字;
孤行:段落最后一行单独跑到下一页顶部。
网页上可以试试
text-wrap: pretty,浏览器会尽量避免最后一行只有很少的字;打印样式可以用
orphans、
widows 控制分页。
参考资料
引号、书名号和着重号
适合谁看:要处理引号样式、书名号或强调方式的编辑、设计师和开发者。
引号
地区
横排
竖排
嵌套顺序
中国大陆
弯引号 “ ” ‘ ’
直角引号『 』「 」
先双后单
台湾
直角引号「 」『 』
直角引号
先单后双
几点细节:
引文有多段时,每段开头用开始引号,只在最后一段末尾用结束引号;
弯引号 “ ” 在 Unicode 里和西文共用,字体不同,宽度可能是全角也可能是半角。中文正文要用全角宽度的弯引号,这取决于字体和
lang 设置;
不要直接输入竖排专用的引号符号(如 U+FE41),竖排时交给软件或字体自动替换。
书名号
中国大陆:一律用《 》,书名号里还有书名号时内层用〈 〉;
台湾:甲式是标在字下的波浪线,乙式是《 》〈 〉,前者标书名,后者标篇名。
专名号
标在人名、地名等专有名词下方的直线,现在多见于古籍整理。相邻两个专名的线要断开。
着重号
着重号是标在字下(横排)或字右侧(竖排)的小圆点,用来强调。clreq 指出:
横排中文着重号在字的下方,这和日文(在上方)不同;
标点符号下面不加着重号。
网页上用
text-emphasis:
em.zh {
font-style: normal;
text-emphasis: filled circle;
text-emphasis-position: under right;
}
under right 表示横排在下、竖排在右。
em 默认是斜体,中文字体没有真正的斜体,浏览器会人工拉斜,所以要用
font-style: normal 去掉。
其他强调方式
换用黑体或加粗:最常见,clreq 也提到用较粗的黑体强调;
换用楷体:常用于引文、对话;
避免中文斜体:中文字体基本没有斜体设计,人工拉斜效果差。
参考资料
竖排
适合谁看:做古籍、诗词、书法风格或传统风格的版面,需要竖排中文的设计师和开发者。
竖排和横排的区别
clreq 列出的主要差异:
项目
竖排
横排
文字方向
从上到下
从左到右
行的方向
从右到左
从上到下
翻页
书从左往右翻(右侧装订)
书从右往左翻(左侧装订)
大陆标点位置
字框右上角
字框左下角
大陆引号
直角引号「 」
弯引号 “ ”
图表说明
放在图表左右
放在图表上下
标点要换字形
竖排时,括号、引号、书名号、破折号、省略号要转 90°;大陆式的逗号、句号要从左下角挪到右上角。这些通常由字体里的竖排字形(OpenType
vert、
vrt2 功能)自动完成,所以竖排一定要用支持竖排的字体。字体不支持时,标点会躺倒或位置错误。
西文和数字怎么摆
clreq 列出三种:
逐字直立:单个字母、首字母缩写(如 GDP),用和汉字等宽的字形;
整体顺时针转 90°:一般的英文单词、句子、四位以上的数字;
纵中横:两三位数字横着排在一个字的位置里,如「28」。
竖排时也常直接用汉字数字(如「二〇二六年」)。
网页上的竖排
.vertical {
writing-mode: vertical-rl; /* 从上到下,行从右到左 */
text-orientation: mixed; /* 中文直立,西文旋转 */
}
.vertical .tcy {
text-combine-upright: all; /* 纵中横 */
}
据 MDN 兼容性数据:
writing-mode 在 Chrome 48、Firefox 41、Safari 10.1 起无前缀支持;
text-combine-upright 在 Chrome 48、Firefox 48、Safari 15.4 起支持。
注意:
竖排时
width 和
height 的作用对调,用
inline-size、
block-size 这类逻辑属性更省事;
竖排要加
lang="zh-Hans" 或相应的语言标记,浏览器和字体才能选对标点字形。
参考资料
注音和拼音
适合谁看:做儿童读物、语文教材、对外汉语材料,需要给汉字标拼音或注音的设计师和开发者。
行间注
标在字旁边的小字叫「行间注」,在网页和排版软件里一般叫 ruby。clreq 总结的中文用途主要是:
标音:汉语拼音、注音符号;
释义:外来语、缩写旁标中文,或译名旁标原文;
批语:古籍里的行间评点。
拼音
汉语拼音只用于横排,一般放在汉字上方(也有放下方的);
给儿童看的材料,常常每个字单独标音;给汉语学习者的材料,常常按词连写,词与词之间加空格;
拼音的声调符号要用带调字母(如 ā、é),字体要能显示这些字母,以及 ü 和带调的 ǖ、ǘ、ǚ、ǜ。
注音符号
主要在台湾使用;
一般标在汉字右侧,竖排、横排都是;
每个字不超过三个注音符号,再加声调符号。
网页上怎么写
汉字
按词标注:
中国
样式:
ruby { ruby-position: over; } /* 拼音在上方 */
rt { font-size: 0.5em; }
注音符号放在字右侧需要
ruby-position: inter-character,目前浏览器支持有限,正式项目要先测试。
排版软件
InDesign 有「拼音」(Ruby)功能;Word 有「拼音指南」。批量标注时,先确认多音字是否标对。
参考资料
在网页上实现中文排版:CSS 速查
适合谁看:要把前面几页的中文排版规则落到网页上的前端开发者。
浏览器支持数据来自 MDN 兼容性表,截至 2026 年 10 月;上线前请到 MDN 再确认一次。
一份起步样式
html:lang(zh) {
line-height: 1.75;
text-autospace: normal; /* 中西文之间自动加间距(这也是默认值) */
text-spacing-trim: normal; /* 连续标点挤压(Chrome 系) */
line-break: strict; /* 更严格的行首行尾禁则 */
hanging-punctuation: none;
}
article p {
text-indent: 2em;
text-align: justify;
margin: 0;
}
em:lang(zh) {
font-style: normal;
text-emphasis: filled circle;
text-emphasis-position: under right;
}
属性对照
需求
CSS
说明
声明语言
HTML
lang="zh-Hans" /
zh-Hant
影响标点字形、换行、字体选择,最重要的一步
中西文间距
text-autospace
Chrome 140、Firefox 145、Safari 18.4 起支持;默认值就是
normal,不想要时写
no-autospace
标点挤压
text-spacing-trim
目前只有 Chrome 系(123 起)支持
行首行尾禁则
line-break: strict
浏览器默认已处理大部分
段首缩进
text-indent: 2em
不要用全角空格
两端对齐
text-align: justify
着重号
text-emphasis、
text-emphasis-position
中文在下方
竖排
writing-mode: vertical-rl
见《竖排》
纵中横
text-combine-upright: all
注音拼音
、
ruby-position
见《注音和拼音》
等宽数字
font-variant-numeric: tabular-nums
表格、价格
禁止人工加粗、拉斜
font-synthesis: none
字体没有对应字重时
调用字体功能
font-feature-settings: "halt" 等
取决于字体是否支持
不支持的浏览器怎么办
这些属性在不支持的浏览器里会被忽略,页面仍然正常显示,只是少了相应的优化。可以放心作为「渐进增强」加上。需要在所有浏览器里都有中西文间距时,有两种办法:
在内容里统一手动加空格;
用脚本在中西文之间插入带间距的元素(会改动 DOM,要评估对搜索、复制的影响)。
中文字体栈
见《中文字体栈怎么写》。
参考资料
公文排版:字体和字号
适合谁看:要按国家标准排党政机关公文、或做公文模板的行政人员、设计师和开发者。
依据
党政机关公文的格式由国家标准《党政机关公文格式》(GB/T 9704—2012)规定。下面列出和字体字号有关的主要要求,完整要求以标准原文为准。
字体字号
位置
字体字号
标题
2 号小标宋体
正文
3 号仿宋体
正文第一层标题(一、)
黑体
第二层标题((一))
楷体
第三层(1.)、第四层((1))
仿宋体
页码
4 号半角宋体阿拉伯数字
标准还规定:如无特殊说明,公文格式各要素一般用 3 号仿宋体字;特定情况可以作适当调整。
版面
纸张:A4(210 mm × 297 mm);
版心:156 mm × 225 mm;
一般每面排 22 行,每行排 28 个字,并撑满版心。
字体从哪里来
「小标宋」「仿宋」「楷体」是字体类别名。Windows 自带「仿宋」「楷体」「黑体」「宋体」,没有自带「小标宋」,单位通常另行采购,例如方正小标宋;
采购和使用商业字体要注意许可范围,见《字体许可证怎么读:一张检查清单》;
做电子公文模板、网页公文时,要确认字体的网页或嵌入授权。
常见问题
3 号是多大? 按 clreq 给出的换算,3 号约为 15.75 至 16 pt,各软件取值略有差异。见《中文排版的基本原则》。
仿宋和仿宋_GB2312 有什么区别? 后者是早期按 GB 2312 字符集制作的版本,字数较少;新版「仿宋」覆盖的字更多。遇到生僻人名、地名缺字时,参考《生僻字为什么打不出、显示不了》。
参考资料