[Tex/LaTex] Uniformly itemize list in two columns throughout the document

itemizeliststwo-column

How can I get lists arranged in two columns throughout the document. I would like to make changes only in preamble and not in the list.

I am thinking of this structure

. First item . second item

. third item

Here is MWE.

\documentclass{article}
\usepackage{multicol}
\begin{document}
    \begin{multicols}{2}
        \begin{itemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\item 7
\item 8
\item 9
\item 10
\item 11
\item 12
\item 13
\end{itemize}
    \end{multicols}
\end{document}

Best Answer

Put these lines in your preamble:

\usepackage{etoolbox}
\AtBeginEnvironment{itemize}{\begin{multicols}{2}}    
\AtEndEnvironment{itemize}{\end{multicols}}            

This will change all itemize environments in to two columns (assuming that is what you want).

\documentclass{article}
\usepackage{etoolbox}
\AtBeginEnvironment{itemize}{\begin{multicols}{2}}    %%% this line
\AtEndEnvironment{itemize}{\end{multicols}}            %%% and this one
\usepackage{multicol}
\begin{document}        
\begin{itemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\item 7
\item 8
\item 9
\item 10
\item 11
\item 12
\item 13
\end{itemize}
\end{document}

enter image description here

As egreg notes, you can use a newenvironment so that normal itemize is still available:

\documentclass{article}
\usepackage{multicol}
\newenvironment{myitemize}{%
\begin{itemize}
\begin{multicols}{2}
}{%
\end{multicols}
\end{itemize}
}
\begin{document}
\begin{myitemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\item 7
\item 8
\item 9
\item 10
\item 11
\item 12
\item 13
\end{myitemize}
Some other text.
\begin{itemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\item 7
\item 8
\item 9
\item 10
\item 11
\item 12
\item 13
\end{itemize}
\end{document}

enter image description here

With enumitem too, you can define a new environment:

\documentclass{article}
\usepackage{enumitem}
\usepackage{multicol}
\newlist{myitemize}{itemize}{1}
\setlist[myitemize]{label=\textbullet,before=\raggedcolumns\begin{multicols}{2},
after=\end{multicols}
}
\begin{document}
\begin{myitemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\item 7
\item 8
\item 9
\item 10
\item 11
\item 12
\item 13
\end{myitemize}
\end{document}