在日志文件中打印 `\write18` 的输出

在日志文件中打印 `\write18` 的输出

运行以下命令时:

\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

随意装饰。

相关内容