我刚刚定义了一个命令,如下所示:
\newcommand{\Question}[1]{\textbf{?: #1}\\[5pt]}
以下是代码片段,我想使用物品环境:
\documentclass[letter, 11pt]{article}
\newcommand{\Question}[1]{\textbf{?: #1}\\[5pt]}
\begin{document}
\section*{Question \#2}
\Question{Here is the question
\begin{itemize}
\item[2.1] first part
\item[2.2] second part
\end{itemize}
}
\end{document}
编译会引发错误,如下所示:
这里没有终点。
因此,当我在逐项列举环境中,错误将会消失:
\Question{Here is the question
\begin{itemize}
\item[2.1] first part
\item[2.2] second part
\end{itemize}
.
}
看起来,问题命令应该改变,但我不知道该怎么做。
答案1
整个构造作为环境肯定会更好。\textbf
不允许空行(这与问题的早期版本有关)并且\\
几乎从来不需要在表格之外使用。这里如果#1
没有在段落中间结束,那么你会收到一个错误,\\
说没有行可以结束,你应该使用\par\vspace{5pt}
或更好地使用基于的显示环境,list
以便更好地处理相邻显示的空间。
但简单的重新定义就是
\newcommand{\Question}[1]{{\bfseries?: #1\par\vspace{5pt}}}
答案2
我认为命令在这里毫无用处。手动编号会让你抓狂。把它放在一个好的环境中,让 LaTeX 来完成这项工作。
\documentclass[11pt]{article}
\setcounter{secnumdepth}{-1}
\newcounter{question}
\newenvironment{question}{\refstepcounter{question}\section{Question \thequestion}\bfseries{?:~}}{\par\vspace{5pt}}
\usepackage{enumitem}
\newlist{qitemize}{enumerate}{2}
\setlist[qitemize]{label={\thequestion.\arabic*}}
\begin{document}
\begin{question}What is a cool animal?
\begin{qitemize}
\item first wombat
\item second capybara
\end{qitemize}
\end{question}
\begin{question}What is a tasty fruit?
\begin{qitemize}
\item Banana
\item Lemon
\end{qitemize}
\end{question}
\end{document}
我个人认为整个问题很大胆,因为极其丑陋的。