In mehreren Dokumenten muss ich eine Liste und eine Abbildung nebeneinander stellen.
Ich verwende dafür zwei Minipages-Umgebungen, aber da die Liste zu lang ist, muss ich sie aufteilen und außerhalb der minipage
Umgebung fortsetzen (mit fortlaufender Nummerierung, daher die Verwendung der Schlüsselserien des enumitem
Pakets). Aber wie wir sehen können, ist die Trennung zwischen dem ersten Element in der enumerate
Umgebung außerhalb minipage
und dem letzten Element innerhalb minipage
anders als die Trennung zwischen allen anderen Elementen.
Meine Frage lautet also: Gibt es eine Möglichkeit, eine gleichmäßige Trennung aller Elemente sicherzustellen?
Selbstverständlich bin ich für jeden Hinweis dankbar, wie dies anders und besser möglich ist.
\documentclass{article}
\usepackage{enumitem}
\setlist[enumerate,1]{leftmargin=*,label=\arabic*.}
\setlist[enumerate,2]{leftmargin=*,itemsep=.3cm,label=(\alph*)}
\begin{document}
\begin{enumerate}
\item Algum texto com referencia a uma figura.
\begin{minipage}[t]{0.55\linewidth}
Uma lista.
\begin{enumerate}[series=exercicio]
\item primeiro item
\item segundo item
\item terceiro item
\end{enumerate}
\end{minipage}\hfill
\begin{minipage}[t][2cm][c]{0.35\linewidth}
\centering
\rule{50pt}{50pt}
\end{minipage}
\begin{enumerate}[resume*=exercicio]
\item quarto item com bastante texto. mais texto e mais texto e mais
texto
\item quinto item
\end{enumerate}
\end{enumerate}
\end{document}
Antwort1
Sie können das Bild einfach überlagern und verwenden \rightskip
. Leider \hangindent
scheint das mit dem Artikel nicht zu funktionieren.
\documentclass{article}
\usepackage{mwe}
\usepackage{enumitem}
\setlist[enumerate,1]{leftmargin=*,label=\arabic*.}
\setlist[enumerate,2]{leftmargin=*,itemsep=.3cm,label=(\alph*)}
\begin{document}
\begin{enumerate}
\item Algum texto com referencia a uma figura.
Uma lista.\hfill\llap{\raisebox{-\height}[0pt][0pt]{%
\begin{minipage}[t][2cm][c]{0.3\textwidth}% \linewidth is constantly changing here
\centering
\rule{50pt}{50pt}
\end{minipage}}}
\begin{enumerate}[series=exercicio]
\par\rightskip=0.3\textwidth
\item primeiro item. Just to demonstrate the effect of \verb$\rightskip$ I am going to add more text here.
\item segundo item.
\par\rightskip=0pt
\item terceiro item.
\item quarto item com bastante texto. mais texto e mais texto e mais
texto
\item quinto item
\end{enumerate}
\end{enumerate}
\end{document}
Antwort2
Verwenden Sie das Paket wrapfig
:
\documentclass{article}
\usepackage{enumitem,wrapfig}
\usepackage{graphicx}
\begin{document}
\begin{wrapfigure}{r}{0.5\textwidth}
\begin{center}
\rule{50pt}{50pt}
\end{center}
\end{wrapfigure}
Algúm texto que não é parte de uma lista.
\begin{enumerate}
\item Algum texto com referencia a uma figura.
Uma lista.
\begin{enumerate}
\item primeiro item
\item segundo item
\item terceiro item
\item quarto item com bastante texto. mais texto e mais texto e mais texto
\item quinto item
\end{enumerate}
\end{enumerate}
\end{document}
Derwrapfig
Dokumentationbeginnt mit dieser Warnung:
Sie dürfen
wrapfigure
in keiner Listenumgebung oder unmittelbar davor oder danach ein a angeben. Es ist in Ordnung, einer Liste zu folgen, wenn\par
dazwischen eine Leerzeile ( ) steht.
Aus diesem Grund habe ich vor der Liste eine Textzeile hinzugefügt.
Ich schätze, Sie können ein wenig spielen, damit die Figur tatsächlich neben Ihren Listen angezeigt wird, aber die Listen können nicht die ersten oder einzigen Dinge sein, die die Figur umgeben.
Antwort3
Beim Layout von Text/Feldern wird ein Mindestabstand von \baselineskip
zwischen zwei aufeinanderfolgenden Grundlinien oder \lineskip
zwischen der unteren und oberen Begrenzung zweier Felder (je nachdem, welcher Wert größer ist) eingehalten.
Eine Möglichkeit, einen relativ konstanten Abstand zu erreichen, besteht darin, die Grundlinie der ersten Miniseite unten und die Grundlinie der zweiten Miniseite oben zu platzieren.
Eine andere Möglichkeit besteht darin, jede Miniseite mit einem \strut zu beginnen und zu beenden.
Im Fall von enumitem erzeugt das Hinzufügen von \strut
oder \null
viel zu viel Platz zwischen den beiden Miniseiten. Stattdessen müssen Sie nur etwa 12pt Platz zwischen den Standard-Miniseiten hinzufügen (weniger, wenn Sie ein \strut
an das letzte anfügen \item
). Ich bin mir nicht sicher, wie enumitem genau auf diese 12pt kommt, aber das ist meine beste Vermutung.
Es ist zu beachten, dass der Text innerhalb einer Miniseite nicht gestreckt oder gestaucht wird, um an den unteren Rand der Seite zu passen. Sie müssen auch irgendwo ein verwenden \raggedbottom
oder einfügen \vfil
oder beide Miniseiten in ein gemeinsames einfügen \vbox
.
Demo:
\documentclass{article}
\usepackage{paracol}
\usepackage{enumitem}
\begin{document}
\begin{paracol}{2}
\noindent
\begin{minipage}{\columnwidth}
\begin{enumerate}[series=test1]
\item One
\item Two
\end{enumerate}
\end{minipage}
\begin{minipage}{\columnwidth}
\begin{enumerate}[resume*=test1]
\item Three
\item Four
\end{enumerate}
\end{minipage}
\switchcolumn
\noindent
\begin{minipage}{\columnwidth}
\begin{enumerate}[series=test2]
\item One
\item Two\strut
\end{enumerate}
\end{minipage}
\vskip\partopsep\vskip\itemsep\vskip\parsep\noindent
\begin{minipage}{\columnwidth}
\begin{enumerate}[resume*=test2]
\item Three
\item Four
\end{enumerate}
\end{minipage}
\bigskip
\switchcolumn*
\noindent
\begin{minipage}{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\begin{minipage}{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\switchcolumn
\noindent
\begin{minipage}[b]{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\begin{minipage}[t]{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\bigskip
\switchcolumn*
\noindent
\begin{minipage}{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\begin{minipage}{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\switchcolumn
\noindent
\begin{minipage}{\columnwidth}
\strut
We need at least two lines here in order for this to work, so I hope that this is enough.
\strut
\end{minipage}
\begin{minipage}{\columnwidth}
\strut
We need at least two lines here in order for this to work, so I hope that this is enough.
\strut
\end{minipage}
\bigskip
\switchcolumn*
\end{paracol}
\end{document}