我想在我的用户界面中预览 TeX 公式。经过长时间的搜索,在我看来,除了
- 将公式写入 .tex 文件
- 用 system() 调用 tex 并编写一个 dvi 文件
- 用 system() 调用例如 dvipng 并编写一个 png 文件
- 将此文件加载到 GUI
- 清理(删除所有这些文件)。
我认为这样做的性能不是问题,因为只有公式可以渲染,而不是整个文档。但是为 TeX 系统自动设置环境似乎是一个更大的问题。那么,是否有可能将 TeX 作为 API 包含在我的程序中?非常感谢!
有一个用于 TeX 的 C API,称为MimeTeX,但生成的图像......不是很好。
如果你对 Java 没问题,那就是JLatexMath
如果你想要一个 WPF 版本,WPFMath正在开发一个版本
您不能将这些步骤封装在单个 shell 脚本中(即,将公式和 png 文件名作为参数)吗?然后该脚本还可以处理设置 TeX 的环境。您的程序只需使用 system() 调用来调用脚本。
对于 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。
我不确定,但认为 MathType 的组件会矫枉过正。
还可以查看sideshare并查看 flash 视频,以获取有关 sitmo、mathMagig、Edoboard 及其 API 工具的更多信息。
祝你好运。
LyX是一个基于 TeX 的文档处理器。由于该应用程序是开源的,您可以检查 C++ 代码以了解它们如何处理您描述的问题。