% 記号によるコメントを無効にするにはどうすればいいですか?

% 記号によるコメントを無効にするにはどうすればいいですか?

これはコードです (すべてをファイルに保存する、逐語的な環境を作成しようとしています)。

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

関連情報