如何阻止Pandoc在数学模式下给作为小数点的逗号后加空格
解决方案
方法1:使用Lua过滤器修改数学内容
编写Lua过滤器遍历文档中的数学节点,移除逗号后的多余空格:
- 创建名为
fix-math-comma.lua的文件,内容如下:
function Math(el) -- 替换数学文本中逗号后的所有空格(包括窄空格) el.text = string.gsub(el.text, ",%s+", ",") return el end
- 转换时调用该过滤器:
echo '0,5 $0,5$' | pandoc --lua-filter=fix-math-comma.lua
执行后输出的HTML中,数学模式内的逗号后将不再有多余空格:
<p>0,5 <span class="math inline">0,5</span></p>
方法2:配置MathJax模拟icomma效果
若文档使用MathJax渲染数学公式,可通过配置启用icomma包处理逗号作为小数点的场景:
- 在Markdown文档开头添加以下HTML片段(或通过
--include-in-header参数引入):
<script> MathJax = { tex: { packages: {'[+]': ['icomma']} } }; </script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
- 转换时指定使用MathJax:
echo '0,5 $0,5$' | pandoc --mathjax
MathJax会自动识别逗号作为小数点的用法,避免添加多余空格。
内容的提问来源于stack exchange,提问作者Massimo2013
相关产品推荐
相关产品推荐

