Der Listenabstand ist innerhalb und außerhalb der Miniseite unterschiedlich

Der Listenabstand ist innerhalb und außerhalb der Miniseite unterschiedlich

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 multicolsUmgebung. Bei dieser speziellen Frage jedoch bewirkt die 50:50-Aufteilung der Seitenbreite, dass multicolsder 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}

Ausgabe

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\itemsepan verschiedenen Stellen zeigt, dass \itemsepes sich nicht wirklich um die Länge handelt, die heimlich geändert wird. Ich würde lieber verstehen, was tatsächlich passiert.)

Antwort1

A minipagesetzt die Listentiefe explizit zurück, siehe latex.ltxhierzu in Zeile 4886 folgenden Code:

\let\@listdepth\@mplistdepth \@mplistdepth\z@

Wichtig ist \@mplistdepth\z@, also eine Listentiefe von Null -- Die innere enumerateUmgebung verhält sich wieder so, als wäre sie auf der ersten Ebene und verwendet den \itemsepfür diese Ebene „angemessenen“ Wert, 4.0pt plus 2.0pt minus 1.0ptin 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 \@enumdepthdann immer noch den Wert 2 hat (was die zweite Ebene ist).

Ein billiger Trick besteht jedoch darin, den \@mplistdepthZä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, @iiiminipagedie 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 \mpsavelistdepthfalsedeaktiviert werden soll.

Dies funktioniert enumeratenur für Umgebungen, da \@enumdepthes sich um handelt enumerate, nicht um itemize(der relevante Tiefenzähler ist \@itemdepthdann)

\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}

Bildbeschreibung hier eingeben

verwandte Informationen