在TeX / LaTeX中将新行写入文件

时间:2010-10-05 18:46:31

标签: text latex

我有一个乳胶文档,我想用它来将文本写入纯文本文件。我希望扩展宏,所以我不能使用\filecontents(只是将输入逐字保存到文件中)

到目前为止我已经

\newwrite\metadatafile
\immediate\openout\metadatafile=\jobname-meta.txt
\immediate\write\metadatafile{Title: \jobname\string

Tags: \coursecode.\secnum.\termcode, \coursecode.\termcode, ...

Description:
...}
\immediate\closeout\metadatafile

文本文件中出现的内容是插入\par令牌而不是我的双换行符,并且根本没有任何换行符。如何获取换行符并拥有常规纯文本文件?

1 个答案:

答案 0 :(得分:2)

有两个答案:一个是使用大量\write语句,每个语句对应一行。也就是说,\write写入文件,包括换行符。所以只需

即可完成一个空白行
\write\metadatafile{}

或者您可以使用原语\newlinechar。在普通tex中,双克拉宏^^J别名为\newlinechar,因此您也可以使用它。请参阅 The TeXBook 的第228和348页。

当我打开那本书时,我在\immediate之前查看了\write原语的重要性。引用的\write的所有用法也使用\immediate。我试过没有\immediate,如果没有它,就不会写出来。