Python中LaTeX行内公式转MathJAX格式的简化实现方法
用Python正则单行替换LaTeX行内公式为MathJAX格式
直接使用Python的re.sub()函数结合正则表达式就能实现单行替换,完美处理单个或多组成对$包裹的公式:
import re # 单个公式示例 eq = "$E = mc^2$" eqmathjax = re.sub(r"\$(.*?)\$", r"\\(\1\\)", eq) # 输出: "\(E = mc^2\)" # 多个公式示例 eq_multi = "$E = mc^2$ and $F = ma$ (N)" eqmathjax_multi = re.sub(r"\$(.*?)\$", r"\\(\1\\)", eq_multi) # 输出: "\(E = mc^2\) and \(F = ma\) (N)"
正则说明
r"\$(.*?)\$":\$:转义匹配原始的$符号(避免被正则当作结束符)(.*?):非贪婪捕获组,精准匹配两个$之间的公式内容(防止多组公式被误合并)
r"\\(\1\\)":\\(和\\):在Python字符串中转义为MathJAX需要的\(和\)\1:引用正则捕获到的公式内容,实现包裹替换
内容的提问来源于stack exchange,提问作者Matt Pitkin
相关产品推荐
相关产品推荐

