我尝试定义一个新的命令\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}
可以,如果不行(以及在以后的问题中)请提供一份完整的小文档来显示问题,