中文排版指南 中文排版的基本原则:标点、标点挤压、避头尾、中西文混排、段落缩进和对齐、引号和着重号、竖排、注音,以及网页 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 总结的中文用途主要是: 标音:汉语拼音、注音符号; 释义:外来语、缩写旁标中文,或译名旁标原文; 批语:古籍里的行间评点。 拼音 汉语拼音只用于横排,一般放在汉字上方(也有放下方的); 给儿童看的材料,常常每个字单独标音;给汉语学习者的材料,常常按词连写,词与词之间加空格; 拼音的声调符号要用带调字母(如 ā、é),字体要能显示这些字母,以及 ü 和带调的 ǖ、ǘ、ǚ、ǜ。 注音符号 主要在台湾使用; 一般标在汉字右侧,竖排、横排都是; 每个字不超过三个注音符号,再加声调符号。 网页上怎么写 汉hàn字zì 按词标注: 中国Zhōngguó 样式: 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 字符集制作的版本,字数较少;新版「仿宋」覆盖的字更多。遇到生僻人名、地名缺字时,参考《生僻字为什么打不出、显示不了》。 参考资料