Wie verwende ich viele \write, um Text in nur einer Zeile zu schreiben?

Wie verwende ich viele \write, um Text in nur einer Zeile zu schreiben?

Ich muss viele Schreibbefehle verwenden, um in die temporäre Datei zu schreiben, wie folgt

\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

Ausgabe

Daten 1

Daten 2

Daten 3

Daten 4

Wie kann ich weiterhin mehrere Schreibvorgänge ausführen, aber die Ergebnisse nur in einer Zeile anzeigen?

Daten 1 Daten 2 Daten 3 Daten 4

Ich möchte nicht verwenden \immediate\write\tempfile{data 1 data 2 data 3 data 4}.

Danke schön.

Antwort1

A \writefügt immer eine neue Zeile hinzu, Sie können die Token jedoch auch immer sammeln und alle zusammen schreiben.

Zum Beispiel dieser einfache tex \mywrite{aaa} und \mywrite{bbb}erzeugt eine Datei mitaaabbb

\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

verwandte Informationen