katex-scripts.blade.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. {{--
  2. KaTeX 数学公式渲染脚本
  3. 被卷子、判卷和知识点讲解模板共享
  4. 注意:此片段仅包含客户端脚本。
  5. 服务端预渲染逻辑在 ExamPdfExportService::inlineExternalResources() 中处理。
  6. --}}
  7. <!-- KaTeX JavaScript 库 -->
  8. <script src="/js/katex.min.js"></script>
  9. <script src="/js/auto-render.min.js"></script>
  10. <script>
  11. document.addEventListener('DOMContentLoaded', function() {
  12. console.log('[KaTeX] 初始化数学公式渲染器');
  13. // 配置 KaTeX 自动渲染
  14. function renderMath() {
  15. try {
  16. renderMathInElement(document.body, {
  17. delimiters: [
  18. {left: '$$', right: '$$', display: true},
  19. {left: '$', right: '$', display: false},
  20. {left: '\\(', right: '\\)', display: false},
  21. {left: '\\[', right: '\\]', display: true}
  22. ],
  23. throwOnError: false,
  24. strict: false,
  25. trust: true,
  26. macros: {
  27. "\\f": "#1f(#2)"
  28. }
  29. });
  30. console.log('[KaTeX] 数学公式渲染完成');
  31. } catch (e) {
  32. console.warn('[KaTeX] 公式渲染警告:', e);
  33. }
  34. }
  35. // 页面加载后渲染
  36. renderMath();
  37. // 如果页面是动态加载的,等待一段时间后再次渲染
  38. setTimeout(renderMath, 500);
  39. setTimeout(renderMath, 1000);
  40. // 添加到全局,必要时手动调用
  41. window.renderPdfMath = renderMath;
  42. });
  43. </script>