我开始学习 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
正如预期的那样。