문제

Tex/Latex 용 기본 .NET 렌더러가 존재하는지 궁금합니다. 내가 찾을 수 있었던 가장 가까운 경기는 Java 구현입니다. Jmathtex. 나는 이것을 C#에 포트하고 싶은 유혹을 받았지만, 그렇게하기 전에, 나는 단순히 .NET 구현을 알고 있는지 확인하고 싶습니다.

내 생각은 Miktex와 함께 사용하는 것입니다 dvipng TEX 소스를 컴파일하고 생성 된 DVI를 PNG로 렌더링하려면, 이것이 주어진 프로그램과 Miktex를 묶어야 할 필요성은 말할 것도없이 허용 할 수없는 양의 오버 헤드가 발생할 수 있다고 걱정합니다.

도움이 되었습니까?

해결책

내가 착각하지 않으면 Tex는 Pascal의 방언으로 작성되며 오늘날 컴파일되면 일반적으로 표준 C로 편집 된 다음 C 컴파일러로 컴파일되어 최종 바이너리를 생성합니다. 대신 원래 Pascal 코드를 C#으로 컴파일하고 C#에 래퍼를 작성하여 라이브러리로 사용할 수 있습니다.

물론 이것은 다소 큰 프로젝트이며 아마도 당신의 문제에 대한 과잉 일 것입니다.

다른 팁

매우 바드카트에 의한 라텍스의 순수한 C# 구현.

이것은 멋진 iosmath Latex 엔진의 C# 포트입니다.

현재 대부분의 경우 작동하고 있습니다. 몇 가지 예는 다음과 같습니다. 아이러니하게도 첫 번째 프론트 엔드는 iOS입니다. 그러나 Xamarin.forms 또는 Windows 환경과 같은 프론트 엔드를 추가하려면 가능해야합니다. 자신의 AttesttingContext를 정의하고 IGRAPHICSCONTEXT의 구현을 작성해야합니다. AtesettingContext에는 글꼴 선택을 포함하여 여러 구성 요소가 있습니다. 바라건대, 핵심 조판 엔진을 만질 필요가 없습니다. (그렇다면, 나는 그 버그를 고려할 것입니다.)

CSharpMath example

이것은 매우 기한이 지났지 만 부활하고 확장 된 포트에 링크를 게시 할 것이라고 생각했습니다. WPF-Math 이 원래 질문 이후에는 너무 오래 걸리지 않았지만 여전히 작은 용량을 유지하는 데 도움이됩니다. 원래 항구였습니다 Jmathtex, 그러나 그 이후로 더 많은 것을 포함하도록 확장되었습니다. 현재 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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top