Ejecutar pdflatex silenciosamente [cerrado]


Estoy llamando a pdflatex desde mi programa (C++) usando system(), no hace falta decir que toda la basura que pdflatex pone en pantalla es un poco irritante en este caso.

So...¿cómo animo a pdflatex a renunciar a los resultados largos? Sería aún mejor si solo los errores fueran visibles...

Author: Kevin Reid, 2009-06-24

2 answers

Para simplemente ignorar toda la salida, redirija pdflatex stdout a / dev/null:

system("pdflatex yourdocument >/dev/null");

Es posible que desee agregar \nonstopmode al principio de su documento para indicar a tex que siga adelante incluso cuando encuentre errores.

Para obtener los mensajes de error, canalice la salida de pdflatex a su programa y busque errores alrededor de las filas que comienzan con !, por ejemplo,

FILE *outputf = popen("pdflatex yourdocument", "r");

// ... read and analyze output from outputf ...

pclose(outputf);
 23
Author: laalto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-24 12:21:13

Desafortunadamente (La)TeX no cumple realmente con las reglas de stdout y sterr, debido (supongo) a sus orígenes a principios de los 80, pero hay algunos interruptores que puede invocar para alterar la cantidad de información que se muestra.

Ejecute latex con los conmutadores -interaction=nonstopmode o -interaction=batchmode para un comportamiento no detenido incluso en el caso de un error de sintaxis. nonstopmode imprimirá todas las líneas habituales, simplemente no se detendrá. batchmode suprimirá todas menos un puñado de líneas declarativas ("esto es pdfTeX v3.14...").

También se pueden invocar desde dentro del documento con \batchmode y \nonstopmode, pero esto es menos útil para la situación que está describiendo.

 61
Author: Will Robertson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-29 00:14:27