将%写入文件

将%写入文件

我正在编写一个宏,将一些命令写入文本文件。稍后将读取此文本文件以执行一些宏。

宏:

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

相关内容