[Tex/LaTex] How to remove \vskip from beginning of multicols-environment

listsmulticolspacing

In the documentation of the multicol it reads that as a first action of an multicols environment (if there's enough space etc.) “[…] a \vskip of \multicolsep is added.”

I use enumitem and combine it with multicol by:

\SetEnumitemKey{twocol}{
  before=\raggedcolumns\begin{multicols}{2},
  after=\end{multicols}
}

to get two-columned list environments. Now I really dislike the \vskip the package puts at the beginning of an environment. How can I remove it (just for the lists)?

Best Answer

You can add \setlength{\multcolsep}{0pt} to the before code; this won't propagate to other multicols environments in the document, because it's issued in a group (the enumerate or itemize environment).

However, removing it will leave no space around the list, so maybe it's better to say

\SetEnumitemKey{twocol}{
  before=\raggedcolumns\setlength{\multicolsep}{\topsep}\begin{multicols}{2},
  after=\end{multicols}
}

and the space around

\begin{enumerate}[twocol]
...
\end{enumerate}

will be the same as the space around an enumerate environment without the new option.