关于MathJax的特定问题,然后(自动?)保存为word或pdf

Specific issue regarding MathJax, then (auto?) save to word or pdf

本文关键字:保存 word pdf 自动 MathJax 问题 然后 关于      更新时间:2023-09-26

看,这可能是一个欺骗的问题,如果它是…但老实说,我找到的所有关于这个主题的东西似乎都是从2007年开始的,或者是对IE6之类的东西提出了特别的警告。

设置:使用数学标记和MathJax在网页中呈现数学的网页(工作良好)。

用户需要能够将其导出为某种文档- word, PDF等-以便分发给不允许/不希望在提供页面的"系统"中的校对员。

问题:到目前为止,我所做的一切都是为了将渲染的最终产品输出到某种文档中——除了用户发起的浏览器打印之外——显示的是未渲染的标记,而不是最终产品。

这显然是由于MathJax库在浏览器中完全可用时呈现页面的方式,因为它只是一个JS脚本包含。没什么好惊讶的。

我可以得到关闭通过做一个ajax调用的页面渲染,并发送整个blob的html到第三个页面写出来的光盘,并重新服务它与mime和内容处置头为msword,保存到光盘等,但渲染是不正确的-大概是由于包装它在一个POST调用。无论如何,这是很多步骤,最终会得到一个不太正确的解决方案。

我猜答案是"你不能这样做",至少不使用TeX Live或MikTex等的巨大安装,并在后端通过shell调用来完成它。但我没有能力在这些主机上安装。

我是否被用户的"打印到pdf"解决方案所困扰?我是不是漏掉了什么?

谢谢,很高兴在需要的地方充实,但我不能是第一个尝试这样做的人。

对于PDF,有几个选项,这主要取决于您想要投入多少工作。

快速而肮脏的解决方案可能是wkhtmltopdf,但是您必须指定JavaScript呈现完成的等待时间——这并不理想。

PhantomJS需要更多的工作,但允许你在页面上收听,例如,这个讨论链接到一个简单的例子。(实际上有很多基于phantomjs的工具。)

另一种方法是首先使用MathJax-node进行预处理,然后将结果传递给wkhtmltopdf(这样您就不必等待MathJax)。

对于doc/docx我认为现在没有任何方法。自然的方法是使用MathJax-node生成MathML,因为Word可以导入MathML。但是当从HTML导入时,Word似乎不支持MathML。使用MathJax-node生成SVG也是如此(但是使用SVG时,您将失去编辑公式的能力,因此这可能是禁止的)。

Pandoc最终可能会有所帮助。它显然可以将数学转换为MS Office格式(参见演示#30)。但是从一个快速测试来看,这似乎不适用于HTML输入。

如果您正在考虑商业解决方案,请查看callas软件的pdfChip(警告:我与该解决方案密切相关)。

它将HTML转换为PDF,并实际使用MathJax将MathML转换为适当的PDF文件(如果您愿意,甚至可以是PDF/X或PDF/a文件)。我很乐意在线下提供更多细节