关于枚举环境的行为

关于枚举环境的行为

我为家庭作业问题定义了一个非常简单的自定义环境,它基本上只是enumerate没有缩进:

\newcounter{hwprob}
\newenvironment{hwprob}{\refstepcounter{hwprob} \textbf{\thehwprob.} ~ }{}

如果我enumerate在里面打开一个实际环境hwprob,就会发生以下情况:

\begin{hwprob}
   \begin{enumerate}
      \item Some text.
      \item Some other text.
   \end{enumerate}
\end{hwprob}

我不确定为什么第一项 1. 不与1.我尝试删除波浪线,但无济于事。令我困惑的是,我知道在环境enumerate中使用时proof,第一个项目将与证明。,并带有正确的缩进和所有内容。

我该怎么做才能解决这个问题?这是我定义 的结果hwprob,还是 固有的enumerate

答案1

这是“如何”部分:定义为列表环境,并在开头hwprob自动插入。\itemhwprob

\documentclass{article}
\usepackage{enumitem}

\newlist{hwprob}{enumerate}{1}
\setlist[hwprob]{label=\textbf{\arabic*.}, first*=\item}

\begin{document}
\begin{hwprob}
   \begin{enumerate}
      \item Some text.
      \item Some other text.
   \end{enumerate}
\end{hwprob}
\end{document}

在此处输入图片描述

\trivlist对于“为什么”部分,我猜它与(也许)有关\parshape,这是列表和定理环境使用的共同基础。

答案2

您希望实现的格式化 - 让enumerate列表中的第一个项目从当前行开始而不是在换行符后开始 - 如果enumerate环境在一个 LaTeXlisttrivlist环境内启动,就会发生这种情况。

为了实现您的格式化目标,我建议您加载 enumitem 包并使用它\newlist\setlist宏来创建一个名为的定制枚举类列表环境hwprob

在此处输入图片描述

\documentclass{article}
\usepackage{enumitem}
\newlist{hwprob}{enumerate}{1}
\setlist[hwprob,1]{label=\bfseries\arabic*.,left=0pt}

\begin{document}
\begin{hwprob}
\item
   \begin{enumerate}
      \item Some text.
      \item Some other text.
   \end{enumerate}
\end{hwprob}
\end{document}

相关内容