Frage

Ich bin neugierig, ob eine native .NET-Renderer für TeX / LaTeX existiert. Die nächste Übereinstimmung ich in der Lage gewesen ist, eine Java-Implementierung zu finden, JMathTeX . Ich bin dieser auf C # zu portieren versucht, aber bevor ich das tue, möchte ich einfach zu überprüfen, ob jemand Kenntnis von einer .NET-Implementierung ist da draußen.

Meine aktuellen Gedanken sind MiKTeX verwenden zusammen mit dvipng die TeX Quelle zu kompilieren und die erzeugte DVI als PNG machen, aber ich bin beunruhigend noch dies eine inakzeptable Menge an Overhead entstehen können, nicht die Notwendigkeit zu erwähnen MiKTeX zu bündeln mit dem angegebenen Programm.

War es hilfreich?

Lösung

Wenn ich mich nicht irre, ist TeX in einem Dialekt von Pascal geschrieben, und wenn heute kompiliert es in der Regel zunächst in Standard C kompiliert, dann mit einem C-Compiler kompiliert die endgültige binäre zu erzeugen. Es könnte möglich sein, anstelle den ursprünglichen Pascal-Code in C # zu kompilieren und vielleicht einen Wrapper um es in C # schreiben zu können, um es als eine Bibliothek verwenden.

Das ist natürlich ein ziemlich großes Projekt zu nehmen und ist wahrscheinlich übertrieben für Ihr Problem auf der Hand.

Andere Tipps

eine reine C # -Implementierung von Latex durch verybadcat.

  

Dies ist ein C # Port des wunderbaren iosMath LaTeX-Motor.

     

Es arbeitet jetzt in den meisten Fällen. Einige Beispiele sind unten. Ironisch   genug, das erste vordere Ende ist IOS. Wenn Sie jedoch wollen ein hinzufügen   Front-End, wie Xamarin.Forms oder eine Windows-Umgebung, es sollte   möglich sein. Sie müssten Ihre eigene TypesettingContext definieren und   eine Implementierung von IGraphicsContext schreiben. Die TypesettingContext in   wiederum hat mehrere Komponenten, eine Schriftart, einschließlich der Wahl. Hoffentlich du   würde nicht braucht den Kernsatz Motor zu berühren. (Wenn Sie das tun, ich   in Betracht ziehen würde, dass ein Fehler.)

CSharpMath Beispiel

Das ist sehr überfällig, aber ich dachte, dass ich einen Link zu einem neu belebt und erweiterte Port des WPF-Math Projekt, das ich nicht allzu lange nach dieser ursprünglichen Frage gestartet, und nach wie vor in einer geringen Kapazität aufrechtzuerhalten helfen. Es war ursprünglich ein Hafen von JMathTex , sondern hat sich erweitert, da viel mehr aufzunehmen. Im Moment ist es in dem Prozess der Renderer andere als WPF zu gewinnen.

Sie diesen Code verwenden !!!

        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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top