ラテックスのレンダリングします。います。
質問
私はしかったのです。純レンダリングのためのTeX/ラテックスが存在します。最も近い試合ができているが、Javaの実装では、 JMathTeX.私は誘ポートするスレッドセーフで、C#、その前に少しだいだいかだい。純実装できます。-
私の現在の考え方を教えてほしいご利用MiKTeXと dvipng
め、TeXのソースの描画を、生成されたDVIとしてあるパプアニューギニアだが、やはり気になることがあり受け入れがたいの金額オーバーヘッドはもちろん、バンドルMiKTeX指定されたプログラム。
解決
、TeXはパスカルの方言で書かれている、と今日コンパイルした場合には、一般に、第1、標準Cにコンパイル、最終的なバイナリを生成するために、Cコンパイラでコンパイルされます。それは、代わりにライブラリとしてそれを使用できるようにC#のにオリジナルのPascalコードをコンパイルすると、おそらくC#でその周りにラッパーを記述することは可能かもしれません。
もちろんこれは取るためにかなり大規模なプロジェクトで、手でおそらくあなたの問題のためにやり過ぎです。
他のヒント
。に
この素晴らしいiosMath LaTeXのエンジンのC#のポートです。
これは、今ではほとんどの場合で働いています。いくつかの例を以下に示します。皮肉に 十分に、最初のフロントエンドは、iOSです。ただし、追加したい場合 このようXamarin.FormsまたはWindows環境としてフロントエンド、それがなければなりません 可能。あなたはあなた自身のTypesettingContextを定義する必要がありますし、 IGraphicsContextの実装を記述します。 TypesettingContextで ターンは、フォントを選択するなど、いくつかのコンポーネントがあります。うまくいけば、あなた コア組版エンジンをタッチする必要はありません。 (もしそうなら、I バグと考えているでしょう。)
これは非常に遅延がようと思ってポストへのリンクを復活させ、拡張ポートの コンポーネントのラインナップ-Math プロジェクトを開始していないにもかかわらずその後そのもの維持最新のadobe readerはadobe社のサイト。もともとはポート JMathTex, っていたが、その広がります。現在、この過程にてレンダリング以外のコンポーネントのラインナップ.
このコードを使用!!!
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);