У меня есть пара проектов кода на 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, но причина рассмотрения парсера, а не загрузки регулярных выражений в цикле, заключается в том, что я хочу иметь возможность красиво обрабатывать вложенные макросы и макросы с несколькими аргументами и получить скобки соответствие для правильной работы. Тогда я могу, например, уменьшите txt-нерелевантные макросы, такие как \ text и \ mathrm first, и обработайте txt-релевантные макросы, такие как \ frac last ... возможно, даже с соответствующими скобками! Ну, я могу мечтать ... пока регулярные выражения не делают такую ужасную работу.