複数の \write を使用して 1 行にテキストを書き込むにはどうすればよいでしょうか?

複数の \write を使用して 1 行にテキストを書き込むにはどうすればよいでしょうか?

一時ファイルに書き込むには、次のように多くの書き込みコマンドを使用する必要があります。

\newwrite\tempfile
\immediate\openout\tempfile=tempt.txt
\immediate\write\tempfile{data 1}
\immediate\write\tempfile{data 2}
\immediate\write\tempfile{data 3}
\immediate\write\tempfile{data 4}
\immediate\closeout\tempfile

出力

データ1

データ2

データ3

データ4

複数の書き込みを使用しながら、結果を1行にまとめる方法

データ 1 データ 2 データ 3 データ 4

使いたくありません\immediate\write\tempfile{data 1 data 2 data 3 data 4}

ありがとう。

答え1

A は\write常に改行を追加しますが、トークンを収集してすべてを一緒に書き込むこともできます。

例えば、このプレーンテキスト\mywrite{aaa}\mywrite{bbb}次のようなファイルを生成します。aaabbb

\newwrite\zz
\newtoks\zzz

\def\mywrite#1{\zzz\expandafter{\the\zzz#1}}

\mywrite{aaa}
\mywrite{bbb}




\immediate\openout\zz=\jobname.zz
\immediate\write\zz{\the\zzz}
\immediate\closeout\zz

\bye

関連情報