¿Cómo puedo obtener un espaciado consistente antes y después de un itemize
entorno dentro de un multicols
entorno cuando la lista está inmediatamente después o inmediatamente antes del inicio de una sección?
La lista en Foo2 es una enumitem
lista y el espacio antes y después de la lista parece coincidir con el espacio antes y después del texto en Foo1.
La lista en Foo3 es la misma enumitem
lista pero encerrada en un multicols
entorno. Hay demasiado espacio vertical antes y después de la lista de dos columnas.
La lista en Foo4 es la misma que la de Foo3 excepto que \multicolsep
está configurada en 0pt. El espacio anterior sigue siendo demasiado, pero no tan malo, y ahora hay muy poco espacio después de la lista.
¿Cómo soluciono esto para obtener un espaciado consistente?
Aquí está el código:
\documentclass{article}
\usepackage{calc}
\usepackage[vmargin=1em,hmargin=0.25in+1em,papersize={2in,2.7in}]{geometry}
\usepackage{titlesec}
\titleformat{\section}[block]{\normalfont\large\scshape}{}{0pt}{}[\titlerule]
\titlespacing*{\section}{-0.25in}{*0.25}{*0.25}[-0.25in]
\usepackage{multicol}
\usepackage{enumitem}
\SetEnumitemKey{twocol}{
before=\raggedcolumns\begin{multicols}{2},
after=\end{multicols},
}
\SetEnumitemKey{twocol0}{
before=\raggedcolumns\setlength{\multicolsep}{0pt}\begin{multicols}{2},
after=\end{multicols},
}
\setlist[itemize]{leftmargin=*,nosep,}
\begin{document}%
\section{Foo1}Aj%
\section{Foo2}\begin{itemize}\item{}Aj\end{itemize}%
\section{Foo3}\begin{itemize}[twocol,]\item{}Aj\item{}Aj\end{itemize}%
\section{Foo4}\begin{itemize}[twocol0,]\item{}Aj\item{}Aj\end{itemize}%
\section{Foo5}Aj%
\end{document}
Versiones:
multicol 2014/08/24 v1.8g multicolumn formatting (FMi)
enumitem 2011/09/28 v3.5.2 Customized lists
Respuesta1
Si sólo necesita multicolumn
tener un itemize
entorno en línea, le sugiero otro enfoque, basado en el shortlst
paquete. Lo encontrará en CTAN, pero no está en ninguna distribución por motivos de licencia.
Defino un tabitemize
entorno, para los elementos mostrados en columnas; el número de columnas se controla mediante una nc
clave (3 por defecto). Creo que el siguiente código te da lo que quieres:
\documentclass{article}
\usepackage{calc}
\usepackage[vmargin=1em,hmargin=0.25in+1em,papersize={2in,2.7in}]{geometry}
\usepackage{titlesec}
\titleformat{\section}[block]{\normalfont\large\scshape}{}{0pt}{}[\titlerule]
\titlespacing*{\section}{-0.25in}{*0.25}{*0.25}[-0.25in]
\usepackage{multicol}
\usepackage[inline]{enumitem}
\SetEnumitemKey{twocol}{
before=\raggedcolumns\begin{multicols}{2},
after=\end{multicols},
}
\SetEnumitemKey{twocol0}{
before=\raggedcolumns\setlength{\multicolsep}{0pt}\begin{multicols}{2},
after=\end{multicols},
}
\setlist[itemize]{leftmargin=*,nosep,}
\usepackage{shortlst, xkeyval}
\makeatletter
\newcounter{ncol}
\define@key{mcl}{nc}[3]{\setcounter{ncol}{#1}}%% 3 columns by default
\newenvironment{tabitemize}[1][]{%
\setkeys{mcl}{nc,#1}
\settowidth{\labelwidth}{\textbullet}
\setlength{\leftmargini}{\dimexpr\labelwidth+\labelsep\relax}%[1][3]
\setlength{\shortitemwidth}{\dimexpr\linewidth/\value{ncol}-\labelwidth-2\labelsep\relax}%
\begin{shortitemize}}%
{\end{shortitemize}
\vspace*{\dimexpr-\topsep-\partopsep\relax
}%
\begin{document}%
\section{Foo1}Aj%
\section{Foo2}\begin{itemize}\item{}Aj\end{itemize}%
\section{Foo3}\begin{tabitemize}[nc = 2]\item{}Aj\item{}Aj\end{tabitemize}%
\section{Foo4}\begin{tabitemize}[nc = 2]\item{}Aj\item{}Aj\end{tabitemize}%
\section{Foo5}Aj%
\end{document}