
Estoy escribiendo una macro para escribir algunos comandos en un archivo de texto. Se supone que este archivo de texto debe leerse más tarde para ejecutar algunas macros.
La 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}%
El texto exportado
some text and a percent sign
Para evitar espacios en blanco aburridos, necesito terminar mis líneas con un signo de porcentaje:%
Probé esta línea
\immediate\write\tmpfile{some text and a percent sign\%}%
que dio:
some text and a percent sign\%
y no es lo que quiero. Me gustaría tener :
some text and a percent sign%
¿Es posible escribir un solo signo de porcentaje (%) en un archivo y cómo hacerlo?
Respuesta1
Como %
es el carácter de comentario, debes cambiar su significado del código cat 14 a 12
, es decir, una letra. Esto se hace en latex.ltx
la definición de \@percentchar
, sin embargo, esto introduce otro uso "incómodo" \makeatletter...\makeatother
, es por eso que muestro la forma en que latex.ltx
lo hace, \writepercent
pero omitiendo el \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}