Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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

share|improve this question
    
I guess that the issue here is that :, etc., are punctuation, but % is notreally. It's a unit, of sorts, and so desereves different handling. (To be honest, I always think babel is a bit of a mess.) –  Joseph Wright May 6 '11 at 14:56
    
You might want to use the siunitx package to deal with the formating of numbers with units. –  Frédéric May 6 '11 at 14:57
    
I agree with @Joseph Wright: % 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:14
    
I also agree with @Frédéric, I will use siunitx and 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
    
I've summarised things into an answer of sorts. –  Joseph Wright May 6 '11 at 15:19
add comment

1 Answer

up vote 9 down vote accepted

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.