How to use MathJax in Markdown

本文介绍如何在Markdown文档中使用MathJax显示数学公式,适用于撰写博客等场景。通过简单地将MathJax的JavaScript文件引入Markdown文件,即可轻松实现复杂的数学公式排版。

How to use MathJax in Markdown

When to Use MathJax?

When using markdown to write blog, especially using Github Page to do it. You may have trouble to display formula. There are several ways[1] to do that. But the simplest way is to use MathJax.

How to Use MathJax?

Add the code below to your markdown file, and that’s it!

<script type="text/javascript" async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"> </script>

For example, add the test code to your blog.md file

<script type="text/javascript" async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"> </script>

test: $$n==x$$

Reference

[1] Markdown中插入数学公式的方法

[2] MathJax Chinese Doc 2.0 documentation

[3] MathJax basic tutorial and quick reference

[4] docs.mathjax.org



### 集成 MathJax 到 Vue3 项目 为了在 Vue3 中使用 MathJax 渲染 Markdown 文件内的数学公式,需完成几个关键步骤来确保正确配置环境。 #### 安装必要的依赖包 首先,在项目根目录下安装 `mathjax` 和用于解析 Markdown 的工具链: ```bash npm install mathjax markdown-it markdown-it-texmath ``` 这组命令会引入 MathJax 库以及强大的 Markdown 解析器和 TeX 数学表达式处理器[^1]。 #### 创建全局插件或组合 API 组件 创建一个新的文件夹 `/plugins/mathjax.js` 或者直接在一个组合式 API 组件里定义如下逻辑: ```javascript import { onMounted } from 'vue'; import * as MathJax from 'mathjax'; export default function useMathRenderer() { const renderMath = () => { window.MathJax.typeset(); }; onMounted(() => { renderMath(); }); } ``` 该函数会在组件挂载完成后调用 MathJax 来重新排版页面上的所有 LaTeX 表达式。 #### 修改公共 HTML 模板 编辑位于项目的 `public/index.html` 文件,加入指向 MathJax CDN 资源链接的 `<script>` 标签: ```html <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> ``` 这些脚本标签应该放置在文档头部以便尽早加载资源并准备就绪。 #### 处理 Markdown 内容 对于要显示的内容部分,先利用 `markdown-it` 及其扩展 `markdown-it-texmath` 将原始字符串转化为带有适当标记的语言片段。可以在单文件组件 (SFC) 中实现这一点: ```vue <template> <div v-html="compiledMarkdown"></div> </template> <script setup> import { ref, computed } from 'vue'; import MarkdownIt from 'markdown-it'; import mdTexMath from 'markdown-it-texmath'; const rawContent = '# Example\n$$E=mc^2$$'; // 这里替换为实际获取到的文章内容 const mdParser = new MarkdownIt().use(mdTexMath); const compiledMarkdown = computed(() => mdParser.render(rawContent)); </script> <script> // 导入自定义 hook 并应用它 import useMathRenderer from '@/plugins/mathjax'; useMathRenderer(); </script> ``` 这样做的好处是可以灵活控制何时何地触发渲染过程,并且保持良好的分离关注点原则。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值