MathJax 与 Katex 在公式对齐、编号、交叉引用方面的不同

公式对齐方面的不同

KaTeX 不支持 align ,但支持 aligned ,可以达到同样的目的。当出现 "KaTeX parse error: No such environment: align at position n: \begin{align} " 将 align 改为 aligned 即可。

表格方面的不同

MathJax中表格里公式出现 | 可以不用转义,而KaTeX 中必须对 | 进行转义。

\limits 的不同

KaTeX\limits 只能放在下划线之后,而在 MathJax 中前后都可以。

MathJax 与 Katex 在公式编号方面的不同

Mathjax渲染出的公式在细节上更美观,而KaTeX的好处在于渲染速度快,大部分大量使用到LaTeX的网站都是用KaTeX渲染。

Katex : Lightning-fast, even on pages with hundreds of expressions \color{Green}{\text{Katex : Lightning-fast, even on pages with hundreds of expressions}} Katex : Lightning-fast, even on pages with hundreds of expressions

下图为Katex官网配图,左边为Katex的渲染速度,右边为MathJax的渲染速度:

想知道当另存为不可行时,怎么从网页下载图片嘛: 在 文 末 , 点 击 可 直 接 跳 转 \href{#download}{在文末,点击可直接跳转}

Katex官网配图

MathJax渲染引擎下公式编号与引用

   MathJax 非常厉害的一个东西就是交叉引用。在\tag{}定义编号后面使用\label{}定义锚点,后面正文中$eqref{}$或者$\ref{}$就可以引用。区别是前者带括号,后者不带括号。

这是在Typora(MathJax)中的渲染效果:
这是在Typora中的渲染效果
这是在CSDN(Katex)中的渲染效果:

通过 $\eqref{example1}$ 来引用公式 KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{example1} ;通过 $\ref{example2}$ 来引用公式 KaTeX parse error: Undefined control sequence: \ref at position 1: \̲r̲e̲f̲{example2}

 $$
\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix} 
\frac{\partial X}{\partial u} &  \frac{\partial Y}{\partial u}\\
\frac{\partial X}{\partial v} &  \frac{\partial Y}{\partial v} \\
\end{vmatrix} \tag{1.1} \label{example1}
$$

$$
abla^{2} f=\frac{\partial^{2} f}{\partial x_{1}^{2}}+\frac{\partial^{2} f}{\partial x_{2}^{2}}+\ldots+\frac{\partial^{2} f}{\partial x_{n}^{2}} \tag{1.2} \label{example2}
$$

KaTeX parse error: Undefined control sequence: \label at position 210: …rix} \tag{1.1} \̲l̲a̲b̲e̲l̲{example1}

KaTeX parse error: Undefined control sequence: \label at position 156: …{2}} \tag{1.2} \̲l̲a̲b̲e̲l̲{example2}

Katex渲染引擎中借助html标签实现链接功能

最近在使用 KaTeX 时发现,一般 LaTeX 引擎或者 MathJax 支持的 \ref、\label 功能在 KaTeX 中是没有的。而且尽管在 Github 上提出加入这两个指令的 issue 很多,但官方明确说明目前是没有这个计划的。

强迫症患者的解决方案:利用 HTML 的超链接功能实现公式跳转

该方法只实现了超链跳转,不能自动编号,强迫症患者专属操作🤣

在公式上方利用<a id= "equ1"></a><a id= "equ2"></a>设置锚点,通过 $\href{#equ1}{2.1}$引用公式 2.1 \href{#equ1}{2.1} 2.1;通过 $\href{#equ2}{2.2}$引用公式 2.2 \href{#equ1}{2.2} 2.2

 ``<a id="equ1"></a>
$$
\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix} 
\frac{\partial X}{\partial u} &  \frac{\partial Y}{\partial u}\\
\frac{\partial X}{\partial v} &  \frac{\partial Y}{\partial v} \\
\end{vmatrix} \tag{2.1}
$$

<a id="equ2"></a>
$$
abla^{2} f=\frac{\partial^{2} f}{\partial x_{1}^{2}}+\frac{\partial^{2} f}{\partial x_{2}^{2}}+\ldots+\frac{\partial^{1.2} f}{\partial x_{n}^{2}} \tag{2.2}
$$``


V 1 × V 2 = ∣ ∂ X ∂ u ∂ Y ∂ u ∂ X ∂ v ∂ Y ∂ v ∣ (2.1) \mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix} \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u}\\ \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} \\ \end{vmatrix} \tag{2.1} V1×V2=uXvXuYvY(2.1)


a b l a 2 f = ∂ 2 f ∂ x 1 2 + ∂ 2 f ∂ x 2 2 + … + ∂ 1.2 f ∂ x n 2 (2.2) abla^{2} f=\frac{\partial^{2} f}{\partial x_{1}^{2}}+\frac{\partial^{2} f}{\partial x_{2}^{2}}+\ldots+\frac{\partial^{1.2} f}{\partial x_{n}^{2}} \tag{2.2} abla2f=x122f+x222f++xn21.2f(2.2)

享受 markdown 的简洁,就不要追求 Latex 的排版与功能
看着她的眼睛,你学废了嘛🤣

32

当 "另存为"不可行时,怎么从网页下载图片

步骤一:

image-20220405001637986

步骤二:

image-20220405001411462

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
要在浏览docx文件中使用MathJaxKatex库来处理公式,你可以通过以下步骤来实现: 1. 使用`mammoth.js`库将docx文件转换为HTML格式。在Vue项目中,你可以遵循上述步骤来引入和使用`mammoth.js`。 2. 在Vue组件中,将转换后的HTML内容渲染到页面上,确保在渲染之前包含MathJaxKatex的脚本文件。 3. 根据你选择的库(MathJaxKatex)进行配置和使用。 下面是一个示例代码,演示如何在Vue项目中使用MathJax来处理docx文件中的公式: 1. 安装所需的库: ```bash npm install mammoth mathjax --save ``` 2. 在Vue组件中引入所需的库: ```javascript import * as mammoth from 'mammoth'; import MathJax from 'mathjax'; ``` 3. 创建一个方法来处理docx文件的浏览和公式渲染: ```javascript methods: { browseDocxFile(event) { const file = event.target.files[0]; const reader = new FileReader(); reader.onloadend = () => { const arrayBuffer = reader.result; mammoth.extractRawText({ arrayBuffer: arrayBuffer }) .then((result) => { const text = result.value; // 获取docx文件的文本内容 console.log(text); // 将转换后的HTML内容显示在页面上 const html = result.messages[0].value; this.renderHTML(html); }) .catch((error) => { console.log('解析docx文件时出错:', error); }); }; reader.readAsArrayBuffer(file); }, renderHTML(html) { // 创建一个临时div元素来渲染HTML内容 const tempDiv = document.createElement('div'); tempDiv.innerHTML = html; // 使用MathJax来渲染公式 MathJax.typesetPromise() .then(() => { MathJax.startup.document.clear(); MathJax.startup.document.updateDocument(); }) .catch((error) => { console.log('渲染公式时出错:', error); }); // 将渲染后的HTML内容显示在页面上 const renderedHTML = tempDiv.innerHTML; document.getElementById('rendered-content').innerHTML = renderedHTML; } } ``` 4. 在Vue模板中,添加一个文件选择器和一个用于显示渲染后HTML内容的区域: ```html <template> <div> <input type="file" @change="browseDocxFile"> <div id="rendered-content"></div> </div> </template> ``` 在这个例子中,我们使用`mammoth.js`库将docx文件转换为HTML格式,并将转换后的HTML内容通过`renderHTML`方法渲染到页面上。在`renderHTML`方法中,我们使用MathJax来处理公式,并将渲染后的HTML内容显示在页面上。请根据你的具体需求调整代码,并根据需要使用MathJaxKatex来处理公式渲染。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anonymity~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值