ログファイルに書き込む

ログファイルに書き込む

ログ ファイルにいくつかのことを書き込みたいのですが、これに対するベスト プラクティスは何ですか?\message{}それとも、\typeout{}それとも何か?

答え1

Plain TeXコマンドは\wlogLaTeXでも利用可能である。

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

マクロは\wlogに展開され\immediate\write-1、規則により引数はログ ファイルにのみ書き出され、ターミナルには表示されません。


の後に0から15までの数字が続く場合\write、書き込み操作は、書き込みが実行される時点で開いている出力ストリームに対して行われます(が\immediate先行している\writeかどうかに応じて、すぐに、または出力ルーチンが動作しているときに)。出力ストリームが開いていない場合は、または数が負でない場合、引数は\write端末とログ ファイルに書き込まれます。逆に、数が負の場合、引数はログ ファイルにのみ書き込まれます。

例外: ほとんどの TeX ディストリビューションでは、\write18シェル エスケープが有効になっている場合 (制限モードの可能性もあります。TeX Live または MiKTeX のマニュアルを参照してください)、引数をオペレーティング システムに渡します。

LaTeX コマンドは\typeoutを実行する\immediate\write\@unusedため、引数を端末とログ ファイルの両方に書き込みます。Plain TeX には、この種の定義済みコマンドはありません。実際、引数内の脆弱なコマンドに対処するための適切な意味\typeoutも与えられます。ストリームはファイルに永久に割り当てられません。\protect\@unused

また、\messageターミナルとログ ファイルの両方に書き込みますが、新しい行は強制されず、代わりに\write出力がログ ファイルに送信されるときに実行されます。

関連情報