在 \newcommand 中使用 \item

在 \newcommand 中使用 \item

我尝试定义一个新的命令\Quest如下,但错误

Lonely \item--perhaps a missing list environment

出現。

\def\solnversion{0} %%set this to 1 to get solutions
\newcommand\Quest[3]{\item\ifnum\solnversion=1 #3\else #2\fi}

但如果\item删除该命令,则会出现错误

Something's wrong--perhaps a missing \item

而是出现。应该如何更正代码?

答案1

Something's wrong--perhaps a missing \item

是 LaTeX 中一个臭名昭著的错误消息,它几乎从来不是由缺少 引起的\item。它实际上是\addvspace在水平模式下使用时生成的。由于您没有提供任何上下文,我们只能说,无论您传入什么参数#2#3在您使用命令的地方都是不允许的。newcommand\ifnum测试与错误实际上无关。

由于您作为参数传递的命令需要处于垂直模式,因此大胆猜测将其置于垂直模式可能就足够了,\par将结束上一段并使 TeX 进入垂直模式,因此也许

\newcommand\Quest[3]{\par\ifnum\solnversion=1 #3\else #2\fi}

可以,如果不行(以及在以后的问题中)请提供一份完整的小文档来显示问题,

相关内容