如何使用 expl3 写入文件

如何使用 expl3 写入文件

我开始学习 expl3,但这对我来说太难了。

我试图了解文件管理是如何运作的。

如何修复我的下一个 mwe,使其不要忽略第一次调用 \Write 命令时的换行符,以及最后一次调用 \Write 将完整的扩展内容附加到文件?

感谢您的帮助!

\documentclass{article}
\ExplSyntaxOn
\iow_new:N \tdm_io
\iow_open:Nn \tdm_io {testfile1.txt}
\NewDocumentCommand{\Write}{+m}{
\iow_now:Nx \tdm_io {#1}
}
\Write{aaa

aa}
\Write{bbbbb}
\Write{ccccc}
\iow_close:N \tdm_io
\ExplSyntaxOff
\begin{document}

\def\cmd{Content command}

\Write{Append the \cmd at the end of file}
\end{document}```

答案1

您正在编写范围内的第一行\ExplSyntaxOn,其中空格和空行会被忽略。

\documentclass{article}

\ExplSyntaxOn

\iow_new:N \g_rodriguez_tdm_iow
\iow_open:Nn \g_rodriguez_tdm_iow {\jobname.txt}
\NewDocumentCommand{\Write}{+m}
  {
    \iow_now:Nx \g_rodriguez_tdm_iow {#1}
  }

\ExplSyntaxOff

\Write{aaa

aa}
\Write{bbbbb}
\Write{ccccc}

\begin{document}

\def\cmd{Content command}

\Write{Append the \cmd\space at the end of file}

\end{document}

请使用正确的变量名称格式。写出的文件将包含

aaa \par aa
bbbbb
ccccc
Append the Content command at the end of file

正如预期的那样。

相关内容