將 % 寫入檔案

將 % 寫入檔案

我正在編寫一個巨集來將一些命令寫入文字檔案。該文字檔案應該稍後讀取以執行一些巨集。

宏:

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

相關內容