[Tex/LaTex] Multicolumn lists, don’t break item, don’t vfill list

columnsformattingitemize

\begin{itemize}
\setlength\itemsep{-0.5em}
\begin{multicols}{2}
\item[1] 12-ounces package fully cooked chicken sausage links, sliced 
\item[4] cloves garlic, thinly sliced 
\item[1] 19-ounces can cannellini beans, rinsed 
\item[1] 14.5-ounces can low-sodium chicken broth 
\item[1] 14.5-ounces can diced tomatoes 
\item[1] bunch kale leaves, torn into 2-inch pieces 
\item[-] kosher salt and black pepper 
\end{multicols}
\end{itemize}

enter image description here

I am trying to generate many recipe pages from some excel files with a c# code. So I am trying to get all of my formatting to work very generally and not have to make little fixes. This particular one demonstrates two problems I am having.

First I want to ensure that an item isn't split onto the next column. But when I use multicols* and use a manual break, the list fills the entire page. I still want it to only be as tall as however many lines it ends up being. Second, I don't want the second column to stretch to fill the height of the first.

I could put in blank items, but there is no way for me to know, when running my generator, how many lines an item will take up so I can't know for sure how many blank items to put in.

Best Answer

enter image description here

\documentclass{article}
\usepackage{multicol}
\begin{document}


\begin{multicols}{2} \raggedcolumns
\begin{itemize}\setlength\itemsep{-0.5em}
\item[1] 12-ounces package fully cooked chicken sausage links, sliced 
\item[4] cloves garlic, thinly sliced 
\item[1] 19-ounces can cannellini beans, rinsed 
\item[1] 14.5-ounces can low-sodium chicken broth  \columnbreak
\item[1] 14.5-ounces can diced tomatoes 
\item[1] bunch kale leaves, torn into 2-inch pieces 
\item[-] kosher salt and black pepper
\end{itemize}
\end{multicols}

\end{document}