16

TeX/LaTeX 用のネイティブ .NET レンダラーが存在するかどうかについて興味があります。私が見つけた最も近いものは、Java 実装のJMathTeXです。私はこれを C# に移植したいと思っていますが、その前に、誰かが .NET 実装を知っているかどうかを確認したいと思います。

私の現在の考えではdvipng、TeX ソースをコンパイルし、生成された DVI を PNG としてレンダリングするために MiKTeX を使用することですが、MiKTeX を特定のプログラムにバンドルする必要があることは言うまでもなく、許容できない量のオーバーヘッドが発生する可能性があることをまだ心配しています。 .

4

4 に答える 4

5

verybadcat による Latex の純粋な C# 実装。

これは素晴らしい iosMath LaTeX エンジンの C# ポートです。

現在、ほとんどの場合に機能しています。いくつかの例を以下に示します。皮肉なことに、最初のフロント エンドは iOS です。ただし、Xamarin.Forms や Windows 環境などのフロント エンドを追加する場合は可能です。独自の TypesettingContext を定義し、IGraphicsContext の実装を作成する必要があります。TypesettingContext には、フォントの選択など、いくつかのコンポーネントがあります。うまくいけば、コアの組版エンジンに触れる必要はありません。(もしそうなら、私はそれをバグと見なします。)

CSharpMath の例

于 2018-02-05T05:18:42.753 に答える
2

私が誤解しない限り、TeXはPascalの方言で書かれており、今日コンパイルされると、通常、最初に標準Cにコンパイルされ、次にCコンパイラでコンパイルされて最終的なバイナリが生成されます。代わりに、元のPascalコードをC#にコンパイルし、ライブラリとして使用できるようにC#でラッパーを作成することも可能です。

もちろん、これはかなり大きなプロジェクトであり、目前の問題に対してはおそらくやり過ぎです。

于 2009-10-04T01:14:01.510 に答える
-2

このコードを使用してください!!!

        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);
于 2019-07-17T12:14:57.297 に答える