Программное преобразование / синтаксический анализ кода LaTeX в простой текст

У меня есть несколько проектов кода на C ++ / Python, в которых описания и метки в формате LaTeX используются для создания документации в формате PDF или графиков, созданных с помощью LaTeX + pstricks. Однако у нас также есть несколько выходных текстов, такие как HTML-версия документации (у меня уже есть код для написания минимальной разметки для этого) и средство визуализации графиков без поддержки TeX.

Для них я хотел бы исключить разметку TeX, которая необходима, например, для представления физических единицы измерения. Сюда входят неразрывные (тонкие) пробелы, \ text, \ mathrm и т. Д. Также было бы неплохо разобрать такие вещи, как \ frac {# 1} {# 2} в # 1 / # 2 для вывода простого текста (и используйте MathJax для HTML). Из-за системы, которая у нас есть на данный момент, мне нужно иметь возможность делать это из Python, то есть в идеале Я ищу пакет Python, но исполняемый файл, отличный от Python, который я могу вызов из Python и перехват выходной строки тоже подойдут.

Я знаю аналогичный вопрос на сайте TeX StackExchange , но там не было ' Есть какие-либо действительно программные решения для этого: я посмотрел на Detex, PlasTeX и pytex, которые все кажутся немного мертвыми и на самом деле не делают того, что мне нужно: программное преобразование строки TeX в репрезентативную строку простого текста.

Я мог бы попробовать написать базовый парсер TeX, используя, например, pyparsing, но а) это может быть связано с ловушками и помощь будет оценена; б) наверняка кто-то пробовал это раньше или знает способ подключиться к самому TeX, чтобы получить лучший результат?

Обновление: Спасибо за все ответы ... это действительно кажется немного неудобным запросом! Я могу обойтись меньшим, чем общий анализ LaTeX, но причина для рассмотрения синтаксического анализатора, а не загрузки регулярных выражений в цикле заключается в том, что я хочу иметь возможность хорошо обрабатывать вложенные макросы и макросы с несколькими аргументами и получать скобки соответствие для правильной работы. Тогда я могу e. г. сначала уменьшите не относящиеся к тексту макросы, такие как \ text и \ mathrm, и обработайте релевантные тексту макросы, такие как \ frac last ... возможно, даже с соответствующими круглыми скобками! Что ж, я могу мечтать ... пока что регулярные выражения не делают такой ужасной работы.

7
задан Community 13 April 2017 в 12:34
поделиться