const latexToMarkdownMath = (text) => {
if (!text) return '';
const latexRegex = /\\\[([\s\S]*?)\\\]|\\\(([\s\S]*?)\\\)/g;
function replaceLatex(match, p1, p2) {
let formula = p1 || p2;
// 处理嵌套的大括号
const processBraces = (str) => {
let depth = 0;
let result = '';
for (let i = 0; i < str.length; i++) {
if (str[i] === '{') depth++;
if (str[i] === '}') depth--;
if (depth === 0 && str[i] === ' ') result += '\\;';
else result += str[i];
}
return result;
};
formula = processBraces(formula);
// 更多的替换规则
const replacements = [
[/\\sum/g, "∑"],
[/\\prod/g, "∏"],
[/\\infty/g, "∞"],
[/\\frac\{([^{}]+)\}\{([^{}]+)\}/g, "\\frac{$1}{$2}"], // 保留 \frac 命令
[/\\sqrt\{([^{}]+)\}/g, "\\sqrt{$1}"], // 保留 \sqrt 命令
[/\\left/g, ""],
[/\\right/g, ""],
[/\\arctan/g, "arctan"],
[/\\ldots/g, "..."],
[/\\cdot/g, "·"],
[/\\times/g, "×"],
[/\\pi/g, "π"],
[/\\{/g, "{"],
[/\\}/g, "}"],
[/\\in/g, "∈"],
[/\\subset/g, "⊂"],
[/\\supset/g, "⊃"],
[/\\cup/g, "∪"],
[/\\cap/g, "∩"],
[/\\equiv/g, "≡"],
[/\\approx/g, "≈"],
[/\\neq/g, "≠"],
[/\\geq/g, "≥"],
[/\\leq/g, "≤"],
[/\\pm/g, "±"],
[/\\partial/g, "∂"],
[/\\nabla/g, "∇"],
[/\\forall/g, "∀"],
[/\\exists/g, "∃"],
[/\\neg/g, "¬"],
[/\\wedge/g, "∧"],
[/\\vee/g, "∨"],
[/\\to/g, "→"],
[/\\mapsto/g, "↦"],
[/\\int/g, "∫"],
[/\\oint/g, "∮"],
[/\\infty/g, "∞"],
[/\\therefore/g, "∴"],
[/\\because/g, "∵"],
];
replacements.forEach(([regex, replacement]) => {
formula = formula.replace(regex, replacement);
});
// 处理上标和下标
formula = formula.replace(/_{([^{}]+)}/g, "_{$1}");
formula = formula.replace(/\^{([^{}]+)}/g, "^{$1}");
// 处理 \text 命令
formula = formula.replace(/\\text\{([^{}]+)\}/g, "\\text{$1}");
return p1 ? `$$${formula}$$` : `$${formula}$`;
}
return text.replace(latexRegex, replaceLatex);
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务