Accueil > Généralités techniques > Des virgules dans les nombres
Des virgules dans les nombres
samedi 13 novembre 2021, par
En mode mathématique, même en utilisant un package francisant (l’option french
de babel
par ex.) LaTeX suit ce qu’on écrit : $12.345$
donnera 12.456 et $12,345$
donnera 12,456
Pour LaTeX
La solution générale est de placer dans le préambule :
- \mathcode`\.="013B
La première ligne règle la virgule comme séparateur décimal pour tout ce qui est géré par
\siunitx
comme \num{123.45}
ou \SI{123.45}{\m\per\sec}
, la seconde pour ce qui relève des mathématiques. Mais si le code est généré automatiquement, par exemple importé de R par knitr ou simplement un xtable, on obtiendra le point décimal anglo-saxon. Sauf à mettre le nombre dans une commande \num
ou, pour un tableau, de définir comme type de colonne S
.
Pour R
Si vous voulez gérer ce problème au niveau de R il faut activer l’option :
options(OutDec = ",")
Par exemple pour avoir un tableau généré par xtable avec des virgules :
Ne pas oublier de l’annuler après car sinon ça peut introduire des erreurs dans la suite de la session. Dans le corps du texte, un nombre généré par un \Sepxr
n’est pas en mode mathématique. Il faut forcer la reconnaissance. Deux solutions : -* Brutale, simple mais pas toujours idéale : $\Sepxr{mean(taille)}$
. Des problèmes de police peuvent se poser. -* Plus élégante. On charge le package siunitx
(de toute façon je ne vois pas comment faire sans) et on écrit : \num{\Sepxr{mean(taille)}}
ou, encore plus élégant quand on a une unité : \SI{\Sepxr{mean(taille)}}{\meter}
.