Abstand für mehrspaltige Listen vor und nach Abschnittstiteln

Abstand für mehrspaltige Listen vor und nach Abschnittstiteln

Wie kann ich einen konsistenten Abstand vor und nach einer itemizeUmgebung innerhalb einer multicolsUmgebung erreichen, wenn die Liste unmittelbar nach oder unmittelbar vor dem Anfang eines Abschnitts steht?

Bildbeschreibung hier eingeben

Die Liste in Foo2 ist eine enumitemListe 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 enumitemListe, 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 \multicolsepsie 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 multicolumnnur eine Online- itemize Umgebung benötigen, schlage ich einen anderen Ansatz vor, der auf dem shortlstPaket basiert. Sie finden es auf CTAN, aber aus Lizenzgründen ist es in keiner Distribution enthalten.

Ich definiere eine tabitemizeUmgebung für spaltenweise angezeigte Elemente; die Anzahl der Spalten wird durch einen ncSchlü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} 

Bildbeschreibung hier eingeben

verwandte Informationen