で
あります。そのため、あなたは数字として扱われる「0.12」が見えなくなっています。 AsciiMathには3桁ごとにカンマを解析する仕組みがありません。
私が示唆できる最良の方法は、AsciiMathプレフィルタを使用して、AsciiMathが前処理してAsciiMathが式を解析する前にコンマを削除することです。ただ前にトリックを行う必要がありますMathJax.jsをロードするスクリプトをページに
<script type="text/x-mathjax-config">
MathJax.Hub.Register.StartupHook("AsciiMath Jax Ready", function() {
function removeCommas(n) {return n.replace(/,/g,'')}
MathJax.InputJax.AsciiMath.prefilterHooks.Add(function (data) {
data.math = data.math.replace(/\d{1,3}(?:\,\d\d\d)+/g,removeCommas);
});
});
</script>
のようなものを追加します。これは、カンマが出力に表示されないことを意味します。カンマを4桁以上持つすべての数字にコンマを追加したい場合を除いて、それを行う自然な方法はありません(コンマを使用していなくても)。これは、ポストフィルタが生成されたMathMLに戻って、その数値をコンマで区切って変換する必要があります。次のようなものがあります。
MathJax.Hub.Register.StartupHook("AsciiMath Jax Ready", function() {
function removeCommas(n) {
return n.replace(/,/g,'');
}
function addCommas(n){
return n.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
function recursiveAddCommas(node) {
if (node.isToken) {
if (node.type === 'mn') {
node.data[0].data[0] = addCommas(node.data[0].data[0]);
}
} else {
for (var i = 0, m = node.data.length; i < m; i++) {
recursiveAddCommas(node.data[i]);
}
}
}
MathJax.InputJax.AsciiMath.prefilterHooks.Add(function (data) {
data.math = data.math.replace(/\d{1,3}(?:\,\d{3})+/g, removeCommas);
});
MathJax.InputJax.AsciiMath.postfilterHooks.Add(function (data) {
recursiveAddCommas(data.math.root);
});
});
が動作します。
"decimal: '、'"を追加すると、千単位の区切り記号(おかげで)に役立ちますが、MathJaxは小数点記号の後にスペースを追加します(例:「0.12」)。その問題の解決法はありますか? –