我正在尝试使用 LaTeX 环境写入一些外部文件filecontents
。为此,我创建了一个环境,用于写入内容并使用计数器对文件进行编号。
但是代码无法编译。我收到错误File ended while scanning use of ^^M
平均能量损失
\documentclass[11pt]{book}
\usepackage{currfile}
\newcounter{Qcours}
\setcounter{Qcours}{0}
\newenvironment{qcours}{%
\refstepcounter{Qcours}
\begin{filecontents}{\theQcours.tex}}{\end{filecontents}}
%
\begin{document}
It's working fine.
\begin{filecontents}{\theQcours.tex}
ABCDE
\end{filecontents}
But the following don't.
\begin{qcours}
FGHI
\end{qcours}
\end{document}
答案1
使用fancyvrb
:
\documentclass[11pt]{book}
\usepackage{fancyvrb}
\newcounter{Qcours}
%\setcounter{Qcours}{0}
\newenvironment{qcours}{%
\VerbatimEnvironment\stepcounter{Qcours}%
\begin{VerbatimOut}{\theQcours.tex}%
}{\end{VerbatimOut}}
\begin{document}
\begin{qcours}
FGHI
\end{qcours}
\end{document}
答案2
尝试输入以下(未经测试的)代码qcours.sty
并执行\usepackage{qcours}
:
\RequirePackage{verbatim}
\newcounter{Qcours}
\def\Qcours{%
\@bsphack
\refstepcounter{Qcours}
\immediate\openout\qcours@out=\theQcours.tex
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\qcours@out
{\the\verbatim@line}}%
\verbatim@start}
\def\endQcours{%
\immediate\qcours@out
\@esphack
}