下面这段代码在texlive中编译不通过,会报错如下错误:
Excluding comment 'comment') Excluding comment 'solution'
No file mwe.aux.
Excluding 'solution' comment.)
Runaway argument?
! File ended while scanning use of \next.
<inserted text>
\par
<*> mwe
?
而之前在texlive 2024中可以正常编译,除了重新安装texlive 2024,有无解决办法?
代码来源于LaTeX实现题目与答案分离 - 向老师讲数学的文章 - 知乎
\documentclass{ctexart}
\usepackage{zhlipsum}
\newenvironment{solution}{\par
\textbf{答案}\quad
}{\par}
\usepackage{comment}
\excludecomment{solution} % 添加这两句话将注释掉所有的`solution`环境
\begin{document}
\begin{enumerate}
\item 第一题
\begin{solution}
\zhlipsum[1]
\end{solution}
\item 第二题
\begin{solution}
\zhlipsum[2]
\end{solution}
\end{enumerate}
\end{document}
与TL的版本无关。
此事在此亦有记载。
在comment
宏包的文档中我们可以看到:
comment
的环境内不能有任何前方的空格和后方的内容。上图中\begin{solution}
前有8个空格...
%
是否存在、是否用在正确的位置都可能影响结果。下面的代码去掉前导空格之后即可以正确工作...
\documentclass{ctexart}
\usepackage{zhlipsum}
\newenvironment{solution}{\par
\textbf{答案}\quad
}{\par}
\usepackage{comment}
\excludecomment{solution} % 添加这两句话将注释掉所有的`solution`环境
\begin{document}
\begin{enumerate}
\item 第一题
\begin{solution}
\zhlipsum[1]
\end{solution}
\item 第二题
\begin{solution}
\zhlipsum[2]
\end{solution}
\end{enumerate}
\end{document}
非常感谢,测试了下确实这样,很奇怪的是之前我用Texlive2024的时候是可以正常编译的,最近升级了2025之后才开始报错,还有就是前方不能有缩进简直逼死强迫症,不知道有没有其它的替代方案。
@u4347
这是
comment
这个包的性质导致的,感觉没有太好的办法。类似的情况也发生在
listings
环境中:在不对参数进行设置的情况下,
<code>
前的8个空格是都会呈现在PDF中的