Основанный на PHP ЛАТЕКСНЫЙ синтаксический анализатор — где начать?

Проект: Я хочу создать переводчика LaTeX-to-MathML в PHP. Почему? Поскольку я - математик, и я хочу опубликовать математику на своем сайте Drupal. Это не должно переводить весь ЛАТЕКС, так как материал уровня основного документа успешно обрабатывается CMS и не был бы записан в ЛАТЕКСЕ для начала; это просто должно перевести математику, записанную в ЛАТЕКСЕ в математику, записанную в MathML. Хотя я чувствую, как будто я сделал свою должную осмотрительность, это, кажется уже, не существует. Возможно, я - неправильный---, если бы Вы знаете о чем-то, что служило бы этой цели, любой ценой сообщить мне, и заранее спасибо. Но принятие его не существует, я предполагаю, что должен пойти, пишут это сам.

Вот вещь, хотя: я ничего никогда не делал это амбициозное. Я действительно не знаю, где начать. Я использовал PHP в течение многих лет, но только сделать стандарт "создает CMS с PHP и MySQL" - тип материала. Я никогда не делал попытку ничего столь же на вид сложного как перевод от одного языка до другого.

Я являюсь просто достаточно немым для рассмотрения выполнения его с regex---, в конце концов, ЛАТЕКС является намного более формальным языком, и это не допускает почти виды патологических пограничных случаев, как говорят, HTML. Но с другой стороны, я просто достаточно умен, чтобы понять, что это - вероятно, ужасная идея: теперь у меня есть две проблемы, и я уверенный не хочу заканчивать как этот парень.

Таким образом, если это не способ пойти (право?), что? Как я должен начать думать об этой проблеме? Я по существу пишу ЛАТЕКСНЫЙ компилятор в PHP, и если так, что я должен знать, чтобы сделать это (как, я должен просто пойти, читает, Фиолетовый Дракон заказывают сначала?)?

Я и действительно взволнован и довольно запуган перспективой этого проекта, но эй, это - то, как все мы учимся быть программистами, правильно? Если что-то, в чем мы нуждаемся, не существует, мы идем и создаем его, необходимость является родительским элементом... Вы понимаете. Огромный благодаря всем заранее для любого и всего руководства можно предложить.

6
задан Community 23 May 2017 в 12:16
поделиться

6 ответов

Если вас устраивает преобразование формул в изображения, существует множество решений. Если вам нужен именно MathML, есть несколько из , тех как ну . Однако вы можете рассмотреть jsMath , который использует javascript для визуализации (подмножества) LaTeX в браузере. Он используется Sage и там хорошо работает.

0
ответ дан 10 December 2019 в 02:46
поделиться

Не пишите синтаксический анализатор самостоятельно, если вы не хотите делать это для обучения. Просто вызовите существующие цепочки инструментов LaTeX из PHP.

LaTeX2HTML почти настолько хорош, насколько вы собираетесь получить, и вот (старое) описание преобразователя LaTeX в MathML от разработчика LaTeX2HTML.

3
ответ дан 10 December 2019 в 02:46
поделиться
4
ответ дан 10 December 2019 в 02:46
поделиться

Хорошо, этот ответ был беспорядочным.

Вот очищенная версия:

Поскольку регулярное выражение явно не подойдет для переводчика для такого рода вещей, у вас есть два варианта в зависимости от ваших целей:

  1. Вы просто хотите иметь возможность отображать LATEX на вашем сайте так или иначе.
    • Если это то, что вы хотите, есть простое решение где-то там для вас, которое проще, чем выбирать книгу по теории компиляторов. Либо какой-то способ добавить латекс на ваш сайт, либо существующий переводчик, либо что-то в этом роде.

  2. Вы увлечены и хотите узнать о теории компиляторов.
    • Если это так, я не могу рекомендовать PDB в достаточной степени. Это увлекательная книга, и вы многому научитесь из нее; После первых двух глав вы узнаете достаточно о лексическом анализе, чтобы завершить этот проект. Лучшие деньги, которые я потратил на образовательный ресурс на сегодняшний день!
0
ответ дан 10 December 2019 в 02:46
поделиться

Википедия использует переводчик LaTeX в HTML (или изображения), написанный на OCaml. Вы можете позаимствовать там какой-то код или просто использовать его как есть.

0
ответ дан 10 December 2019 в 02:46
поделиться

На самом деле я пытался сделать это в прошлом году. У меня кое-что получилось, хотя я бы не стал утверждать, что в этом есть какая-то элегантность или шарм, и что это не полностью функционально.

Если вы хотите конвертировать уравнения в MathML, а не в LaTeX, то вы можете использовать itex2MML. Если вы можете загружать расширения в PHP, то можно скомпилировать itex2MML с PHP-биндингами и использовать его в скриптах. Makefile может потребовать небольшой доработки для получения нужных конфигураций.

Ссылки:

2
ответ дан 10 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: