![Escribir en el archivo de registro](https://rvso.com/image/254702/Escribir%20en%20el%20archivo%20de%20registro.png)
Quiero escribir algunas cosas en el archivo de registro. ¿Cuál es la mejor práctica para esto? ¿Es \message{}
o \typeout{}
o qué?
Respuesta1
El comando Plain TeX \wlog
también está disponible en LaTeX
\wlog{This will be written in the log file}
La macro \wlog
se expande a \immediate\write-1
y, por regla general, el argumento se escribirá solo en el archivo de registro y no aparecerá en la terminal.
Cuando \write
va seguido de un número entre 0 y 15 (incluido), la operación de escritura se realiza en el flujo de salida con ese número si está abierto en el momento en que se realiza la escritura (inmediatamente o cuando la rutina de salida está en acción, según \immediate
preceda \write
o no). Si el flujo de salida no está abiertooel número no es negativo, el argumento \write
se escribe en el terminal y en el archivo de registro. Por el contrario, cuando el número es negativo, el argumento se escribe sólo en el archivo de registro.
Excepción: en la mayoría de las distribuciones TeX, \write18
pasa el argumento al sistema operativo, siempre que el escape del shell esté habilitado (posiblemente en modo restringido, consulte el manual de TeX Live o MiKTeX).
El comando LaTeX \typeout
lo hace \immediate\write\@unused
, por lo que escribe el argumento tanto en la terminal como en el archivo de registro. No existe ningún comando predefinido de este tipo en Plain TeX. De hecho, \typeout
también da \protect
un significado adecuado para hacer frente a órdenes frágiles en el argumento. La \@unused
secuencia no está asignada permanentemente a un archivo.
También \message
escribe tanto en la terminal como en el archivo de registro, pero no fuerza una nueva línea, lo que se hace \write
cuando la salida se dirige al archivo de registro.