mikexxz
All posts

A Few Details of Typesetting Chinese Web Pages, v2

方块汉字填满格子,旁边的拉丁字母留白充足,中间箭头拉开行距,醒目标注1.7

This post was machine-translated from Chinese. Read the original

When mixing Chinese and English, a few details deserve separate attention.

Line Height

Latin letters have ascenders and descenders, which gives them some built-in visual breathing room; Chinese characters are square, and each one fills its entire cell. So Chinese body text needs a larger line height. Around 1.7 reads comfortably, while the 1.4–1.5 common on English web pages is too cramped for Chinese.

Line Width

If a line is too long, the eye easily loses its place when moving to the next line; if it's too short, lines wrap too often. With 17px body text, a content width of around 680px gives roughly 40 Chinese characters per line.

Fonts

I don't embed web fonts and use the system font stack directly: PingFang SC, Hiragino, Noto Sans CJK. Chinese font files easily run to several MB, so the cost of embedding far outweighs the benefit1.

Other

  • Don't use text-wrap: pretty for body text: in English it avoids a lone word on the last line, but in Chinese paragraphs it makes line endings ragged
  • Use text-wrap: balance for headings, so multi-line headings have more even line lengths
  • Spacing between Chinese and English (still deciding whether to use text-autospace)

Footnotes

  1. Subsetting can help, but for a blog whose content keeps changing, the maintenance cost is not small. ↩

Comments

Delete this comment?

Its content will be removed. This can’t be undone.