找回密码
 快速注册
搜索
查看: 915|回复: 8

原来 KaTeX 已提供 Copy-tex 扩展

[复制链接]

730

主题

1万

回帖

9万

积分

积分
93613
QQ

显示全部楼层

kuing 发表于 2021-3-22 17:30 |阅读模式
【现已统一使用 MathJax3 ,本帖已过期】
KaTeX 扩展s:katex.org/docs/libs.html
现已按照 github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex 介绍的方法添加到论坛上,也就是说:

大家都可以直接复制论坛上以 KaTeX 显示的公式代码了!

可以右键单个公式复制,还可以拖选一整片来复制!粘贴出来的就是 latex 代码。
不用自己弄油猴什么的了……
欢迎测试:
行内公式 `\sum\sqrt x`,行间公式 \[\sum\sqrt{\frac a{b+c}}\]分界符是行内单美元行间双美元,看说明好像是说可以改,但暂时懒得弄了……

830

主题

4862

回帖

3万

积分

积分
36159

显示全部楼层

isee 发表于 2021-3-22 17:44
回复 2# isee


    copy$\sum\sqrt{\frac a{b+c}}$

15

主题

958

回帖

1万

积分

积分
12454

显示全部楼层

色k 发表于 2021-3-22 17:47
手机好像也可以

730

主题

1万

回帖

9万

积分

积分
93613
QQ

显示全部楼层

 楼主| kuing 发表于 2021-3-22 17:58
回复 2# isee

单个复制好像总是行内的,试试一整段复制

730

主题

1万

回帖

9万

积分

积分
93613
QQ

显示全部楼层

 楼主| kuing 发表于 2021-4-19 21:28
`1\ne2` 不等号你们看是不是歪了……

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-4-29 02:38

网页拷贝KaTeX公式用的代码

  1. document.querySelectorAll('.katex-display').forEach(a=>a.outerHTML='$$'+a.firstChild.firstChild.firstChild.firstChild.lastChild.innerHTML+'$$')
  2. document.querySelectorAll('.katex').forEach(a=>a.outerHTML='$'+a.firstChild.firstChild.firstChild.lastChild.innerHTML+'$')
复制代码

例如
Brilliant wiki
USTC 复变函数B 习题解答

(改进后 & 不会变成 & 了)

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-4-29 03:52
如何搬运香蕉空间?
不是JS的KaTeX
是服务器直接输出的KaTeX html
网页上没有LaTeX源码

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2024-3-28 07:23
kuing 发表于 2021-3-22 09:30
可以右键单个公式复制,还可以拖选一整片来复制!粘贴出来的就是 latex 代码。


KaTeX 复制比MathJax方便啊!不知Copy-tex 扩展能否迁移到MathJax🤔

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2024-3-28 07:33
hbghlyj 发表于 2024-3-27 23:23
KaTeX 复制比MathJax方便啊!不知Copy-tex 扩展能否迁移到MathJax🤔


Davide Cervone曾经写过:将隐藏文本附加到 MathJax 输出,该文本包含原始 TeX 代码,选择公式时将选择该文本,来代替 MathJax 输出就像它没有排版一样。
  1. MathJax = {
  2.   options: {
  3.     renderActions: {
  4.       addCopyText: [155,
  5.         (doc) => {for (const math of doc.math) MathJax.config.addCopyText(math, doc)},
  6.         (math, doc) => MathJax.config.addCopyText(math, doc)
  7.       ]
  8.     }
  9.   },
  10.   addCopyText(math, doc) {
  11.     const adaptor = doc.adaptor;
  12.     const text = adaptor.node('mjx-copytext', {'aria-hidden': true}, [
  13.       adaptor.text(math.start.delim + math.math + math.end.delim)
  14.     ]);
  15.     adaptor.append(math.typesetRoot, text);
  16.   },
  17.   startup: {
  18.     ready() {
  19.       MathJax._.output.chtml_ts.CHTML.commonStyles['mjx-copytext'] = {
  20.         display: 'inline-block',
  21.         position: 'absolute',
  22.         top: 0, left: 0, width: 0, height: 0,
  23.         opacity: 0,
  24.         overflow: 'hidden'
  25.       };
  26.       MathJax.startup.defaultReady();
  27.     }
  28.   }
  29. }
复制代码

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 15:33

Powered by Discuz!

× 快速回复 返回顶部 返回列表