.NET 的 LaTeX 渲染器?
题
我很好奇是否存在适用于 TeX/LaTeX 的本机 .NET 渲染器。我能找到的最接近的匹配是 Java 实现, 数学词典. 。我很想将其移植到 C#,但在这样做之前,我只想检查一下是否有人知道 .NET 实现。
我目前的想法是使用 MiKTeX 以及 dvipng
编译 TeX 源并将生成的 DVI 渲染为 PNG,但我仍然担心这可能会产生不可接受的开销,更不用说需要将 MiKTeX 与给定程序捆绑在一起了。
解决方案
如果我没有记错,TeX的是写在帕斯卡尔的话,今天编译时,它通常首先被编译成标准C,然后用C编译器来产生最终的二进制编译。它可能是到代替编译原始帕斯卡代码到C#和或许在C#编写它周围的包装物,以便能够使用它作为一个库是可行的。
当然,这是一个相当大的项目采取和可能是矫枉过正手头您的问题。
其他提示
这是精彩iosMath乳胶发动机的C#端口。
这是现在在大多数情况下工作。以下是一些例子。讽刺地 足够时,第一前端的iOS。但是,如果你想添加一个 前端,如Xamarin.Forms或Windows环境中,它应该 是可能的。你必须定义自己的TypesettingContext和 写IGraphicsContext的实现。在TypesettingContext 反过来有几个组成部分,包括选择一种字体。希望你 不需要触及核心排版引擎。 (如果你这样做,我 就认为存在错误。)
这是非常迟来的,但我想我应该发布一个链接到一个恢复和扩展的端口 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);