PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unverträglichkeit von enumitem und beamer



LuPi
07-09-2012, 12:40
Weíß jemand, ob die hier (http://tex.stackexchange.com/questions/24371/does-enumitem-conflict-with-beamer-for-lists) beschriebene Unverträglichkeit von enumitem und beamer beseitigt werden soll?
Mit den mir vorliegenden Versionen (enumitem 3.5.2 und beamer 3.18) besteht das Problem noch.

u_fischer
07-09-2012, 14:49
Vergiss einfach die Idee enumitem in beamer zu benutzen. beamer hat völlig eigene Listendefinitionen um z.B. overlays zu ermöglichen und auch eigene Wege sie zu konfigurieren. enumitem zerstört das alles.

LuPi
10-09-2012, 10:57
Autsch!

Dann gleich die Folgefrage: Wie man dem folgenden Beispiel entnehmen kann,
habe ich mit meiner selbstgebauten Umgebung noch leichte Schwierigkeiten.
Genauer: Nach Punkt 1 auf der ersten Ebene darf natürlich beim nächsten
Eintrag nicht die 3 erscheinen (der Grund ist klar, da ich ständig mit Enumi
arbeite).
Außerdem hätte ich in der zweiten Ebene gerne \alph-Einträge. Wie kann
automatisch die verschiedenen Ebenen ansteuern? Ein Blick in die Quellen
(latex.ltx) hat mir leider nicht die erhoffte Erleuchtung gebracht.


\documentclass[parskip]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage{enumitem}

\makeatletter
\newcounter{Enumi}
\newenvironment{Enumerate}[1][0]{%
\begin{list}{\arabic{Enumi}.\hfill}{\usecounter{En umi}\setcounter{Enumi}{#1}%
\setlength{\rightmargin}{\z@}%
\setlength{\itemindent}{\z@}%
\settowidth{\labelwidth}{20.}%
\setlength{\itemsep}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\leftmargin}{1.25\labelwidth}%
\setlength{\labelsep}{0.25\labelwidth}}}
{\end{list}}
\makeatother

\begin{document}
Test

\begin{Enumerate}
\item Eins
\begin{Enumerate}
\item aa
\item be
\end{Enumerate}
\item Zwei
\end{Enumerate}

Test
\end{document}

u_fischer
10-09-2012, 17:33
Ein Blick in die Quellen
(latex.ltx) hat mir leider nicht die erhoffte Erleuchtung gebracht.

Naja, so lang ist die Definition von enumerate ja nun auch nicht:


\def\enumerate{%
\ifnum \@enumdepth >\thr@@\@toodeep\else
\advance\@enumdepth\@ne
\edef\@enumctr{enum\romannumeral\the\@enumdepth}%
\expandafter
\list
\csname label\@enumctr\endcsname
{\usecounter\@enumctr\def\makelabel##1{\hss\llap{# #1}}}%
\fi}

\@enumdepth ist die Tiefe, und "enum\romannumeral\the\@enumdepth" erzeugt Namen wie enumi, enumii, usw.

LuPi
11-09-2012, 07:24
Nun, das ist leider keine Frage der Länge. Mir als TeX-illiterate reichen diese
paar Zeilen schon ...

Aber mit etwas trial'n'error habe ich jetzt eine Lösung gefunden, die
zumindest auf den ersten Blick das tut, was gefordert ist. Ich hoffe nur,
dass beamer damit nicht auch wieder Schwierigkeiten hat.


\documentclass[parskip]{scrartcl}
\usepackage[ngerman]{babel}
\makeatletter
\newcounter{Enumi}
\newenvironment{Enumerate}[1][0]{%
\advance\@enumdepth\@ne
\edef\@enumctr{enum\romannumeral\the\@enumdepth}%
\expandafter
\begin{list}{\csname label\@enumctr\endcsname}{\usecounter\@enumctr\def \makelabel##1{{##1}}%
\setlength{\rightmargin}{\z@}%
\setlength{\itemindent}{\z@}%
\settowidth{\labelwidth}{99.}%
\setlength{\itemsep}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\leftmargin}{1.25\labelwidth}%
\setlength{\labelsep}{0.25\labelwidth}}}
{\end{list}}
\makeatother

\begin{document}
Test

\begin{Enumerate}
\item Eins
\begin{Enumerate}
\item aa
\item be
\end{Enumerate}
\item Zwei
\end{Enumerate}

Test
\end{document}