
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.ltx
definição de \@percentchar
, no entanto, isso introduz outro \makeatletter...\makeatother
uso 'estranho', é por isso que mostro como latex.ltx
é, \writepercent
mas omitindo o \makeatletter...\makeatother
par.
\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}