【问题标题】:Convert latex to html in Java or C++?在 Java 或 C++ 中将乳胶转换为 html?
【发布时间】:2010-12-18 03:25:28
【问题描述】:

many tools for converting latex into html。我正在寻找一个 Java 或 C++ 程序来执行此操作。它将需要在多个操作系统上运行。该解决方案将用于学术论文,因此理想情况下它也应该能够解释 bibtex 之类的内容。

我找到了htmltolatex,这是一个“将 HTML 页面转换为 LaTeX 的 Java 程序”,但它似乎并没有在另一个方向上运行。

相关问题:

更新: 进一步澄清一点:我想以另一种语言分发一个包,该包将接受任何 LaTeX 文档并生成 HTML 输出(主要是学术论文)。我不能指望已经在机器上安装任何其他东西(例如ghostscript、perl、latex2html、tth),它需要跨平台运行。换句话说,如果我能找到具有可编译源代码(或 Java 或 C++ 中的代码)的东西,那么我宁愿走这条路,以便应用程序是自包含的。或者,我将只使用 latex2html 或 tth 并要求用户单独安装它们(尽管这并不理想)。

【问题讨论】:

  • 第一个链接中提到的 latex2html 有什么不好?我经常使用它,它很棒。它不适用于您的平台吗?
  • 我希望能够在没有任何依赖关系的情况下分发我的程序。如果这不可能,我可能只需要安装 TtH 或 latex2html。

标签: java c++ html latex


【解决方案1】:

Latex2html 是要走的路。你说你不想要任何依赖,但是你选择的任何库都将是你依赖的东西。 Latex2html:

  • 效果很好,
  • 它是 TeX 的一部分
  • 相对较小,您可以将可执行文件与您的应用程序捆绑在一起
  • 它是开源的 (GPL),因此您也可以尝试将其链接到您的程序中并且没有外部依赖项(不过,您需要使用与 GPL 兼容的许可证发布)
  • 开箱即用支持 bibtex,
  • 了解超链接(如果您从 postscript 转换,您将丢失超链接)

我相信它可以在所有主要平台(Linux、Windows、Mac)上编译 - 但老实说,我只有 Linux,所以我不能肯定。

【讨论】:

  • 是的,但是如果我可以使用 API 或原始源代码,那么我不需要安装任何单独的组件。我将测试 Latex2html 并查看它的工作情况;我之前只使用过 TtH,它也很好用。另外,我在任何地方都找不到 Latex2html 源代码。有什么想法吗?
  • 好的,如果库不是很大并且你用你的代码重新分发它。但是您也可以使用 latex2html(作为源代码或二进制文件)这样做。过去,我开发了一个 java 应用程序,它调用了一个小的外部二进制文件(由一位同事用 C 语言编写)。我们捆绑了两者的发行版(当然,它并不适用于所有 Java 平台,但仅适用于他提供二进制文件的平台)。这很容易,并且很好地满足了我们的目的。
  • @Shane:从packages.debian.org/sid/latex2html 右栏中的链接获取(你可能想要 orig.tar.gz 之一)
【解决方案2】:

在我看来,有五个相当广泛采用的工具用于将乳胶转换为 html(are many more which are less actively used):

  • Latex2Hmtl 是一组 perl 脚本。
  • TtH 是用 C 编译和编写的。
  • Hevea 是用 OCaml 编译和编写的(使用 GNU 库通用公共许可证)。
  • TeX4ht 是用 C 编译和编写的(具有 LPPL 许可证)。
  • 另一个有趣的选项是plasTeX,它是用 Python 编写的。

USENIX has a nice page 展示了如何使用其中的一些。

到目前为止,我最好的选择似乎是TtH,因为我可以轻松地将 C 源代码编译到我的 C++ 应用程序中。

【讨论】:

    【解决方案3】:

    我使用LyX 作为latex 的前端,这使得编辑更加方便,并且产生了自己的latex 风味。好处是,对于 LyX,有一个单独的 html 导出,它使用了 LyX 中存在的所有额外信息。该工具称为 eLyxer。

    homepage 声明:

    有一些用于 TeX -> HTML 的工具 转换……但结果往往 贫穷而僵化。 eLyXer 旨在 生成可接受到漂亮的 HTML 代码,取决于您的浏览器 Unicode 和 CSS 渲染优点。

    我无法真正将 elyxer 的输出与 tex2html 工具进行比较,但我可以确认 elyxer 生成的干净、漂亮的 html 代码可能符合您的要求。如果你愿意试一试 LyX :)

    【讨论】:

    • +1 谢谢。这真的很整洁。我一定会检查出来的。但是,我不能指望我的所有用户都将 LyX 用作前端,因此它并不是一个真正可行的解决方案。
    【解决方案4】:

    为什么不直接运行 Latex,然后将结果(postscript?pdf)转换为 HTML?

    【讨论】:

    • 是否有 Java 或 C++ 库可以将 postscript 或 pdf 转换为 HTML?这需要跨平台运行,不能依赖任何依赖。
    • Ghostscript (GNU) AFAIK 是跨平台的,并且执行 PS -> PDF。我认为找到 PDF -> HTML 一定很简单。
    • Ghostscript 将是一个依赖项,我不能依赖它被安装。我找到了pdftohtml(sourceforge.net/projects/pdftohtml),它是C++,但是经过测试,它不能处理复杂的文档。
    • 我不明白反对意见。 Ghostcript 将是依赖项。但是您建议的任何其他工具也是如此。所以呢?此外,您不能指望安装 GhostScript,因此您建议使用其他一些现成的工具。但是您也不能指望 那个 正在安装!无论您承诺使用什么,都将是一个依赖项,您必须确保已安装它。
    • Ghostscript 是免费且跨平台的。将 ghostscript 与您的解决方案捆绑在一起有什么问题?
    【解决方案5】:

    我不知道有一个本地 Java 或 C++ 库来执行此操作。但是,如果您仍然要生成 HTML,则始终可以使用 JavaScript 将文档中的乳胶转换为 html。

    jsMath 擅长于此:

    http://www.math.union.edu/~dpvc/jsMath/

    【讨论】:

    • 我可能是错的,但是 jsMath 只解析方程吗?我需要解析整个 LaTex 文档,包括格式化。
    猜你喜欢
    • 2020-12-02
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    相关资源
    最近更新 更多