Ein % in eine Datei schreiben

Ein % in eine Datei schreiben

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.ltxder Definition von \@percentchar, führt jedoch zu einer weiteren „unangenehmen“ \makeatletter...\makeatotherVerwendung, weshalb ich zeige, wie es bei , mit, aber ohne das Paar, latex.ltxgemacht 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}

verwandte Informationen