Wie kann ich einen konsistenten Abstand vor und nach einer itemize
Umgebung innerhalb einer multicols
Umgebung erreichen, wenn die Liste unmittelbar nach oder unmittelbar vor dem Anfang eines Abschnitts steht?
Die Liste in Foo2 ist eine enumitem
Liste und der Abstand vor und nach der Liste scheint mit dem Abstand vor und nach dem Text in Foo1 übereinzustimmen.
Die Liste in Foo3 ist dieselbe enumitem
Liste, aber in einer Umgebung eingeschlossen multicols
. Vor und nach der zweispaltigen Liste ist viel zu viel vertikaler Platz.
Die Liste in Foo4 ist dieselbe wie in Foo3, außer dass \multicolsep
sie auf 0pt eingestellt ist. Der Abstand davor ist immer noch zu groß, aber nicht so schlimm, und nach der Liste ist jetzt zu wenig Platz.
Wie behebe ich das, um einen gleichmäßigen Abstand zu erhalten?
Hier ist der Code:
\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}
Versionen:
multicol 2014/08/24 v1.8g multicolumn formatting (FMi)
enumitem 2011/09/28 v3.5.2 Customized lists
Antwort1
Wenn Sie multicolumn
nur eine Online- itemize
Umgebung benötigen, schlage ich einen anderen Ansatz vor, der auf dem shortlst
Paket basiert. Sie finden es auf CTAN, aber aus Lizenzgründen ist es in keiner Distribution enthalten.
Ich definiere eine tabitemize
Umgebung für spaltenweise angezeigte Elemente; die Anzahl der Spalten wird durch einen nc
Schlüssel gesteuert (standardmäßig 3). Ich denke, der folgende Code liefert das Gewünschte:
\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}