如何\immediate\write 多行?

如何\immediate\write 多行?

将 LuaLaTeX 与 TeXlive 2016 结合使用,尽管我认为这个问题几乎适用于所有事情:

我知道如何\immediate\write逐行创建文件。但我想为多行执行此操作,其中行数是事先不知道的(这是在宏中收集文本项的结果)。如下所示:

\newwrite\file
\immediate\openout\file=pickafilename.txt
\immediate\write\file{Hello! I am a new file.}
\immediate\write\file{\MacroContainingTextMacros}
\closeout\file

其中\MacroContainingTextMacros有几个小宏,我希望在文件写入时展开它们。每个小宏都包含几行纯文本。所以我不能使用逐字或filecontents

有任何想法吗?

答案1

您只需要写入\newlinechar预设为^^J乳胶的内容。

\def\MacroContainingTextMacros{
aa^^Jbb^^Jcc}
\newwrite\file
\immediate\openout\file=pickafilename.txt
\immediate\write\file{Hello!^^JI am a new file.}
\immediate\write\file{\MacroContainingTextMacros}
\closeout\file

\stop

生产

Hello!
I am a new file.
 aa
bb
cc

相关内容