Inkonsistente Ränder bei nicht standardmäßiger Aufzählung

Inkonsistente Ränder bei nicht standardmäßiger Aufzählung

Wenn ich in Latex Beamer eine Aufzählung mit benutzerdefinierten Beschriftungen habe und beispielsweise \begin{enumerate}[a]für „a… b… c…“ oder \begin{enumerate}[i]für „i… ii… iii…“ statt „1. … 2. … 3. …“ verwende, scheint der linke Rand kleiner und damit inkonsistent mit den anderen Folien zu sein.

Beispiel:

\documentclass{beamer}
\begin{document}

\begin{frame}
    \begin{enumerate}
        \item normal margin
    \end{enumerate}
    \begin{enumerate}[i]
        \item smaller margin
    \end{enumerate}
    \begin{enumerate}[a]
        \item much smaller margin
    \end{enumerate}
    \begin{enumerate}
        \item[a] normal margin, but manual labels
    \end{enumerate}
\end{frame}

\end{document}

Bildbeschreibung hier eingeben

Wenn ich usw. verwende item[a], item[b]sind die Ränder korrekt, aber aus offensichtlichen Gründen ist dies auch nicht perfekt. Gibt es eine Möglichkeit, dies zu beheben?


Update: Die Probleme scheinen nicht klassenspezifisch zu sein beamer, sondern paketspezifisch enumerate(das von verwendet oder daraus kopiert wird beamer), da das gleiche Verhalten bei Folgendem auftritt:

\documentclass{article}
\usepackage{enumerate}

Dennoch bin ich hauptsächlich an einer Lösung interessiert, die gut mit funktioniert beamer.

Antwort1

Bildbeschreibung hier eingeben

Sie können einfach die Zeilen auskommentieren, die die Einrückung zurücksetzen

\documentclass{beamer}

\makeatletter
\def\beamer@@@enum@[#1]{% partly copied from enumerate.sty
  \@enLab{}\let\@enThe\@enQmark
  \@enloop#1\@enum@
  \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
    ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
  \def\insertenumlabel{\the\@enLab}
  \def\beamer@enumtempl{enumerate mini template}%
   \expandafter\let\csname the\@enumctr\endcsname\@enThe
%  \csname c@\@enumctr\endcsname7
%  \expandafter\settowidth
%            \csname leftmargin\romannumeral\@enumdepth\endcsname
%            {\the\@enLab\hspace{\labelsep}}%
  \beamer@enum@}

\makeatother
\begin{document}

\begin{frame}
    \begin{enumerate}
        \item normal margin
    \end{enumerate}
    \begin{enumerate}[i]
        \item smaller margin
    \end{enumerate}
    \begin{enumerate}[a]
        \item much smaller margin
    \end{enumerate}
    \begin{enumerate}
        \item[a] normal margin, but manual labels
    \end{enumerate}
\end{frame}

\end{document}

Antwort2

Um die gleichen Ränder zu erhalten wie bei Verwendung von \item[a]können Sie einfach Ihr eigenes Aufzählungselement definieren\setbeamertemplate{enumerate item}{\alph{enumi}}

\documentclass{beamer}

\begin{document}

\begin{frame}
    \begin{enumerate}
        \item normal margin
    \end{enumerate}
    \begin{enumerate}[i]
        \item smaller margin
    \end{enumerate}
    {
    \setbeamertemplate{enumerate item}{\alph{enumi}}
    \begin{enumerate}
        \item much smaller margin
    \end{enumerate}
    }
    \begin{enumerate}
        \item[a] normal margin, but manual labels
    \end{enumerate}
\end{frame}

\end{document}

Bildbeschreibung hier eingeben

Antwort3

[a.]Eine andere, eher umständliche Methode, das Problem zu lösen/umzugehen, besteht meiner Meinung nach darin, die Auffüllung direkt in den „oder“ [i.]-Parameter einzufügen .

\documentclass{beamer}
\begin{document}

\begin{frame}
    \begin{enumerate}
        \item normal margin
    \end{enumerate}
    \begin{enumerate}[~~a.]
        \item normal margin (almost)
    \end{enumerate}
\end{frame}

\end{document}

Natürlich werden die verschiedenen Aufzählungen dadurch nicht perfekt ausgerichtet, und es kann auch von der verwendeten Schriftart abhängen. In einem gedruckten Dokument würde ich dies wahrscheinlich nicht verwenden, aber für einige Folien könnte es gut genug sein. Dasselbe funktioniert auch (mit etwas mehr Präzision) mit z. B. [\hspace{8pt}a.].

verwandte Informationen