Domanda

Sono curioso di vedere se un renderer .NET nativo per TeX / LaTeX esiste. La corrispondenza più vicina che ho potuto trovare è un'implementazione Java, JMathTeX . Sono tentato di porto questo in C #, ma prima di farlo, vorrei semplicemente per verificare se qualcuno è a conoscenza di un'implementazione .NET là fuori.

I miei pensieri attuali sono da utilizzare insieme a MiKTeX dvipng per compilare il sorgente TeX e rendere il DVI generato come PNG, ma sto ancora preoccupanti questo potrebbero comportare una quantità inaccettabile di testa, per non parlare della necessità di riunire MiKTeX con il programma di data.

È stato utile?

Soluzione

Se non mi sbaglio, TeX è scritto in un dialetto di Pascal, e quando compilato oggi è generalmente prima compilato in serie C, poi compilato con un compilatore C per produrre il binario finale. Potrebbe essere fattibile per compilare invece il codice Pascal originale in C # e forse scrivere un wrapper in C # per essere in grado di usarlo come una libreria.

Naturalmente questo è un piuttosto grande progetto per affrontare ed è probabilmente eccessivo per il vostro problema a portata di mano.

Altri suggerimenti

Un'implementazione puro C # di lattice da verybadcat.

  

Questo è un porto C # del meraviglioso motore iosMath LaTeX.

     

Si sta ora lavorando nella maggior parte dei casi. Alcuni esempi sono al di sotto. ironicamente   abbastanza, il primo front-end è iOS. Tuttavia, se si desidera aggiungere un   front-end, come ad esempio Xamarin.Forms o un ambiente Windows, dovrebbe   Essere possibile. Si dovrà definire la propria TypesettingContext e   scrivere un'implementazione di IGraphicsContext. Il TypesettingContext in   sua volta ha diverse componenti, tra cui la scelta di un tipo di carattere. Si spera,   non avrebbe bisogno di toccare il motore di composizione di nucleo. (Se lo fai, io   prenderebbe in considerazione che un bug.)

CSharpMath esempio

Questo è molto in ritardo, ma ho pensato di postare un link a una porta rivivere e ampliata della WPF-Math progetto , che ho iniziato a non molto tempo dopo questa domanda iniziale, e ancora aiutare a mantenere in una capacità minore. In origine era un porto di JMathTex , ma da allora ha ampliato per includere molto di più. Al momento, è in procinto di ottenere rendering diverse da WPF.

utilizzare questo codice !!!

        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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top