以下 MWE 抛出错误
未定义的控制序列。\GenericError...
#4 \errhelp @err@ ... l.9 \immediate\write\fich@sol {\section{测试}} ?
有什么问题?
\documentclass{article}
\makeatletter
\newwrite \fich@sol
\def\nameFile{example.sol}
\AtBeginDocument{ \immediate\openout \fich@sol \nameFile}
\AtEndDocument{ \immediate\closeout \fich@sol}
\immediate\write\fich@sol {\section{Test}}
\makeatother
\begin{document}
Test
\end{document}
答案1
您必须在写入文件时防止扩展,您可以通过在前面加上或来实现\section
(\string
差别\noexpand
很小,但使用 时输出\string
后不会有空格,而使用 时会得到):\section
\noexpand
\section {Test}
\documentclass{article}
\makeatletter
\newwrite \fich@sol
\def\nameFile{example.sol}
\AtBeginDocument{ \immediate\openout \fich@sol \nameFile}
\AtEndDocument{ \immediate\closeout \fich@sol}
\begin{document}
Test
\immediate\write\fich@sol {\string\section{Test}}
\makeatother
\end{document}