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}