Ich bereite eine Prüfung vor und möchte eine Abbildung neben einer Multiple-Choice-Aufgabe. Normalerweise platziere ich zu diesem Zweck die Frage und/oder die Auswahlmöglichkeiten in einer multicols
Umgebung. Bei dieser speziellen Frage jedoch bewirkt die 50:50-Aufteilung der Seitenbreite, dass multicols
der Text jeder Option umbrochen wird, während das Bild relativ schmal ist.
Ich dachte, ich käme an mein Ziel, wenn ich die Auswahlmöglichkeiten in ein setze minipage
, aber die Miniseite ändert den Abstand zwischen den Auswahlmöglichkeiten:
\documentclass{article} %% 'exam' class not needed for MWE
\begin{document}
\begin{enumerate}
\item
This is a standard nested enumeration.
\begin{enumerate}
\item Spacing within wrapped text and between lines of the enumeration
looks okay to me.
\item adsflkj adsflkj
\item qeworui qeworui
\item zcx,vmn zcx,vmn
\item lkjasdf lkjasdf
\item mbnnert mbnnert
\end{enumerate}
\item
The possible answers to this question are in a minipage,
to accomodate an image to the right
\begin{minipage}[t]{0.6\linewidth}
\begin{enumerate}
\item Spacing within wrapped text is the same, but the spacing
between items is different.
\item adsflkj adsflkj
\item qeworui qeworui
\item zcx,vmn zcx,vmn
\item lkjasdf lkjasdf
\item mbnnert mbnnert
\end{enumerate}
\end{minipage}
\hfill
\fbox{Tikz image here}
\end{enumerate}
\end{document}
Mich stört der Unterschied. Wie kann ich ihn beheben?
(Ich kann es mehr oder weniger weghacken, indem ich das \addtolength{\itemsep}{-1ex}
auf der Miniseite mache. Aber die Anzeige \the\itemsep
an verschiedenen Stellen zeigt, dass \itemsep
es sich nicht wirklich um die Länge handelt, die heimlich geändert wird. Ich würde lieber verstehen, was tatsächlich passiert.)
Antwort1
A minipage
setzt die Listentiefe explizit zurück, siehe latex.ltx
hierzu in Zeile 4886 folgenden Code:
\let\@listdepth\@mplistdepth \@mplistdepth\z@
Wichtig ist \@mplistdepth\z@
, also eine Listentiefe von Null -- Die innere enumerate
Umgebung verhält sich wieder so, als wäre sie auf der ersten Ebene und verwendet den \itemsep
für diese Ebene „angemessenen“ Wert, 4.0pt plus 2.0pt minus 1.0pt
in diesem Fall . (Dasselbe gilt für itemize
). Die anderen Abstände werden dann genauso verwendet, als wäre man auf der ersten Ebene einer Aufzählungs-/Auflistungsumgebung, dies ist der Grund für die Einrückung von (a)
usw., wie aus dem Bild im OP ersichtlich ist.
Interessanterweise wird das Format des Aufzählungszählers nicht zurückgesetzt, da dieser \@enumdepth
dann immer noch den Wert 2 hat (was die zweite Ebene ist).
Ein billiger Trick besteht jedoch darin, den \@mplistdepth
Zähler explizit auf zu setzen 1
, manuell.
\documentclass{article} %% 'exam' class not needed for MWE
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
\item This is a standard nested enumeration.
\begin{enumerate}
\item Spacing within wrapped text and between lines of the enumeration
looks okay to me.
\item adsflkj adsflkj
\item qeworui qeworui
\item zcx,vmn zcx,vmn
\item lkjasdf lkjasdf
\item mbnnert mbnnert
\end{enumerate}
\item The possible answers to this question are in a minipage,
to accomodate an image to the right
\begin{minipage}[t]{0.6\linewidth}
% minipage does this thing here: \let\@listdepth\@mplistdepth \@mplistdepth\z@
\makeatletter
\@mplistdepth=1
\makeatother
\begin{enumerate}
\item Spacing within wrapped text is the same, but the spacing
between items is different.
\item adsflkj adsflkj
\item qeworui qeworui
\item zcx,vmn zcx,vmn
\item lkjasdf lkjasdf
\item mbnnert mbnnert
\end{enumerate}
\end{minipage}
\hfill
\fbox{Tikz image here}
\end{enumerate}
\end{document}
Eine „bessere“ Möglichkeit besteht darin, @iiiminipage
die innerste Ebene der minipage
„Umgebung“ zu patchen und darauf aufmerksam zu machen, dass die Listentiefe abhängig von einer Bedingung beibehalten werden soll:
Geben Sie an \mpsavelistdepthtrue
, ob die Konservierung aktiviert und \mpsavelistdepthfalse
deaktiviert werden soll.
Dies funktioniert enumerate
nur für Umgebungen, da \@enumdepth
es sich um handelt enumerate
, nicht um itemize
(der relevante Tiefenzähler ist \@itemdepth
dann)
\documentclass{article} %% 'exam' class not needed for MWE
\usepackage{enumitem}
\usepackage{xpatch}
\newif\ifmpsavelistdepth
\mpsavelistdepthtrue % Enabling the list depth save for enumerate environments
\makeatletter
\xpatchcmd{\@iiiminipage}{%
\let\@listdepth\@mplistdepth \@mplistdepth\z@
}{%
\let\@listdepth\@mplistdepth
\ifmpsavelistdepth
\@mplistdepth\@enumdepth % use the current depth (stored in \@enumdepth
\fi
}{\typeout{Patching minipage succeeded}}{\typeout{Patching failed}}% End of patching
\makeatother
\begin{document}
\begin{enumerate}
\item This is a standard nested enumeration.
\begin{enumerate}
\item Spacing within wrapped text and between lines of the enumeration
looks okay to me.
\item adsflkj adsflkj
\item qeworui qeworui
\item zcx,vmn zcx,vmn
\item lkjasdf lkjasdf
\item mbnnert mbnnert
\end{enumerate}
\item The possible answers to this question are in a minipage,
to accomodate an image to the right
\begin{minipage}[t]{0.6\linewidth}
\begin{enumerate}
\item Spacing within wrapped text is the same, but the spacing
between items is different.
\item adsflkj adsflkj
\item qeworui qeworui
\item zcx,vmn zcx,vmn
\item lkjasdf lkjasdf
\item mbnnert mbnnert
\end{enumerate}
\end{minipage}
\hfill
\fbox{Tikz image here}
\end{enumerate}
\end{document}