math-render-example.blade.php 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <div>
  2. <div class="space-y-6">
  3. <div class="bg-white p-6 rounded-lg border">
  4. <h2 class="text-2xl font-bold mb-4">数学公式渲染示例</h2>
  5. <!-- 示例 1: 简单渲染 -->
  6. <div class="mb-8">
  7. <h3 class="text-lg font-semibold mb-3">1. 基本用法</h3>
  8. <x-math-render content="已知二次函数 $f(x) = ax^2 + bx + c$,求......" />
  9. </div>
  10. <!-- 示例 2: 块级公式 -->
  11. <div class="mb-8">
  12. <h3 class="text-lg font-semibold mb-3">2. 块级公式</h3>
  13. <div class="math-render bg-gray-50 p-4 rounded">
  14. $$
  15. \int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
  16. $$
  17. </div>
  18. </div>
  19. <!-- 示例 3: 复杂公式 -->
  20. <div class="mb-8">
  21. <h3 class="text-lg font-semibold mb-3">3. 复杂公式</h3>
  22. <div class="math-render">
  23. 欧拉公式:$e^{i\pi} + 1 = 0$<br>
  24. 二次公式:$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$<br>
  25. 三角恒等式:$\sin^2(x) + \cos^2(x) = 1$
  26. </div>
  27. </div>
  28. <!-- 示例 4: 矩阵 -->
  29. <div class="mb-8">
  30. <h3 class="text-lg font-semibold mb-3">4. 矩阵</h3>
  31. <div class="math-render">
  32. $$
  33. \begin{bmatrix}
  34. a & b \\
  35. c & d
  36. \end{bmatrix}
  37. $$
  38. </div>
  39. </div>
  40. <!-- 示例 5: 求和与积分 -->
  41. <div class="mb-8">
  42. <h3 class="text-lg font-semibold mb-3">5. 求和与积分</h3>
  43. <div class="math-render">
  44. 求和:$\sum_{i=1}^{n} i = \frac{n(n+1)}{2}$<br>
  45. 积分:$\int_{-\infty}^{\infty} e^{-x^2} dx$<br>
  46. 连乘:$\prod_{i=1}^{n} i$
  47. </div>
  48. </div>
  49. <!-- 示例 6: 动态更新 -->
  50. <div class="mb-8">
  51. <h3 class="text-lg font-semibold mb-3">6. 动态更新</h3>
  52. <div class="space-y-4">
  53. <input
  54. type="text"
  55. id="dynamic-input"
  56. class="w-full border rounded p-2"
  57. placeholder="输入 LaTeX 公式,例如:$x^2 + y^2 = r^2$"
  58. >
  59. <div class="math-render" id="dynamic-output">
  60. 输入 LaTeX 公式查看预览...
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. @push('scripts')
  68. <script>
  69. document.addEventListener('DOMContentLoaded', () => {
  70. const input = document.getElementById('dynamic-input');
  71. const output = document.getElementById('dynamic-output');
  72. if (input && output) {
  73. input.addEventListener('input', (e) => {
  74. const value = e.target.value;
  75. output.dataset.mathContent = value;
  76. output.textContent = value || '输入 LaTeX 公式查看预览...';
  77. // 触发重新渲染
  78. if (typeof window.MathRender !== 'undefined') {
  79. window.MathRender.render(output);
  80. }
  81. });
  82. }
  83. });
  84. </script>
  85. @endpush