descargar python latex scons tex

python - descargar - ¿Cómo consigo scons para invocar un script externo?



descargar scons (2)

Estoy tratando de usar scons para construir un documento de látex. En particular, quiero que scons invoque un programa de Python que genere un archivo que contenga una tabla que sea / input {} en el documento principal. He revisado la documentación de los scons, pero no me queda claro de inmediato qué debo hacer.

Lo que deseo lograr es esencialmente lo que obtendrías con este makefile:

document.pdf: table.tex pdflatex document.tex table.tex: python table_generator.py

¿Cómo puedo expresar esto en scons?


Algo en este sentido debería hacer ...

env.Command (''document.tex'', '''', ''python table_generator.py'') env.PDF (''document.pdf'', ''document.tex'')

Declara que ''document.tex'' se genera llamando al script de Python, y solicita que se cree un documento PDF a partir de este archivo generatd ''document.tex''.

Tenga en cuenta que esto es sólo en espíritu. Puede requerir algunos ajustes. En particular, no estoy seguro de qué tipo de semántica desearía para la generación de ''document.tex'': ¿debería generarse cada vez? Sólo cuando no existe? Cuando algún otro archivo cambia? (desearía agregar esta dependencia como el segundo argumento a Comando () en ese caso).

Además, la salida de Comando () se puede usar como entrada a PDF () si se desea. Para mayor claridad, no hice eso.


En este caso simple, la forma más sencilla es utilizar el módulo de subproceso.

from subprocess import call call("python table_generator.py") call("pdflatex document.tex")

Independientemente de dónde se coloquen estas líneas en su archivo SConstruct, aparecerán antes de cualquier compilación y enlace realizado por SCons.

El inconveniente es que estos comandos se ejecutarán cada vez que ejecute SCons, en lugar de solo cuando los archivos hayan cambiado, que es lo que sucedería en su Makefile de ejemplo. Entonces, si esos comandos tardan mucho tiempo en ejecutarse, esto no sería una buena solución.

Si realmente solo necesita ejecutar estos comandos cuando los archivos han cambiado, consulte la sección del manual de SCons Escribiendo sus propios constructores .