Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

支持 katex 导出方案 #3062

Open
pinetreeps opened this issue Nov 16, 2021 · 7 comments
Open

支持 katex 导出方案 #3062

pinetreeps opened this issue Nov 16, 2021 · 7 comments

Comments

@pinetreeps
Copy link

非常看重高级会员的导出原生pdf功能,结果缺发现对公式支持很不好,按照要求安装了同步助手、pandoc,重启了无数次浏览器,还是不能很好的支持,这是网页开启阅读模式后的效果,很不错,
Snipaste_2021-11-16_18-30-08
这是导出的pdf,就没法看了
image
直接打印出来的话,虽然排版不好,但好歹公式显示正确,我搞了一下午,几乎崩溃了,希望开发者能帮助解决。

@pinetreeps
Copy link
Author

pinetreeps commented Nov 16, 2021

补充一下,网页是 https://blog.csdn.net/anshuai_aw1/article/details/82888222
macOS系统,简悦2.2.0,简悦同步助手版本1.0.1

@Kenshin
Copy link
Owner

Kenshin commented Nov 16, 2021

嗨,CSDN 太恶心了 确实有问题,原因

简悦仅支持 MATHJAX 作为渲染引擎

CSDN 大部分也都支持此方式,如 https://blog.csdn.net/VictoriaW/article/details/70053790 附件中为导出效果

计算机视觉之统计形状模型——Active Shape Model_CodeTutor-CSDN 博客_统计形状模型.pdf

但不知道什么时候开始支持 katex 比如你提供的页面

image

解决方案只能下个版本解决了,或者我看看能否通过简悦自带的插件解决。

另外,关于 PDF 的更多讨论细节可以看这里 #2384


至于只是导出 PDF 的话,建议试试下面这个插件

@Kenshin Kenshin changed the title 导出原生pdf功能对公式支持不够好 支持 katex 导出方案 Nov 16, 2021
@Kenshin
Copy link
Owner

Kenshin commented Nov 16, 2021

另外,请订阅简悦的官方渠道 https://simpread.pro/subscribe 到时候我会在这里和官方渠道通知你。

@pinetreeps
Copy link
Author

感谢回复如此迅速!

@Kenshin
Copy link
Owner

Kenshin commented Nov 17, 2021

感谢回复如此迅速!

哈哈,这是应该的。再说我每天都会在固定时间 Check Github Issues,而你恰好在我晚上的 Check 时间发了这个 Issues 。

同样,每晚 22 点也会这么做,但优先级不高的就不会处理,因为比较是晚上了。

虽然回复的及时,但也没有解决你的问题,虽然这是 CSDN 对公式支持乱七八糟造成的,但还是漏掉了对 katex 的解析。

@Theigrams
Copy link

对 Katex 的解析本身不难, 官方仓库里有一个可复制公式的项目 KaTeX/contrib/copy-tex at main · KaTeX/KaTeX,在浏览器 Console 输入以下代码即可直接手动复制公式:

var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/copy-tex.min.js";
document.getElementsByTagName("head")[0].appendChild(script);

这个方案在大多数使用 katex 的网页上都能用,本质上是 katex 公式块中会有一个 annotion 标签,储存着公式原本的latex源码,运行脚本之后就会把公式的 alt 文本替换成公式代码。

image

但 CSDN 并不是直接用的官方的 katex,而是自己进行了修改,把 annotion 标签删掉了,然后用了一套不伦不类的方法来储存,代价就是得专门写一套脚本来处理这个问题,非常恶心。

image

@Kenshin
Copy link
Owner

Kenshin commented Dec 19, 2021

@Theigrams

嗨,谢谢对 katex 的一些解释,昨天恰好我也在调查这个问题,确实如你所说,CSDN 有点恶心...

不过,虽然有点绕,但应该还是算是找到了(CSDN)的解决方案,我看看通过插件能否解决这个问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants