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

导出markdown时,对mathjax公式的处理仍然存在问题 #1736

Closed
Hem-W opened this issue Jan 21, 2021 · 7 comments
Closed

导出markdown时,对mathjax公式的处理仍然存在问题 #1736

Hem-W opened this issue Jan 21, 2021 · 7 comments

Comments

@Hem-W
Copy link

Hem-W commented Jan 21, 2021

请说明发生问题的环境

简悦包含了很多平台的版本,所以为了方便定位,建议告诉我一些必要信息

请描述你的问题

请使用可以 准确定位到错误 的语句来告诉我。😀

在阅读模式中mathjax可以正常渲染,然而,导出成markdown后latex公式存在 花括号消失上下标无效公式编号标签没有采用latex形式拉丁字母未采用latex形式 等问题。

问题可以具体细分为若干点,接下来结合图方便说明:

演示文稿2

  1. 公式中的花括号消失、上下标均失效(上图的红框标注)
    我猜想这个问题可能还是与转义字符markdown 下载代码 * [ ] _ 都会被添加上转义字符 \ #1064 有关。在latex中表示花括号时需要在前面添加\,即\{ \},但在导出的markdown中,花括号前面的\没有了;在latex中表示上下标的_和^也都没有了。

  2. 拉丁字母、实数集字母未采用latex形式(上图的蓝框标注)
    导出的拉丁字母直接使用了文本形式,例如两组蓝框中下面的那个Θ,但在latex中应该是\Theta。另外用于表示实数集和花体的 \mathcal \mathbb{ }也没有了,如两组蓝框中上面的那个实数集字母R。

  3. 公式编号标签(上图的绿框标注)
    导出的公式编号也被直接保存成文本了,而没有采用latex中的\tag

  4. mathjax的渲染模式对导出结果有影响
    mathjax提供了多种渲染模式(Math Renderer),我逐个进行了尝试。我发现在使用MathML模式时会产生与期望的导出结果最接近的情况。下图是使用MathML模式时的效果,尽管在阅览模式下不能正常显示公式(好像是因为浏览器不支持),但是导出的markdown同时包含了文本形式和latex形式(LaTex形式的数学公式保存到本地的md文件中不适配 #743 在完成后曾出现过类似情况),其中latex形式能够在markdown中完美显示(如下图框中所示)。

演示文稿2-2

留言

我也尝试过把页面放到稍后读中,在开启同步助手的内置解析器的情况下导出markdown,结果与第一张图是一致的。上述问题我尝试了不同方法,都存在一些小问题,不知道是不是我哪弄错了,希望您帮忙解答一下。感谢。

@Kenshin
Copy link
Owner

Kenshin commented Jan 22, 2021

emmm...

谢谢反馈,确如你所说,初步怀疑是因为修复 #743 导致的问题。( 但应该跟转义的修复 #1064 没有太大关系)


我对 mathjax 不是特别了解,不知道你对文章给出的两种截然不同的渲染模式

有没有什么好的建议?


我先记 Bug,但只能下个版本修复了。

@Hem-W
Copy link
Author

Hem-W commented Jan 23, 2021

我对 mathjax 不是特别了解,不知道你对文章给出的两种截然不同的渲染模式

有没有什么好的建议?

我进一步做了一些尝试,发现mathjax的Math Renderer和Accessibility设置都对阅读模式和Markdown导出结果有影响。

  • 对于Math Renderer,我看了一下MathJax官方2.X版本文档中关于输出处理器的说明 ,默认情况下网页的输出格式是取决于网站配置文件,具体在网站配置的时候一般会取决于用户系统和浏览器。我测试了上述两个网页(MathJax版本为2.7),默认采用了HTML-CSS,在阅读模式中正常显示。对于我自己另外要用到的网页:https://www.math.pku.edu.cn/teachers/lidf/course/fts/ftsnotes/html/_ftsnotes/fts-armod.html(MathJax版本为2.6),默认采用了SVG;此时在阅读模式中就会出现行间公式被丢掉的情况,如下图所示,相应导出的Markdown文件也缺失了行间公式。
    image
  • 对于Accessibility,当中是否开启Assistive MathML对Markdown导出中能否包含公式也会有影响;例如对于您所提及的两个网页,如果Assistive MathML改为不开启(渲染模式仍采用默认的HTML-CSS),尽管阅读模式正常显示,但是导出的Markdown文件会缺失所有公式。
    image

但是,我在原问题中提出这个渲染模式的点并不是想建议需要适配所有渲染模式,因为用户可以自行调整渲染模式(通过在公式上鼠标右键单击就能唤出设置框),另外也不清楚后续MathJax版本会有什么影响,MathJax 3.X就不直接支持MathML的渲染模式了(如果渲染模式能都适配当然更好)。提及这一点主要是想说明在同时出现了文本形式和latex形式时,后半部分是markdown导出时的理想结果。谢谢您。

@Kenshin Kenshin added to do and removed to do labels Jan 23, 2021
@Kenshin
Copy link
Owner

Kenshin commented Jan 30, 2021

嗨,我研究了下这个问题,现在是新版的效果,你可以看看

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

MathJax 基础 (1):基础语法_分析 101-CSDN 博客.txt

Metropolis-Hastings algorithm.txt

另外,我不是太熟悉 mathJax 所以,能否多提供一些类似的页面,或不同的 mathJax Lib 之类的供我测试?

@Hem-W
Copy link
Author

Hem-W commented Feb 3, 2021

感谢您,我检查了一下您提供的文件,在typora、obsidian中都能正常渲染。您提供的网页都采用的是MathJax 2.7版本,在我的平台环境中默认采用了HTML-CSS渲染器;您可以试一下下面这个不同版本的页面:

@Kenshin Kenshin added the to do label Feb 3, 2021
@Kenshin
Copy link
Owner

Kenshin commented Feb 4, 2021

@Hem-W

嗨,我调整了下算法,现在识别 https://www.math.pku.edu.cn/teachers/lidf/course/fts/ftsnotes/html/_ftsnotes/fts-armod.html 了。

4 自回归模型 - 金融时间序列分析讲义.txt
MathJax 基础 (1):基础语法_分析 101-CSDN 博客.txt
Metropolis-Hastings algorithm.txt

当仍存在一些问题:

  1. Renderer 必须是 HTML-CSS 模式,否则无法识别

image

  1. 当默认并不是 HTML-CSS 模式时,加入到稍后读后,再导出到本地后,无法识别。( 默认为 HTML-CSS 模式,则无法此问题。

结论:

跟 MathJax 2.7 的版本无关,只是跟 HTML 结构有关,所以只能是 HTML-CSS 才能成功导出。


另外 https://www.sciencedirect.com/science/article/pii/S0167715221000080 我没有找到 MathJax

@Hem-W
Copy link
Author

Hem-W commented Feb 23, 2021

谢谢您,您更新的文件我试了下都能正常渲染。

对于默认不是 HTML-CSS 模式的网页,用户只需要完成一次设置也能解决问题,这是个折衷的做法。

另外 https://www.sciencedirect.com/science/article/pii/S0167715221000080 我没有找到 MathJax

抱歉,这里是我弄错了网址。我重新找了个外网能显示全文的网址:https://www.sciencedirect.com/science/article/pii/S016771522030225X。您可以尝试一下,这里默认的渲染器也是SVG。

另外,可以打扰您问下这个版本会何时更新么?

@Kenshin
Copy link
Owner

Kenshin commented Jun 15, 2021

嗨,抱歉早就应该提示此 Issues 已经修复了,但因为一些原因一直耽搁到现在。

此问题可以通过 2.2.0.520 彻底解决。

注意:

  1. katex 方案暂时还未支持,仅解决了 latex 遗留下来的问题。
  2. 凡是需要使用 latex 解析方案的页面,都需要加入到 延迟加载列表 后才能生效。

简悦 2.2.0 请注意

嗨,如果你是 2.2.0 用户,当前版本也修复了 2.2.0 时的一些错误,如:特定条件下任意页面自动进入阅读模式 引起无法使用维基百科的问题 聚焦模式无法使用导出服务 未启用标注模式无法复制

本次更新内容

本次更新了 6 Features ,解决了 150+ Issues
更新内容是有史以来最多的一次,如果你对目前的稍后读工作流并不满意的话,希望可以看完下面这些更新。

这只是我认为有必要重点介绍的功能,除此以外还有很多小功能没有介绍。

一些 2.2.0 相关性的教程

稍后读 · 导出的定制化 · 自动化 · 如何与双链笔记联动 Notion / Logseq / Obsidian 等,详细说明 请看这里

更新日志

如果你想看 2.2.0 到底增加了哪些功能的话,可以看

  1. http://ksria.com/simpread/welcome/version_2.2.0.html
  2. http://ksria.com/simpread/changelog.html

一个建议

如条件允许,请一定要订阅 简悦的发布渠道这里通知中心

简悦会在每个大版本发布或不定期会推送简悦的相关信息,也请订阅 Newsletter

@Kenshin Kenshin closed this as completed Jun 15, 2021
Repository owner deleted a comment from Amandayoula Mar 30, 2023
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

2 participants