Запись % в файл

Запись % в файл

Я пишу макрос для записи некоторых команд в текстовый файл. Этот текстовый файл должен быть прочитан позже для выполнения некоторых макросов.

Макрос:

\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}%

Экспортированный текст

some text and a percent sign

Чтобы избежать скучных пробелов, мне нужно заканчивать строки знаком процента:%

Я попробовал эту строчку

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

что дало:

some text and a percent sign\% 

и это не то, что я хочу. Я хотел бы иметь:

some text and a percent sign% 

Можно ли записать в файл один знак процента (%) и как это сделать?

решение1

Поскольку %это символ комментария, вам нужно изменить его значение с catcode 14 на 12, т. е. букву. Это сделано в latex.ltxопределении \@percentchar, однако, это вводит еще одно «неудобное» \makeatletter...\makeatotherиспользование, поэтому я показываю, как latex.ltxэто делает like, с \writepercentbut опуская \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}

Связанный контент