In Logdatei schreiben

In Logdatei schreiben

Ich möchte einige Dinge in die Protokolldatei schreiben. Was ist hierfür die beste Vorgehensweise? Ist es \message{}oder \typeout{}oder was?

Antwort1

Der Plain TeX-Befehl \wlogist auch in LaTeX verfügbar

\wlog{This will be written in the log file}

Das Makro \wlogwird zu erweitert \immediate\write-1, und das Argument wird in der Regel nur in die Protokolldatei geschrieben und erscheint nicht im Terminal.


Wenn \writeeine Zahl zwischen 0 und 15 (einschließlich) folgt, wird der Schreibvorgang auf dem Ausgabestream mit dieser Nummer ausgeführt, wenn dieser zum Zeitpunkt des Schreibvorgangs geöffnet ist (sofort oder wenn die Ausgaberoutine aktiv ist, je nachdem, ob sie \immediatevorangeht \writeoder nicht). Wenn der Ausgabestream nicht geöffnet istoderWenn die Zahl nicht negativ ist, wird das Argument \writeauf dem Terminal und in der Protokolldatei geschrieben. Umgekehrt wird das Argument nur in der Protokolldatei geschrieben, wenn die Zahl negativ ist.

Ausnahme: In den meisten TeX-Distributionen \write18wird das Argument an das Betriebssystem übergeben, sofern die Shell-Escape-Funktion aktiviert ist (möglicherweise im eingeschränkten Modus, siehe das Handbuch von TeX Live oder MiKTeX).

Der LaTeX-Befehl \typeouttut dies \immediate\write\@unused, schreibt also das Argument sowohl in das Terminal als auch in die Protokolldatei. In Plain TeX gibt es keinen vordefinierten Befehl dieser Art. Indeed \typeoutgibt auch \protecteine geeignete Bedeutung für den Umgang mit fragilen Befehlen im Argument. Der \@unusedStream ist dauerhaft keiner Datei zugewiesen.

Schreibt außerdem \messagesowohl in das Terminal als auch in die Protokolldatei, erzwingt jedoch keine neue Zeile, was stattdessen erfolgt, \writewenn die Ausgabe in die Protokolldatei geleitet wird.

verwandte Informationen