.NET的LaTeX渲染器?

时间:2009-10-01 00:32:01

标签: .net math latex tex renderer

我很好奇是否存在TeX / LaTeX的原生.NET渲染器。我能找到的最接近的匹配是Java实现,JMathTeX。我很想把它移植到C#,但在我这样做之前,我只想检查是否有人知道那里的.NET实现。

我目前的想法是使用MiKTeX和dvipng来编译TeX源并将生成的DVI渲染为PNG,但我仍然担心这会产生不可接受的开销,更不用说需要将MiKTeX与给定程序捆绑在一起。

4 个答案:

答案 0 :(得分:2)

如果我没弄错的话,TeX是用Pascal的方言编写的,今天编译时通常首先编译成标准C,然后用C编译器编译产生最终的二进制文件。将原始的Pascal代码编译成C#并在C#中编写一个包装器以便能够将其用作库是可行的。

当然这是一个相当大的项目,对你手头的问题来说可能有些过分。

答案 1 :(得分:2)

A pure C# implementation of Latex by verybadcat.

  

这是精彩的iosMath LaTeX引擎的C#端口。

     

现在大多数情况下都在工作。下面是一些例子。讽刺地   足够,第一个前端是iOS。但是,如果要添加   前端,如Xamarin.Forms或Windows环境,它应该   有可能。您必须定义自己的TypesettingContext和   编写IGraphicsContext的实现。 TypesettingContext in   turn有几个组件,包括选择字体。希望你   不需要触摸核心排版引擎。 (如果你这样做,我   会考虑一个错误。)

CSharpMath example

答案 2 :(得分:2)

这是非常过期的,但我想我会发布一个链接到WPF-Math项目的复活和扩展端口,我在这个原始问题之后开始的时间不长,并且仍然有助于保持未成年人容量。它最初是 JMathTex 的一个端口,但后来扩展到包含更多内容。目前,它正在获得除WPF以外的渲染器。

答案 3 :(得分:0)

使用此代码!!!

        const string latex = @"\frac{2+2}{2}";
        const string fileName = @"formula.png";

        File.Open(fileName, FileMode.OpenOrCreate).Close();

        var parser = new WpfMath.TexFormulaParser();
        var formula = parser.Parse(latex);
        var renderer = formula.GetRenderer(WpfMath.TexStyle.Display, 20.0, "Arial");
        var bitmapSource = renderer.RenderToBitmap(0, 0);

        var encoder = new System.Windows.Media.Imaging.PngBitmapEncoder();
        encoder.Frames.Add(System.Windows.Media.Imaging.BitmapFrame.Create(bitmapSource));
        using (var target = new FileStream(fileName, FileMode.Create))
        {
            encoder.Save(target);
        }

        pictureBox2.Image = Image.FromFile(fileName);