Tengo un par de proyectos de código en C++/Python en los que las etiquetas y descripciones de formato LaTeX se usan para generar documentación en PDF o gráficos creados con LaTeX + pstricks. Sin embargo, también tenemos algunas salidas de texto sin formato, como una versión HTML de la documentación (ya tengo el código para escribir marcas mínimas para eso) y un representador de gráficos no compatible con TeX.Conversión/análisis programático de código LaTeX a texto sin formato
Para estos me gustaría eliminar el marcado de TeX que es necesario, p. representando unidades físicas. Esto incluye espacios sin interrupción (delgados), \ text, \ mathrm, etc. También sería bueno analizar cosas como \ frac {# 1} {# 2} en # 1/# 2 para la salida de texto sin formato (y usa MathJax para el HTML). Debido al sistema que tenemos en este momento, necesito poder hacer esto desde Python, es decir, idealmente Estoy buscando un paquete Python, pero un ejecutable que no sea Python al que pueda llamar desde Python y atrapar la cadena de salida también estaría bien.
Conozco el similar question on the TeX StackExchange site, pero no había ninguna solución realmente programática: he visto detex, plasTeX y pytex, que parecen todos un poco muertos y realmente no hacen lo que yo necesidad: conversión programática de una cadena TeX a una cadena representativa de texto plano.
Podría intentar escribir un analizador TeX básico utilizando, p. pyparsing, pero a) que podría estar lleno de trampas y se podría apreciar la ayuda, yb) seguramente alguien lo había intentado antes, o sabe de una forma de conectarse con TeX para obtener un mejor resultado.
Actualización: Gracias por todas las respuestas ... de hecho parece ser un poco incómodo. Puedo arreglármelas con menos análisis generales de LaTeX, pero la razón para considerar un analizador en lugar de una carga de expresiones regulares en un bucle es que quiero ser capaz de manejar macros anidadas y macros multi-arg muy bien, y obtener el paréntesis hacer coincidir para que funcione correctamente. Entonces puedo, por ejemplo, reduzca las macros irrelevantes de texto como \ text y \ mathrm primero, y maneje las relevantes para txt como \ frac last ... incluso con los paréntesis apropiados. Bueno, puedo soñar ... por ahora las expresiones regulares no están haciendo un trabajo tan terrible.
Tienes razón, la piratería de TeX es una cosa brutal, pero otros han hecho algunos progresos con esto. matplotlib contiene un analizador TeX de pyparsing que quizás puedas doblar para tu propósito. También podría intentar publicar en la lista de correos de pyparsing y ver si algunos de los que han trabajado en TeX en el pasado podrían ayudar. – PaulMcG
Ver http://stackoverflow.com/questions/3610551/math-in-restructuredtext-with-latex. –
Gracias: Miraré primero en matplotlib ... eso también es una dependencia preexistente para uno de mis paquetes, así que, si tengo suerte, ¡puedo usarlo a través de la API mpl! Cheers :) – andybuckley