有没有转换器可以将 LaTeX 转换为 HTML?我尝试过几种服务,但 LaTeX 图表和一些数学运算结果很奇怪。
我实际上毫无问题地将 Latex 转换为 PDF。然后我使用在线 PDF 到 HTML 转换器从 PDF 转换为 HTML。平方根符号显示不正确,并且一些笛卡尔坐标平面图上除了网格外没有任何内容。
\documentclass[12pt,a4paper]{report}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{pstricks,pst-plot}
\usepackage{pst-eucl}
\addtolength{\hoffset}{0.2cm}
\addtolength{\textwidth}{1.1cm}
\addtolength{\textheight}{1.0cm}
\addtolength{\voffset}{-0.7cm}
\linespread{1.3}
\begin{document}
If $x$ is non-positive then $x \leq -\sqrt{\frac{1}{2}}$ $\hspace{30 mm} $ (6)\\
(4) and (6) tell us that\\
(4) $-1 \leq x \leq 0$ \\
(6) If $x$ is non-positive then $x \leq -\sqrt{\frac{1}{2}}$\\
Therefore $-1 \leq x \leq -\sqrt{\frac{1}{2}}$\\
\vspace{50 mm}
\begin{align*}
\psgrid[unit=2cm](0,0)(-2,-2)(2,2)
\pnode(-1.8,.87){b}\uput[50](b){b}
\pnode(-1.8,1.8){a}\uput[50](a){a}
\psset{linecolor=green}
\psline[linewidth=1pt](-1.8, 0)(-1.8,4)
\psset{linecolor=green}
\psline[linewidth=1pt](-1.8, 0)(-1.8,-4)
\psset{linecolor=blue}
\psellipticarc(0,0)(2,2){0}{180}
\psset{linecolor=red}
\psline[linewidth=1pt,linestyle=dashed,dash=2pt](-2,2)(-1.41,1.41)
\psset{linecolor=red}
\psline[linewidth=1pt](-1.41,1.41)
\psset{linecolor=red}
\psline[linewidth=1pt]{->}(4,-4)
\psset{linecolor=red}
\psline[linewidth=1pt]{->}(-2,2)(-4,4)
\end{align*}
\end{document}
PDF 输出:
PDF->HTML 输出:
答案1
在从 LaTeX 转换为 HTML 时使用 PDF 作为中间格式并不是一个好主意。LaTeX 和 HTML 都是结构性标记语言,这意味着您可以使用它们来描述文档结构(章节、强调、公式等),而 PDF 主要是关于文档在屏幕或纸张上的表示。在将 LaTeX 转换为 PDF 时,您会丢失大量结构信息,并且无法通过从 PDF 转换为 HTML 成功恢复这些信息。
最好将 LaTeX 直接转换为 HTML。方法数(Wayback Archive)如何做到这一点,我推荐使用htlatex
。它可能已经是你的 TeX 发行版的一部分,非常强大和灵活,它的使用可以像运行
htlatex mydocument.tex
如果您告诉我们更多关于您的环境的信息(您使用什么操作系统,您的 TeX 发行版是什么,您的文本编辑器/LaTeX IDE 是什么,您如何生成 PDF 文件等等),我们也许能够为您提供有关如何使用的更多详细信息htlatex
。
答案2
答案3
是否有转换器可以将 LaTeX 转换为 HTML?
是的。那里 是很多。但您已经知道这一点,正如您的第二个“问题”所证明的那样:
我尝试了几种服务,但 LaTeX 图表和一些数学运算结果很奇怪。
“结果很奇怪”可能意味着很多事情:
- 文档编译失败
- 文档已编译,但为空或已损坏
- 该文档可以编译并打开,但是却存在一些缺陷。
每个类别进一步细分,解决方案很可能取决于您用来进行转换的内容,因此就目前而言,这个问题是无法回答的。
对于图表,我给出的一般建议是,最好单独编译图表,然后使用<img>
标签手动将它们包含在 html 中。图表很难。standalone
包/类可以帮助实现这一点。另请参阅pgf/TikZ 外部化标签。
答案4
使用 LaTeX 子集
LaTeX 及其常见输出格式(如 PDF)非常复杂。将其全部转换为 HTML + CSS 几乎是不可能的。
但如果您仅将自己限制在 LaTeX 功能的一小部分,它就会变得可行。
轻量级标记语言
首先,我建议你尝试使用更简单的格式,例如Markdown Asciidoctor,可以通过 pandoc 等多种实现转换为 HTML 和 PDF。
我开始相信,拥有简单的 HTML 比 LaTeX 的无数功能更重要。
此外,Asciidoctor 是可扩展的,因此如果您发现缺少任何内容,可以很容易地用 Ruby 编写代码,这比 LaTeX 脚本更为合理。
这里有一个我使用 Asciidoctor 撰写的示例文章其中包括目录和图像参考等功能。
对于数学,已经有了 MathJax,而且我离它很近了通过 KaTeX 达到涅槃。
平装
另一件值得检查但我不太推荐的事情是平装:它有一个 LaTeX 子集,称为 Polytex,可以将其转换为 HTML。确切的子集没有很好的文档记录,但它已经处理了我们制作普通书籍所需的 99.9%,如其文档所示https://github.com/softcover/softcover_book/tree/master/chapters:章节、列表、公式、表格、图像、参考资料。软封面通过以下方式发挥魔力特拉利奇,将 LaTeX 转换为 XML。
图表
正如 Seamus 所说,图表很难,而且它们不太可能在短期内成为可实现子集的一部分,因此请使用图像,最好是从嵌入在主标记中的子语言生成的,并将其传递给外部图像生成器。例如 Asciidoctor支持开箱即用的。
或者,通过命令行工具(如 gplot 或 pyplot)生成图像,然后使用 Makefile 构建 PDF,该 Makefile 首先构建图像,然后构建 PDF。