Красивая печатная математика в настольном приложении C#

Каков наилучший метод печати математических уравнений в настольном приложении С# (winforms)? Формат источника не важен; Я могу сгенерировать практически все, приложив немного усилий. Важно то, что это должна быть относительно высокая производительность и низкие накладные расходы (я знаю, что я должен выбрать только 2 из {производительность, размер, функции}, но я хочу все 3).

Вещи, которые я рассмотрел:

  • LaTeX через System.Process() -> dvipng. Проблема: даже минимальная установка LaTeX занимает около 200 МБ. Учитывая, что мое приложение в настоящее время составляет ~ 400 КБ, я думаю, что это немного чрезмерно.
  • Какая-то библиотека математического рендеринга на основе JS, предназначенная для Интернета, например. JSMath. Проблема: создает вывод HTML, который все еще необходимо отображать в веб-браузере. Низкая (вероятно, очень низкая) производительность.
  • Катаю свою. Проблемы: Требует много времени и усилий, чтобы дублировать работы тех, кто ушел раньше. Трудно рисовать текст в C#.

Какие-либо предложения? Делал ли кто-нибудь из вас подобные вещи в прошлом?


person ian93    schedule 02.02.2011    source источник
comment
Вы должны добавить дополнительную информацию. Какой желаемый формат (на экране или дамп pdf). Как вы думаете, почему вывод HTML будет медленным. Насколько сложны математические уравнения и т. д. На примере (скриншот из краски) этот вопрос будет намного понятнее.   -  person CodingBarfield    schedule 03.02.2011


Ответы (3)


Поиск в Google привел меня к этой статье CodeProject: в ней используется MimeTex, библиотека, которая генерирует GIF из латексных формул. Вам придется использовать PInvoke, чтобы иметь его на C #, но все, кажется, в статье.

person CharlesB    schedule 02.02.2011

Вы можете использовать MEEL для WinForms. Он действительно прост в использовании.

person supertoha    schedule 20.07.2013

Потенциальным решением для вашего приложения, если оно осуществимо, было бы размещение онлайн-страницы активного сервера, на которую вы могли бы передавать разметку LaTeX и возвращать изображение. Очевидные ограничения включают пропускную способность, доступ к сети и скорость.

Используя CodeProject и MineTex, предоставленные CharlesB, были бы отличной отправной точкой, из которой можно было бы реализовать решение C#/ASP.

Затем из winforms вы можете сделать запрос и получить изображение, которое можно отобразить в элементе управления или даже отобразить с помощью GDI+.

person Lemonseed    schedule 08.02.2016