我为家庭作业问题定义了一个非常简单的自定义环境,它基本上只是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
自动插入。\item
hwprob
\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
环境在一个 LaTeXlist
或trivlist
环境内启动,就会发生这种情况。
为了实现您的格式化目标,我建议您加载 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}