我很好奇是否存在适用于 TeX/LaTeX 的本机 .NET 渲染器。我能找到的最接近的匹配是 Java 实现, 数学词典. 。我很想将其移植到 C#,但在这样做之前,我只想检查一下是否有人知道 .NET 实现。

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

有帮助吗?

解决方案

如果我没有记错,TeX的是写在帕斯卡尔的话,今天编译时,它通常首先被编译成标准C,然后用C编译器来产生最终的二进制编译。它可能是到代替编译原始帕斯卡代码到C#和或许在C#编写它周围的包装物,以便能够使用它作为一个库是可行的。

当然,这是一个相当大的项目采取和可能是矫枉过正手头您的问题。

其他提示

纯C#实现通过verybadcat胶乳。

  

这是精彩iosMath乳胶发动机的C#端口。

     

这是现在在大多数情况下工作。以下是一些例子。讽刺地   足够时,第一前端的iOS。但是,如果你想添加一个   前端,如Xamarin.Forms或Windows环境中,它应该   是可能的。你必须定义自己的TypesettingContext和   写IGraphicsContext的实现。在TypesettingContext   反过来有几个组成部分,包括选择一种字体。希望你   不需要触及核心排版引擎。 (如果你这样做,我   就认为存在错误。)

“CSharpMath例如”

这是非常迟来的,但我想我应该发布一个链接到一个恢复和扩展的端口 WPF-数学 项目,我在这个最初的问题之后不久就开始了,并且仍然以较小的能力帮助维护。它原本是一个港口 数学特克斯, ,但此后已扩展到包括更多内容。目前,它正在获取 WPF 以外的渲染器。

使用此代码!!!

        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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top