运行以下命令时:
\immediate\write18{ls}
在命令行中,我可以直接在终端中看到命令行中的输出,这对于获取错误消息非常有用。不幸的是,这没有写在 .log 文件中,因此例如在 TexStudio 中,日志只会打印:
runsystem(ls)...executed.
这对于调试来说没有什么帮助。是否可以强制 LaTeX 直接在日志文件中打印输出\write18
?理想情况下,我希望解决方案尽可能独立于操作系统,因为我需要为库实现它。
答案1
\documentclass{article}
\ExplSyntaxOn
\NewDocumentCommand{\writecommandtolog}{m}
{
\sys_get_shell:nnN { ls~-1 } { } \l_tmpa_tl
\exp_args:NV \iow_log:n \l_tmpa_tl
}
\ExplSyntaxOff
\writecommandtolog{ls}
\stop
在我的实验中,日志的相关部分是
aa.tex cc.tex tolog.log tolog.tex xyz.tex
随意装饰。