test-math.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Math Formula Test</title>
  5. <meta charset="UTF-8">
  6. <link rel="stylesheet" href="/css/katex/katex.min.css">
  7. <style>
  8. body { font-family: Arial, sans-serif; padding: 40px; background: #f5f5f5; }
  9. .test-card { background: white; padding: 30px; margin: 20px 0; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
  10. .test-title { color: #333; margin-bottom: 20px; }
  11. .formula { font-size: 18px; padding: 15px; background: #f9f9f9; border-radius: 4px; }
  12. .success { color: #28a745; }
  13. .error { color: #dc3545; }
  14. </style>
  15. </head>
  16. <body>
  17. <div class="test-card">
  18. <h1 class="test-title">数学公式渲染测试</h1>
  19. <h3>测试 1: 基本公式</h3>
  20. <p class="formula">
  21. <strong>LaTeX:</strong> $x^2 - 9$<br>
  22. <strong>应该显示:</strong> x 的平方减 9<br>
  23. <strong>状态:</strong> <span id="test1" class="error">未渲染</span>
  24. </p>
  25. <h3>测试 2: 分数公式</h3>
  26. <p class="formula">
  27. <strong>LaTeX:</strong> $\frac{x^2 - 9}{x + 3}$<br>
  28. <strong>应该显示:</strong> 分式<br>
  29. <strong>状态:</strong> <span id="test2" class="error">未渲染</span>
  30. </p>
  31. <h3>测试 3: 根号公式</h3>
  32. <p class="formula">
  33. <strong>LaTeX:</strong> $\sqrt{x^2 - 9}$<br>
  34. <strong>应该显示:</strong> 根号<br>
  35. <strong>状态:</strong> <span id="test3" class="error">未渲染</span>
  36. </p>
  37. </div>
  38. <div class="test-card">
  39. <h2 class="test-title">加载状态</h2>
  40. <ul>
  41. <li>KaTeX Core: <span id="katex-status" class="error">未加载</span></li>
  42. <li>Auto-render: <span id="autorender-status" class="error">未加载</span></li>
  43. <li>CSS: <span id="css-status" class="error">未加载</span></li>
  44. </ul>
  45. </div>
  46. <script src="/js/katex.min.js"></script>
  47. <script src="/js/auto-render.min.js"></script>
  48. <script>
  49. // 等待页面加载完成
  50. window.addEventListener('load', function() {
  51. // 检查 KaTeX
  52. if (typeof katex !== 'undefined') {
  53. document.getElementById('katex-status').textContent = '已加载';
  54. document.getElementById('katex-status').className = 'success';
  55. }
  56. // 检查 auto-render
  57. if (typeof renderMathInElement !== 'undefined') {
  58. document.getElementById('autorender-status').textContent = '已加载';
  59. document.getElementById('autorender-status').className = 'success';
  60. }
  61. // 检查 CSS (通过检查 computed style)
  62. const testDiv = document.createElement('div');
  63. testDiv.className = 'katex';
  64. document.body.appendChild(testDiv);
  65. const katexStyles = window.getComputedStyle(testDiv);
  66. if (katexStyles.fontSize !== '16px' || katexStyles.fontFamily.includes('KaTeX')) {
  67. document.getElementById('css-status').textContent = '已加载';
  68. document.getElementById('css-status').className = 'success';
  69. }
  70. document.body.removeChild(testDiv);
  71. // 渲染数学公式
  72. if (typeof renderMathInElement !== 'undefined') {
  73. renderMathInElement(document.body, {
  74. delimiters: [
  75. {left: '$$', right: '$$', display: true},
  76. {left: '$', right: '$', display: false},
  77. {left: '\\(', right: '\\)', display: false},
  78. {left: '\\[', right: '\\]', display: true}
  79. ],
  80. throwOnError: false
  81. });
  82. // 检查是否渲染成功
  83. setTimeout(function() {
  84. const formulas = document.querySelectorAll('.katex');
  85. if (formulas.length > 0) {
  86. document.getElementById('test1').textContent = '已渲染';
  87. document.getElementById('test1').className = 'success';
  88. }
  89. if (formulas.length > 1) {
  90. document.getElementById('test2').textContent = '已渲染';
  91. document.getElementById('test2').className = 'success';
  92. }
  93. if (formulas.length > 2) {
  94. document.getElementById('test3').textContent = '已渲染';
  95. document.getElementById('test3').className = 'success';
  96. }
  97. console.log('渲染完成,找到 ' + formulas.length + ' 个数学公式');
  98. }, 500);
  99. }
  100. });
  101. </script>
  102. </body>
  103. </html>