我发现了 enumitem 包中的内联列表,它的工作方式与我想要的完全一样,只是每个项目前面都有一些前导空格。我尝试阅读手动的说实话,我不明白各种不同的间距参数有什么作用,也不知道它们是否有任何作用。我怀疑这是列表内联的一些极端情况。
\documentclass{article}
\usepackage[inline]{enumitem}
\newlist{commalist}{itemize*}{1}
\setlist[commalist]{label={},itemjoin={{·}}}
\begin{document}
First Line
\begin{commalist}
\item First
\item Second
\item Third
\end{commalist}
Second Line
\end{document}
我看见这个答案这给了我在列表环境中重新定义命令的想法\item
,但我无法让它发挥作用:
\documentclass{article}
\usepackage[inline]{enumitem}
\let\realitem\item
\newcommand{\mynewitem}{%
\realitem\hspace*{-\labelsep}\ignorespaces%
}
\newlist{commalist}{itemize*}{1}
\setlist[commalist]{before={\let\item\mynewitem},label={},itemjoin={{·}}}
\begin{document}
First Line
{%
\setlength\parskip{0pt}%
\begin{commalist}
\item First
\item Second
\item Third
\end{commalist}}
Second Line
\end{document}
答案1
糟糕!答案很简单,就是设置,afterlabel={}
因为默认情况下它被设置为\nobreakspace
。
\documentclass{article}
\usepackage[inline]{enumitem}
\newlist{commalist}{itemize*}{1}
\setlist[commalist]{label={},itemjoin={{·}},afterlabel={}}
\begin{document}
First Line
\begin{commalist}
\item First
\item Second
\item Third
\end{commalist}
Second Line
\end{document}