50 基于comment宏包的「隐藏答案」功能在TL2025中无法正确编译?

发布于 2025-09-13 16:03:56

下面这段代码在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}

查看更多

关注者
0
被浏览
91
Sagittarius Rover
Sagittarius Rover 17小时前
这家伙很懒,什么也没写!

与TL的版本无关。

此事在此亦有记载。

comment宏包的文档中我们可以看到:

image.png

这要求在被comment的环境内不能有任何前方的空格和后方的内容。

image.png

上图中\begin{solution}前有8个空格...

注意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}

image.png

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览