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
:, etc., are punctuation, but%is notreally. It's a unit, of sorts, and so desereves different handling. (To be honest, I always thinkbabelis a bit of a mess.) – Joseph Wright♦ May 6 '11 at 14:56siunitxpackage to deal with the formating of numbers with units. – Frédéric May 6 '11 at 14:57%is not a punctuation but a unit. This would justify the fact that babel does not handle it. However, the fact that it is handled in the Spanish version contradicts the justification (and in Spanish it is not a punctuation symbol either). In other words, babel should either handle it or not for all languages. So, yes, babel is a bit of a mess. But most languages are a mess :-) – YuppieNetworking May 6 '11 at 15:14siunitxand be done with it. If either of you wants to answer this question, I will accept it then. – YuppieNetworking May 6 '11 at 15:15