Разметка Tex, как отобразить ее в Html с помощью Python?

Поддержка разметки Tex была недавно добавлена в следующие Сайты биржи стека:

Эти сайты используют клиентскую библиотеку Mathjax для правильного форматирования отправляемых формул в пользователь.

Поскольку эта новая функция была добавлена, StackExchange API возвращает текст вопроса/ответа JSON с разделителями формул. с помощью разметки Tex, состоящей из $ символов (здесь например).
StackPrinter, построенный на этом API, просто печатает возвращенный текст, полный $ с ужасный результат.

Я ищу библиотеку Python на стороне сервера, которая может анализировать и преобразовывать данные JSON для правильного отображения разметки Tex в HTML.
Знаете ли вы какое-либо решение?

Сведения о приложении:
Платформа: Google App Engine
Платформа: webpy


person systempuntoout    schedule 04.01.2011    source источник
comment
Почему бы не включить Mathjax в свои html-страницы, как это делает stackexchange?   -  person Giuseppe Ottaviano    schedule 04.01.2011
comment
да, это вариант, но я хотел бы знать, существует ли возможное решение на стороне сервера (вероятно, не для проблемы со шрифтами).   -  person systempuntoout    schedule 04.01.2011


Ответы (1)


Вы можете попробовать объединить инструмент TeX-to-DVI (например, tex.latex2dvi или pytex) с помощью инструмента DVI-to-image (например, dvipng). Чтобы реализовать это на стороне сервера, вам понадобится конечная точка API, которая принимает код TeX в качестве входных данных и выдает изображение в качестве выходных данных. Таким образом, вы можете отображать математические формулы в виде изображений, указывая их источник на этот URL-адрес с соответствующими параметрами. Это довольно сложно, но хорошая новость заключается в том, что Google Chart API для математических формул уже предоставляет такую ​​услугу.

В любом случае, я бы рассмотрел возможность использования MathML для отображения математической записи на стороне клиента, поскольку все основные веб-браузеры (кроме Internet Explorer) поддерживают эту функцию в соответствии со стандартами HTML5. Или просто включите Mathjax, например StackExchange (это тоже рендеринг разметки на стороне клиента). Это кажется самой простой и кроссплатформенной альтернативой.

person scoffey    schedule 04.01.2011
comment
У MathML есть свои ловушки — попытка найти правильную комбинацию doctype и MIME-типа, а также других триггеров анализа браузера для того, чтобы ваша страница хотя бы загружалась, не говоря уже о последовательном отображении в разных браузерах, может быть трудной — если это даже возможный. - person detly; 05.01.2011