
Eu tenho que usar muitos comandos de gravação para gravar no arquivo temporário da seguinte maneira
\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
Saída
dados 1
dados 2
dados 3
dados 4
Como ainda usar várias gravações, mas resulta em apenas uma linha como
dados 1 dados 2 dados 3 dados 4
Eu não quero usar \immediate\write\tempfile{data 1 data 2 data 3 data 4}
.
Obrigado.
Responder1
A \write
sempre adiciona uma nova linha, mas você sempre pode coletar os tokens e escrevê-los todos juntos.
Por exemplo, este texto simples \mywrite{aaa}
e \mywrite{bbb}
produz um arquivo comaaabbb
\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