2011-01-04 4 views
4

поддержки компании Tex разметки был недавно added на следующих сайтах Stack Exchange Server:Tex markup, как визуализировать его в Html с Python?

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

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

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

детали Применение:
Платформа: Google App Engine
Framework: webpy

+0

Почему бы не включить Mathjax в ваши html-страницы, как stackexchange? –

+0

Да, это вариант, но я хотел бы знать, существует ли возможная сторона сервера решений (возможно, не для проблемы с шрифтами). – systempuntoout

ответ

2

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

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

+0

MathML имеет свои собственные ошибки - попытка найти правильную комбинацию doctype и MIME-типа и других триггеров для браузера для вашей страницы даже для ** загрузки **, не говоря уже о рендеринге последовательно в браузерах, может быть трудной - если это даже возможно. – detly