[Tex/LaTex] French typography: space before percent sign

babelfrenchspacing

I have come across another specific typography rule in French: one must put a non-breaking space before the percentage sign (see this handy cheat-sheet). This is also true for colons, semi-colons, exclamation and interrogation signs. The babel package documentation states that this is taken into account and that it does this spacing automatically so that the forgetful users do not need to write this space before these symbols. It seems, however, that the percentage sign is not considered among these.

Question: why is the percentage sign not actively spaced in french babel?

This is easy to resolve with a redefinition of \% like:

\let\oldpercent=\%
\renewcommand{\%}{\ifmmode\oldpercent\else\thinspace\oldpercent\fi}

it just seems weird that babel did not do it automatically. Moreover, the spanish option does the separation. Maybe this is a bug of the frenchb/french language option or it is me who is misinformed?


Related questions: Paragraph spacing in other languages

Best Answer

Iguess that the issue here is that :, etc., are punctuation, but % is not really. It's a unit, of sorts, and so deserves different handling. (To be honest, I always think babel is a bit of a mess: for consistency French and Spanish should treat % in the same way.)

As has been pointed out, there are packages available for handling units, including %, for example my own siunitx.

Related Question