Mixing fullwidth and halfwidth punctuation breaks rhythm
Aliases: East Asian Width · halfwidth punctuation · mixed punctuation
What it is
In a Chinese sentence the comma is sometimes 「,」 (fullwidth, one em) and sometimes , (halfwidth, a narrow cell); periods, parentheses, and quotes straddle the same two boats. Punctuation is the beat of the line: it decides where to pause, and for how long. Mixing fullwidth and halfwidth gives one passage two metronomes. Density then jumps with the “nationality” of the mark, not with meaning.
Line-start and line-end prohibition (whether a mark may sit at the head or tail of a line) is another group of rules. This is only about two widths of mark tearing the beat inside a mixed line.
Why it happens
The basic pulse of Han body is “one character, one em.” A fullwidth comma, period, or enumeration comma occupies that beat, and reads as the breath a Chinese sentence expects. A halfwidth comma occupies a sliver of the beat; with no extra space after it the next character collides and the breath is swallowed; with a Latin space after it the breath becomes a Latin word-break. When both marks alternate in one paragraph, the reader switches between a Chinese pause and a clipped English cut, and attention is pulled off meaning onto the width of the point.
Parentheses and quotes show it harder. Fullwidth brackets are a pair of doors wrapping a Han region; halfwidth brackets are two thin sticks, often overlapping Han shoulders or stacking a second seam on a Latin word space. Mixing 「」 with " " also lets opening and closing directions fail to match — the facing rules of curly ASCII quotes are not the facing rules of Han quotes.
The mix is rarely an author’s decision. Input methods, pasteboards, and CMSs each emit their own code points. A , . () pasted from an English source into a Chinese paragraph, a 「,」 pasted from Chinese into a code comment — broken rhythm is mixed encoding, projected onto the page.
Where it stops holding
Punctuation in code, regex, and API docs must stay halfwidth; that is syntax, not a Chinese sentence. An English clause inside Chinese can keep halfwidth marks inside the clause and fullwidth marks outside it — a pair of brackets around a script boundary — provided the rule is stable, not chosen per sentence. Japanese punctuation is close to Chinese but not identical (shape of the period, of the quotes); do not treat a Chinese fullwidth policy as a CJK-wide policy. On a title or a button with a single exclamation mark, the width difference barely shows as rhythm; the problem lives in multi-line body and in list copy.
Applying it
- In Chinese sentences, commas, periods, enumeration commas, colons, brackets, and quotes go fullwidth; inside a Latin phrase they go halfwidth. Do not alternate inside one Chinese sentence.
- Normalise at input and at rest (IME, paste filter). Do not expect a designer to correct the points one by one on the artboard.
- Give mixed clauses a fixed rule: halfwidth inside the English clause, fullwidth on the Chinese marks at both ends. Write it as an editorial habit so authors are not choosing live.
- Colour every punctuation mark in a real passage by fullwidth / halfwidth. If the colours flicker inside a single sentence, the beat is already following encoding, not following semantic pauses.