Проект: Я хочу создать переводчика LaTeX-to-MathML в PHP. Почему? Поскольку я - математик, и я хочу опубликовать математику на своем сайте Drupal. Это не должно переводить весь ЛАТЕКС, так как материал уровня основного документа успешно обрабатывается CMS и не был бы записан в ЛАТЕКСЕ для начала; это просто должно перевести математику, записанную в ЛАТЕКСЕ в математику, записанную в MathML. Хотя я чувствую, как будто я сделал свою должную осмотрительность, это, кажется уже, не существует. Возможно, я - неправильный---, если бы Вы знаете о чем-то, что служило бы этой цели, любой ценой сообщить мне, и заранее спасибо. Но принятие его не существует, я предполагаю, что должен пойти, пишут это сам.
Вот вещь, хотя: я ничего никогда не делал это амбициозное. Я действительно не знаю, где начать. Я использовал PHP в течение многих лет, но только сделать стандарт "создает CMS с PHP и MySQL" - тип материала. Я никогда не делал попытку ничего столь же на вид сложного как перевод от одного языка до другого.
Я являюсь просто достаточно немым для рассмотрения выполнения его с regex---, в конце концов, ЛАТЕКС является намного более формальным языком, и это не допускает почти виды патологических пограничных случаев, как говорят, HTML. Но с другой стороны, я просто достаточно умен, чтобы понять, что это - вероятно, ужасная идея: теперь у меня есть две проблемы, и я уверенный не хочу заканчивать как этот парень.
Таким образом, если это не способ пойти (право?), что? Как я должен начать думать об этой проблеме? Я по существу пишу ЛАТЕКСНЫЙ компилятор в PHP, и если так, что я должен знать, чтобы сделать это (как, я должен просто пойти, читает, Фиолетовый Дракон заказывают сначала?)?
Я и действительно взволнован и довольно запуган перспективой этого проекта, но эй, это - то, как все мы учимся быть программистами, правильно? Если что-то, в чем мы нуждаемся, не существует, мы идем и создаем его, необходимость является родительским элементом... Вы понимаете. Огромный благодаря всем заранее для любого и всего руководства можно предложить.
Если вас устраивает преобразование формул в изображения, существует множество решений. Если вам нужен именно MathML, есть несколько из , тех как ну . Однако вы можете рассмотреть jsMath , который использует javascript для визуализации (подмножества) LaTeX в браузере. Он используется Sage и там хорошо работает.
Не пишите синтаксический анализатор самостоятельно, если вы не хотите делать это для обучения. Просто вызовите существующие цепочки инструментов LaTeX из PHP.
LaTeX2HTML почти настолько хорош, насколько вы собираетесь получить, и вот (старое) описание преобразователя LaTeX в MathML от разработчика LaTeX2HTML.
эээ:
http://drupal.org/project/drutex
http://drupal.org/project/jsmath
http://www.forkosh.com/mimetex.html
что не так с любым из них?
Хорошо, этот ответ был беспорядочным.
Вот очищенная версия:
Поскольку регулярное выражение явно не подойдет для переводчика для такого рода вещей, у вас есть два варианта в зависимости от ваших целей:
Википедия использует переводчик LaTeX в HTML (или изображения), написанный на OCaml. Вы можете позаимствовать там какой-то код или просто использовать его как есть.
На самом деле я пытался сделать это в прошлом году. У меня кое-что получилось, хотя я бы не стал утверждать, что в этом есть какая-то элегантность или шарм, и что это не полностью функционально.
Если вы хотите конвертировать уравнения в MathML, а не в LaTeX, то вы можете использовать itex2MML. Если вы можете загружать расширения в PHP, то можно скомпилировать itex2MML с PHP-биндингами и использовать его в скриптах. Makefile может потребовать небольшой доработки для получения нужных конфигураций.
Ссылки: