% 기호로 주석 달기를 비활성화하는 방법은 무엇입니까?

% 기호로 주석 달기를 비활성화하는 방법은 무엇입니까?

다음은 코드입니다(모든 것을 파일에 저장하는 축어적인 환경을 만들려고 합니다).

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

관련 정보