2009-10-01 3 views
13

Мне любопытно, существует ли собственный .NET-рендеринг для TeX/LaTeX. Самое близкое совпадение, которое я смог найти, - это реализация Java, JMathTeX. У меня возникает соблазн передать это на C#, но прежде чем я это сделаю, я просто хочу проверить, знает ли кто-нибудь о реализации .NET.Средство рендеринга LaTeX для .NET?

Мои текущие мысли - использовать MiKTeX вместе с dvipng для компиляции источника TeX и визуализации сгенерированного DVI как PNG, но я все еще беспокоюсь, что это может привести к недопустимому количеству накладных расходов, не говоря уже о необходимости связывания MiKTeX с данной программой.

+1

Мне интересно, почему вы это сделаете. Версия Кнута довольно близка к ошибкам (он предлагает денежный приз за подтвержденные ошибки, и он не был заявлен довольно долго). Повторная запись вряд ли будет такой хорошей. – dmckee

+0

@dmckee: Альтернативой для рендеринга в .NET-приложениях является использование компилятора, такого как MiKTeX, а затем dvipng для преобразования его в PNG. Это довольно косвенный метод, и я надеялся на что-то более простое. – Noldorin

+1

Я ожидал бы, что это будет лучшей альтернативой использованию (превосходного) pdf [la] tex, так как результат будет уже (относительно) легко отображаемым форматом. –

ответ

2

Если я не ошибаюсь, TeX написан на диалекте Pascal, а когда он скомпилирован сегодня, он сначала скомпилирован в стандартный C, а затем скомпилирован с компилятором C для создания финального двоичного файла. Возможно было бы скомпилировать исходный код Pascal в C# и, возможно, написать обертку вокруг него на C#, чтобы иметь возможность использовать его в качестве библиотеки.

Конечно, это довольно большой проект, который можно взять на себя и, вероятно, переполняет вашу проблему.

+0

Интересное предложение.Возможно, стоит скомпилировать C, а затем обернуть в управляемую библиотеку C++/CLI, я думаю. – Noldorin

+0

Кажется, вы правы. TeX написан в WEB, варианте Pascal, а затем скомпилирован в C, используя http://www.tug.org/web2c/. – Noldorin

2

A pure C# implementation of Latex by verybadcat.

Это C# порт замечательного двигателя iosMath LaTeX.

В настоящее время он работает в большинстве случаев. Ниже приведены некоторые примеры. По иронии судьбы , первый передний конец iOS. Однако, если вы хотите добавить внешний интерфейс , например Xamarin.Forms или среду Windows, это должно быть . Вам нужно будет определить свой собственный TypettingContext и написать реализацию IGraphicsContext. В TypettingContext в turn есть несколько компонентов, включая выбор шрифта. Надеюсь, вам не нужно будет прикасаться к основному набору машин. (Если вы это сделаете, я бы считать, что ошибка.)

CSharpMath example

2

Это очень актуально, но я думал, что я бы разместить ссылку на возродил и расширенного порта проекта WPF-Math, которые я начал не слишком долго после этого оригинального вопроса, и все же помогаю поддерживать небольшую емкость. Первоначально это был порт JMathTex, но с тех пор он расширился и включил намного больше. На данный момент он находится в процессе получения рендереров, отличных от WPF.