【问题标题】:Is there a TeX API for C++?是否有用于 C++ 的 TeX API?
【发布时间】:2010-10-22 19:34:29
【问题描述】:

我想在我的用户界面中预览 TeX 公式。找了半天,在我看来没有别的可能了

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

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

【问题讨论】:

  • 这里有点吹毛求疵,但你应该把它写成 TeX,而不是 TEX。这没什么大不了的,但真正的“TeXperts”会皱眉头;)
  • 你的问题很好。我也想要这样的dll。我想调用一些函数(TeX 文本)并获取位图作为结果。

标签: c++ image formula tex


【解决方案1】:

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

如果你对 Java 没问题,JLatexMath

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

【讨论】:

【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    祝你好运。

    【讨论】:

      【解决方案4】:

      对于 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。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-25
          • 1970-01-01
          • 2011-02-17
          • 1970-01-01
          • 1970-01-01
          • 2012-06-25
          • 2010-11-12
          相关资源
          最近更新 更多