gpt4 book ai didi

html - 将包含 mathjax 标记的 html 转换为 pdf

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:50 24 4
gpt4 key购买 nike

我遇到了一个名为 princexml 的工具,它可以将 html+css 漂亮地转换为 pdf ( see this video )。有了这个,甚至可以完全使用 html+css 编写博士论文,并最终获得漂亮的 pdf 输出。但它似乎不能很好地处理 mathjax。我想这是因为 mathjax 部分首先在浏览器中呈现。

所以我有一个像这样的简单 html 文件:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>test math</title>
<style type="text/css">
</style>


<script src='http://cdn.mathjax.org/mathjax/latest/MathJax.js' type='text/javascript'>
MathJax.Hub.Config({
HTML: ["input/TeX","output/HTML-CSS"],
TeX: { extensions: ["AMSmath.js","AMSsymbols.js"],
equationNumbers: { autoNumber: "AMS" } },
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true },
"HTML-CSS": { availableFonts: ["TeX"],
linebreaks: { automatic: true } }
});
</script>

</head>

<body>

$x^2 + y^2 = 1$

</body>
</html>

使用 princexml 转换后:

prince --javascript x.html -o x.pdf

方程式在 pdf 中逐字呈现。

有没有办法让它工作?

最佳答案

这是因为 princexml 还不支持 Mathjax 用于其异步函数的 setTimeout 方法。有两种解决方法:

  1. 首先在浏览器(例如 Chrome)中呈现您的 html。将整个文档(不是源文档,而是实际呈现的文档)保存到 html 文件中,然后将其用作 prince 的输入。您可以从浏览器 javascript 控制台获取整个呈现的文档。
  2. 第二种方法是使用像 phantomjs 这样的 headless 浏览器。也可以看看 https://web.archive.org/web/20150503191319/http://www.lelesys.com/en/media/technology/phantomjs-as-screen-capture-to-generate-image-pdf-files.html

关于html - 将包含 mathjax 标记的 html 转换为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25856269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com