18

我想在我的用户界面中预览 TeX 公式。经过长时间的搜索,在我看来,除了

  • 将公式写入 .tex 文件
  • 用 system() 调用 tex 并编写一个 dvi 文件
  • 用 system() 调用例如 dvipng 并编写一个 png 文件
  • 将此文件加载到 GUI
  • 清理(​​删除所有这些文件)。

我认为这样做的性能不是问题,因为只有公式可以渲染,而不是整个文档。但是为 TeX 系统自动设置环境似乎是一个更大的问题。那么,是否有可能将 TeX 作为 API 包含在我的程序中?非常感谢!

4

5 回答 5

3

有一个用于 TeX 的 C API,称为MimeTeX,但生成的图像......不是很好。

如果你对 Java 没问题,那就是JLatexMath

如果你想要一个 WPF 版本,WPFMath正在开发一个版本

于 2010-06-02T11:43:43.073 回答
2

您不能将这些步骤封装在单个 shell 脚本中(即,将公式和 png 文件名作为参数)吗?然后该脚本还可以处理设置 TeX 的环境。您的程序只需使用 system() 调用来调用脚本。

于 2009-04-30T11:17:51.520 回答
1

对于 Edoboard 和 Tutorsbox.com,我们执行以下操作:

保留 LaTeX 命令的黑名单以避免:

TEX_BLACKLIST = ["\\def", "\\let", "\\futurelet",
    "\\newcommand", "\\renewcommand", "\\else", "\\fi", "\\write",
    "\\input", "\\include", "\\chardef", "\\catcode", "\\makeatletter",
    "\\noexpand", "\\toksdef", "\\every", "\\errhelp", "\\errorstopmode",
    "\\scrollmode", "\\nonstopmode", "\\batchmode", "\\read", "\\csname",
    "\\newhelp", "\\relax", "\\afterground", "\\afterassignment",
    "\\expandafter", "\\noexpand", "\\special", "\\command", "\\loop",
    "\\repeat", "\\toks", "\\output", "\\line", "\\mathcode", "\\name",
    "\\item", "\\section", "\\mbox", "\\DeclareRobustCommand", "\\[", "\\]"];

然后我们进行系统调用“latex and textopng”。

作为一个 API REST 加上一些缓存,你就可以了 :) 作为升级,我们将很快将这些 LaTeX 图像转换为 SVG。

于 2013-07-30T07:19:48.420 回答
1

我不确定,但认为 MathType 的组件会矫枉过正。

还可以查看sideshare并查看 flash 视频,以获取有关 sitmo、mathMagig、Edoboard 及其 API 工具的更多信息。

祝你好运。

于 2010-04-01T21:12:13.850 回答
0

LyX是一个基于 TeX 的文档处理器。由于该应用程序是开源的,您可以检查 C++ 代码以了解它们如何处理您描述的问题。

于 2009-04-30T16:39:39.190 回答