Escrevendo um% em um arquivo

Escrevendo um% em um arquivo

Estou escrevendo uma macro para escrever alguns comandos em um arquivo de texto. Este arquivo de texto deve ser lido posteriormente para executar algumas macros.

A macro:

\documentclass{article}
\begin{document}%
\newwrite\tmpfile%
\immediate\openout\tmpfile=output.tex%
\immediate\write\tmpfile{some text and a percent sign}%
\immediate\closeout\tmpfile%
\end{document}%

O texto exportado

some text and a percent sign

Para evitar espaços em branco chatos, preciso terminar minhas linhas com um sinal de porcentagem:%

Eu tentei esta linha

\immediate\write\tmpfile{some text and a percent sign\%}%

que deu:

some text and a percent sign\% 

e não é querer que eu queira. Eu gostaria de ter :

some text and a percent sign% 

É possível escrever um único sinal de porcentagem (%) em um arquivo e como fazer?

Responder1

Como %é o caractere de comentário, você deve alterar seu significado de catcode 14 para 12, ou seja, uma letra. Isso é feito na latex.ltxdefinição de \@percentchar, no entanto, isso introduz outro \makeatletter...\makeatotheruso 'estranho', é por isso que mostro como latex.ltxé, \writepercentmas omitindo o \makeatletter...\makeatotherpar.

\documentclass{article}


\catcode`\%=12
\def\writepercent{%}
\catcode`\%=14


%Also possible

\makeatletter
\def\writepercentother{\@percentchar}%
\makeatother

\begin{document}%


\newwrite\tmpfile%

\immediate\openout\tmpfile=output.tex%
\makeatletter
\immediate\write\tmpfile{some text and a percent sign\@percentchar}
\makeatother
\immediate\write\tmpfile{Another important text and a percent sign\writepercent}
\immediate\closeout\tmpfile%
\end{document}

informação relacionada