2017-07-18 19 views
1

Il s'agit d'un problème hérité TeX --- il aurait été plus logique d'exiger un espace lorsqu'un espace est souhaité: 12,123 est probablement un nombre, tandis que 12, 123 est probablement une liste. Hélas, c'est ce que c'est.mathjax virgules en chiffres

En relation avec MathJax rendering of commas in numbers, où la solution est la suppression des espaces via {,}. Fonctionne, mais gênant. Y a-t-il un moyen de rendre cela automatique?

Le hack dans https://github.com/mathjax/MathJax/issues/169#issuecomment-2040235 est concerné par European vs Anglo. Le hack équivalent,

<script type="text/x-mathjax-config"> 
    MathJax.Hub.Register.StartupHook("TeX Jax Ready",function() { 
    MathJax.InputJax.TeX.Definitions.number = 
     /^(?:[0-9]+(?:\,[0-9]{3})*(?:\{\.\}[0-9]*)*|\{\.\}[0-9]+)/ 
    }); 
</script> 

résout le problème de virgule dans 1,234.56 mais maintenant il y a un espace après la période (à savoir, avant 5). Je ne suis pas sûr de savoir comment l'expression régulière ci-dessus fonctionne. quelqu'un peut-il aider?

Répondre

2

Changer le motif à

/^(?:[0-9]+(?:,[0-9]{3})*(?:\.[0-9]*)*|\.[0-9]+)/ 

pour permettre 12,345.6 à traiter comme un nombre, alors que 12, 345 est une liste de deux nombres. Dans le modèle d'origine, le \{\.\} nécessite un littéral {.} (accolades incluses), pas seulement un nombre décimal.