![如何禁用使用 % 符号的评论?](https://linux22.com/image/455938/%E5%A6%82%E4%BD%95%E7%A6%81%E7%94%A8%E4%BD%BF%E7%94%A8%20%25%20%E7%AC%A6%E5%8F%B7%E7%9A%84%E8%AF%84%E8%AE%BA%EF%BC%9F.png)
这是代码(我正在尝试创建将所有内容保存到文件中的逐字环境):
\documentclass{article}
\NewDocumentEnvironment{foo}{b}{%
\newwrite\myfile
\immediate\openout\myfile=myfile.txt
\immediate\write\myfile{\detokenize{#1}}
\immediate\closeout\myfile
}{}
\AddToHook{env/foo/before}{\obeylines\obeyspaces}
\begin{document}
\begin{foo}
First \LaTeX
% Second
Third
\end{foo}
\end{document}
我期望此内容在myfile.txt
:
First \LaTeX
% Second
Third
然而,我得到了:
^^MFirst \LaTeX ^^MThird^^M
如何修复注释符号和^^M
(我希望正常的 EOL 在那里)?另外,后面的空格\LaTeX
不能在那里。
答案1
这和你上一个问题一样
\documentclass{article}
\newwrite\myfile
\NewDocumentEnvironment{foo}{b}{%
% no \newwrite\myfile
\immediate\openout\myfile=myfile.txt
\immediate\write\myfile{\detokenize{#1}}%
\immediate\closeout\myfile
}{}
\AddToHook{env/foo/before}{%
\newlinechar=\endlinechar% as before
\catcode`\%=12\relax
\obeylines\obeyspaces}
\begin{document}
\begin{foo}
First \LaTeX
% Second
Third
\end{foo}
\end{document}