悠闲数学娱乐论坛(第2版)'s Archiver

zhcosin 发表于 2018-4-4 18:13

KaTeX -- 网页数学公式TeX渲染

在 [url=https://khan.github.io/KaTeX/]KaTeX[/url] 发现个好玩的东东,一个网页数学 TeX 公式渲染的 JavaScript 库,跟 MathJax 是类似的东东,看首页有个小黑板,可以实时渲染,看起来不错.

[attach]6036[/attach]

zhcosin 发表于 2018-4-4 18:14

关于网页上渲染LaTeX公式,还有这么些玩意:
[url]https://github.com/mathquill/mathquill[/url]

kuing 发表于 2018-4-4 18:29

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26018&ptid=5282]1#[/url] [i]zhcosin[/i] [/b]

显示确实比 MathJax 快,不错,晚点看看能不能整来这里

isee 发表于 2018-4-4 21:31

fast...

其推广语

kuing 发表于 2018-4-4 23:00

看了半天都不知道怎么弄{:sad:}

kuing 发表于 2018-4-5 03:10

还是深夜精神好,刚才再研究了下,总算有点懂了。

把加载 MathJax 的语句注释掉,换成了 KaTeX 的,发现直接用的环境不显示,
它似乎只会对美元符或 \ [ 这类符号内的东东作处理,
[attach]6037[/attach]
(由于之后要测试 KaTeX 与 MathJax 一起用,上面这段内容只能截图来贴了)
自己写的 html 里就没这问题,大概是因为源文件里换行等于空格,但论坛上换行有 <br> ,就不行了。

kuing 发表于 2018-4-5 03:37

哈,原来可以 KaTeX、MathJax 一起用!

KaTeX 先处理,对于 KaTeX 不处理的,由 MathJax 处理,这样的话,显示速度应该也会有所提高吧……

不过暂时不这样做,不然无法一眼看出哪个公式用 KaTeX 哪个用 MathJax,先单看 KaTeX 的先。

isee 发表于 2018-4-5 09:06

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26030&ptid=5282]6#[/url] [i]kuing[/i] [/b]


这有点像移动端对公式的处理,如Markdown,感觉"半成品"

zhcosin 发表于 2018-4-5 17:21

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26030&ptid=5282]6#[/url] [i]kuing[/i] [/b]
环境还要加美元符? 这不符合 latex 规范啊。

kuing 发表于 2018-4-5 17:29

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26037&ptid=5282]9#[/url] [i]zhcosin[/i] [/b]

准确地说,是它只支持允许放在美元(或 \ [ \ ])内的环境,所以不支持 align,但支持 aligned(这个在 LaTeX 里也是允许放在美元符内的)。
同理,不支持 equation、gather,但支持允许放在美元符内的 gathered,还有 cases 、matrix 等。

kuing 发表于 2018-4-5 17:42

现在开始测试 KaTeX 与 MathJax 一起用,我对由 KaTeX 处理的公式加了颜色,这样谁归谁就很清楚了。

随便找了最近一个帖子,截取其中一片段如下:
[attach]6050[/attach]
[attach]6051[/attach]

kuing 发表于 2018-4-5 18:08

123 $ \$ $\frac12$ \$ $ 456

$$\sum$$

123
$$
\sum
$$

`\sum\sqrt{\frac a{b+c}}`

123\(\verb"\["\)...\(\verb"\]"\)456

123\(\verb"\[  ...  \]"\)456

kuing 发表于 2018-4-6 23:31

又不想用蓝色了,改成绿,俺喜欢绿

kuing 发表于 2018-4-6 23:35

唉,貌似这样搞之后,置顶帖就有点乱啦

isee 发表于 2018-4-6 23:44

[quote]又不想用蓝色了,改成绿,俺喜欢绿
[size=2][color=#999999]kuing 发表于 2018-4-6 23:31[/color] [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26060&ptid=5282][img]http://kuing.orzweb.net/images/common/back.gif[/img][/url][/size][/quote]

我抗议下,反正彩色(还正在变化中)超过一小时浏览帖时就就眼花的,真的。。。。例如,我刚翻完函数类 18页,点了些标题就看到大致内容的帖子就花得不行了,还一会绿,一会蓝。。。。

isee 发表于 2018-4-6 23:46

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26061&ptid=5282]14#[/url] [i]kuing[/i] [/b]


答案反白也废了。。。

kuing 发表于 2018-4-6 23:55

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26062&ptid=5282]15#[/url] [i]isee[/i] [/b]

过两天还找不到完美方案(不影响原来任何帖子公式)的话俺就放弃用 Ka 啦

kuing 发表于 2018-4-7 15:45

取消了 KaTeX 对 \$...\$ 的处理,置顶帖才正常了。
另外有些像这样输入的公式:
\$\$
XXX
\$\$
之前也是不行的,现在行了。

另外,我加入了新的输入方式:[code]`代码`[/code]这将会使用 KaTeX 处理,是行内的。

符号 ` 在台式机的 Esc 下面。[code]`\frac12`[/code]显示:`\frac12`

isee 发表于 2018-4-7 17:45

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26068&ptid=5282]18#[/url] [i]kuing[/i] [/b]


哈哈,这个[code]`\frac12`[/code]与很多移动端的处理一样

isee 发表于 2018-4-7 17:47

公式不能复制了。。。。。。。

kuing 发表于 2018-4-7 18:08

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26071&ptid=5282]19#[/url] [i]isee[/i] [/b]

很早以前有些论坛就用过[code]` 代码 `[/code]来输入公式了,不过那时通常不是LaTeX代码,而是AsciiMath代码。

isee 发表于 2018-4-7 18:15

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=26074&ptid=5282]21#[/url] [i]kuing[/i] [/b]

涨知识了

huing 发表于 2018-9-10 14:58

初来咋到,有些东东还不熟悉。
前天回帖时(速度法证彭塞列封闭定理的积分补充)发现公式有两种颜色,就是KaTeX和MathJax分别解析的原因么?

色k 发表于 2018-9-10 15:05

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=28211&ptid=5282]23#[/url] [i]huing[/i] [/b]

是的

kuing 发表于 2020-12-20 17:48

才发现原来 KaTeX 也支持自定义命令,不过暂时只看到不带参数命令的定义方法,带参数的(如 \abs{XX})还不知咋弄。
不过有不带参数的就已经可以定义好多个了,如 \px, \du, \LHS 这些,这样就可以有更多的公式使用 KaTeX 了{:loveliness:}

\[
\LHS=AB\px CD \riff 90\du
\]\[\LHS=AB\px CD \riff 90\du\]
以上两段代码一样,前者有换行用 MathJax,后者无换行用 KaTeX,以前在没自定义命令之前是不行的。

abababa 发表于 2020-12-20 20:24

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=37803&ptid=5282]25#[/url] [i]kuing[/i] [/b]
这个网友曾经给我做了一个,带参数的是用这个定义的吧:[code]
function render() {
        var latex_src = document.getElementById('latex_src');
        var latex_target = document.getElementById('latex_target');
        //var html = katex.renderToString(latex_text.innerHTML);
        latex_target.innerHTML = latex_src.innerHTML;
        renderMathInElement(latex_target, {
                delimiters: [
                        {left: "$", right: "$", display: true},
                        {left: "\\[", right: "\\]", display: true},
                        {left: "$", right: "$", display: false}
                ],
                macros: {
                        "\\abs": "\\left| #1 \\right|",
                        "\\vv": "\\overrightarrow",
                        "\\pd": "\\frac{\\partial #1}{\\partial #2}",
                }
        });
}
就是那个macros的,里面就能加一些参数了
[/code]

kuing 发表于 2020-12-20 20:29

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=37804&ptid=5282]26#[/url] [i]abababa[/i] [/b]

也在网上搜到了,刚弄好{:lol:}

这样除了多行公式之外基本上都可以 KaTeX 了

abababa 发表于 2020-12-20 21:12

[i=s] 本帖最后由 abababa 于 2020-12-20 21:13 编辑 [/i]

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=37805&ptid=5282]27#[/url] [i]kuing[/i] [/b]

多行公式在katex里也可以用吧,就是[code]\[
\begin{aligned}
f(x)&=x^2+1\\
&=(x+1)^2-2x
\end{aligned}
\][/code]这种

kuing 发表于 2020-12-20 21:37

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=37808&ptid=5282]28#[/url] [i]abababa[/i] [/b]

首先这和真 LaTeX 的习惯不同,这种一般用 align* 。
其次前面 6# 说过在本论坛上要用 KaTeX 的话代码必须写在同一行内,否则 KaTeX 不识别,那多行公式全写在一行里不但不符合习惯还不利于代码阅读和修改。
所以多行公式我还是按平常那样输入,留给 MathJax 编译……

kuing 发表于 2020-12-22 20:38

话说,现在 KaTeX 已经更新到 0.12.0,而我这里固定加载的是 0.9.0,也不知有没有必要更新?会不会没那么快呢?

isee 发表于 2020-12-22 21:39

[b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=37818&ptid=5282]30#[/url] [i]kuing[/i] [/b]

这个取决于你有没有时间折腾,与版本关系不大

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.