确保在行首添加 enumerate*

确保在行首添加 enumerate*

enumerate*我正在使用包提供的内联列表环境enumitem。但我不希望环境与前面的文本保持在同一行。

如果项目之前存在一些文本,我希望结果如下所示。

some text before items.
1. item 2. item

在这种情况下,以下代码可以正常工作。

\documentclass{article}
\usepackage[inline]{enumitem}
\setlist[enumerate]{before=\newline}
\begin{document}
some text before items.
\begin{enumerate*}
  \item item
  \item item
\end{enumerate*}
%\par\begin{enumerate*}
%  \item item
%  \item item
%\end{enumerate*}
\end{document}

但如果enumerate*位于段落的开头(见上面注释的代码),就会产生错误There's no line here to end。如何避免这个错误?

欢迎任何建议或意见。非常感谢!

答案1

\noindent\par我找到了一个解决方案。在环境的开头插入效果很好enumerate*。由于选项before=...不能包含\par命令,因此我使用包\AtBeginEnvironment提供的命令etoolbox

在这种情况下,即使它是在paragraph命令之后,它也能很好地工作,但我不知道为什么。

完整代码如下。

\documentclass{article}
\usepackage[inline]{enumitem}
\usepackage{etoolbox}
\AtBeginEnvironment{enumerate*}{\noindent\par\noindent}
\begin{document}
something
\begin{enumerate*}
  \item item
  \item item
\end{enumerate*}
\par
\begin{enumerate*}
  \item item
  \item item
\end{enumerate*}
\paragraph{something}
\begin{enumerate*}
  \item item
  \item item
\end{enumerate*}
\end{document}

相关内容