![寫入日誌文件](https://rvso.com/image/254702/%E5%AF%AB%E5%85%A5%E6%97%A5%E8%AA%8C%E6%96%87%E4%BB%B6.png)
我想在日誌檔案中寫入一些內容。對此的最佳實踐是什麼?是\message{}
還是\typeout{}
什麼?
答案1
Plain TeX 指令\wlog
在 LaTeX 中也可用
\wlog{This will be written in the log file}
該巨集\wlog
擴展為\immediate\write-1
,並且按照規則,參數將僅寫在日誌檔案中,並且不會出現在終端中。
當\write
後面跟著 0 到 15(包括在內)之間的數字時,如果在執行寫入時打開(立即或在輸出例程運行時,根據是否\immediate
先於\write
或不是)。如果輸出流未打開或者數字非負,參數 被\write
寫入終端機和日誌檔案。相反,當數字為負數時,參數僅寫入日誌檔案中。
例外:在大多數 TeX 發行版中,\write18
將參數傳遞給作業系統,前提是啟用了 shell 轉義(可能在受限模式下,請參閱 TeX Live 或 MiKTeX 的手冊)。
LaTeX 命令\typeout
執行\immediate\write\@unused
此操作,因此它將參數寫入終端機和日誌檔案。 Plain TeX 中沒有此類預定義指令。 Indeed\typeout
也\protect
為處女論證中的脆弱命令提供了適當的意義。該\@unused
流永久未分配給文件。
也會在終端機和日誌檔案中寫入,但它不會強制換行,而是在輸出定向到日誌檔案時\message
完成。\write