Solución:
Haría algo como lo siguiente (parcialmente motivado por lo que sugirió Roman): haga que su archivo LaTeX sea
documentclass{article}
begin{document}
input{scriptoutput.tex}
end{document}
y genera el archivo scriptoutput.tex
utilizando
/usr/local/bin/my-shell-script.sh > scriptoutput.tex
Puede codificar esto en un archivo MAKE si desea que se ejecute automáticamente cuando sea necesario. Alternativamente, puede usar el TeX write18
mando,
documentclass{article}
immediatewrite18{/usr/local/bin/my-shell-script.sh > scriptoutput.tex}
begin{document}
input{scriptoutput.tex}
end{document}
y creo que ejecutará automáticamente el script de shell cada vez que compile el documento. los immediate
Es necesario asegurarse de que el script se ejecute cuando LaTeX encuentre el comando, en lugar de esperar hasta que se escriba una página de salida. (Consulte esta pregunta para obtener más información sobre la rutina de envío).
Como señaló David, puede usar write18
para llamar a programas externos, luego input
el archivo de salida resultante. Sin embargo, probablemente querrá usar immediatewrite18
para asegurarse de que el script se ejecute antes de llamar al input
.
Alternativamente, si usa versiones más recientes de pdf (la) tex (después de 1.40, creo), puede canalizar la salida directamente al documento, utilizando un comando de entrada canalizada:
documentclass{article}
begin{document}
input{|"/usr/local/bin/my-shell-script.sh"}
end{document}
Para cualquiera de los métodos, deberá habilitar las llamadas a programas externos. Para las distribuciones de TeXlive, debe llamar a latex con el -shell-escape
opción, o para MikTeX, creo que la opción es -enable-write18
.
Puede hacer esto en TeX. Este documento (PDF) le muestra cómo escribir y ejecutar un virus dentro de TeX. Los mismos principios se aplican para ejecutar un script de shell. Sin embargo, en mi opinión, es más práctico escribir un Makefile, que se ejecuta antes de que se ejecute LaTeX e inserta el resultado.