
Ich schreibe ein Makro, um einige Befehle in eine Textdatei zu schreiben. Diese Textdatei soll später gelesen werden, um einige Makros auszuführen.
Das Makro:
\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}%
Der exportierte Text
some text and a percent sign
Um langweilige Leerzeichen zu vermeiden, muss ich meine Zeilen mit einem Prozentzeichen beenden:%
Ich habe diese Zeile versucht
\immediate\write\tmpfile{some text and a percent sign\%}%
was ergab:
some text and a percent sign\%
und es ist nicht das, was ich will. Ich hätte gern:
some text and a percent sign%
Ist es möglich, ein einzelnes Prozentzeichen (%) in eine Datei zu schreiben und wie geht das?
Antwort1
Da %
es sich bei dem Kommentarzeichen um ein Zeichen handelt, müssen Sie seine Bedeutung von Catcode 14 in ändern 12
, also einen Buchstaben. Dies geschieht in latex.ltx
der Definition von \@percentchar
, führt jedoch zu einer weiteren „unangenehmen“ \makeatletter...\makeatother
Verwendung, weshalb ich zeige, wie es bei , mit, aber ohne das Paar, latex.ltx
gemacht wird .\writepercent
\makeatletter...\makeatother
\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}