LaTeX 公式渲染修复指南
问题描述
尽管服务器端已正确配置 KaTeX,但在浏览器中公式可能仍然显示为纯文本 $$...$$。
这通常是由于以下原因:
- KaTeX 资源加载失败
- 浏览器缓存了旧版本的 HTML
- JavaScript 执行时机问题
- 其他 JavaScript 错误
诊断步骤
第一步:访问诊断页面
打开浏览器访问:
http://localhost:8080/LATEX_DIAGNOSTIC.html
这个页面将自动检测并报告渲染状态。
第二步:查看渲染状态
在诊断页面中,你会看到多个公式:
成功状态(✅):
- 行内公式:$E = mc^2$ 应该与文字行内对齐,字体精美
- 显示公式:$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$ 应该居中显示,排版精美
失败状态(❌):
- 所有公式显示为纯文本
$$...$$ - 公式显示为乱码或方块
第三步:检查浏览器控制台
如果渲染失败,按 F12 打开浏览器控制台:
1. Network 标签页
- 检查
katex.min.js是否加载成功(状态 200) - 检查
auto-render.min.js是否加载成功 - 如果有红色错误,说明资源加载失败
2. Console 标签页
- 查看是否有红色 JavaScript 错误
- 如果有
renderMathInElement is not defined错误,说明 KaTeX 未加载
3. Elements 标签页
- 检查公式元素是否有
.katex或.katex-html包裹 - 如果没有,说明 KaTeX 未执行渲染
修复方案
方案 1: 强制刷新浏览器缓存
Chrome/Edge:
- Windows/Linux:
Ctrl + Shift + R - Mac:
Cmd + Shift + R
Firefox:
- Windows/Linux:
Ctrl + F5 - Mac:
Cmd + Shift + R
Safari:
Cmd + Option + E(清空缓存) 然后刷新
方案 2: 清除浏览器缓存
Chrome:
- 按
F12打开开发者工具 - 右键点击刷新按钮
- 选择 "清空缓存并硬性重新加载"
Firefox:
- 打开 "选项" > "隐私与安全"
- 点击 "清除数据"
- 勾选 "缓存的 Web 内容" 并清除
方案 3: 检查 KaTeX 资源加载
在浏览器控制台执行以下代码:
// 检查 KaTeX 是否加载
if (typeof katex !== 'undefined') {
console.log("✅ KaTeX 已加载");
console.log("版本:", katex.version);
} else {
console.log("❌ KaTeX 未加载");
}
// 检查渲染函数
if (typeof renderMathInElement !== 'undefined') {
console.log("✅ renderMathInElement 可用");
} else {
console.log("❌ renderMathInElement 不可用");
}
// 手动触发渲染
var content = document.querySelector('.article-content');
if (content && typeof renderMathInElement !== 'undefined') {
renderMathInElement(content, {
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "$", right: "$", display: false}
]
});
console.log("🔄 已手动触发渲染");
}
方案 4: 检查是否已使用最新模板
确保 blog/articletemplate_v2.php 存在并已加载:
# 在 PowerShell 中运行
php -r "require_once '_blog/config.php'; echo (file_exists('_blog/article_template_v2.php') ? '✅ 新模板存在' : '❌ 新模板不存在');"
如果新模板不存在,请重新创建:
<?php
// 在 _blog/article_template_v2.php 中
function generateArticleHtml($title, $content, $currentDir) {
// 使用字符串拼接方式构建 HTML
$rootPath = getRootPath($currentDir);
$html = '<!DOCTYPE html>' . "\n";
// ... 完整模板
return $html;
}
?>
方案 5: 重新生成 HTML
# 重新生成 mHC 研读文件
php -r "require_once '_blog/config.php'; checkAndUpdateHtml('agi/mHC研读.md', 'agi/mHC研读.html'); echo 'Regenerated';"
# 或者直接访问
http://localhost:8080/LATEX_DIAGNOSTIC.html
快速测试
访问以下 URL 快速测试:
- 诊断页面(推荐):
http://localhost:8080/LATEX_DIAGNOSTIC.html
- 简单测试页:
http://localhost:8080/test-latex.html
- mHC 论文:
http://localhost:8080/agi/mHC研读.html
预期结果
渲染成功时:
- 所有公式显示精美
- 行内公式与文本对齐
- 显示公式居中
- 字体清晰,排版正确
渲染失败时:
- 显示纯文本
$$...$$ - 或显示乱码/方块
联系支持
如果以上方法都无法解决问题:
- 在浏览器控制台执行
console.log(navigator.userAgent);并提供输出 - 截图浏览器控制台的 Network 和 Console 标签页
- 提供浏览器类型和版本
最后更新: 2026-01-06 KaTeX 版本: 0.16.9 模板版本: v2 (字符串拼接)