Kein Cleveref im Beamer?

Kein Cleveref im Beamer?

Ich versuche, eine Mathe-Beamer-Präsentation zum Laufen zu bringen, und es scheint, dass das cleverefProbleme verursacht. Das folgende MWE gibt den Fehler aus

Paragraph ended before \@ynthm was complete

In der Dokumentation von clevereffindet man folgenden Hinweis:

Die beamerDokumentklasse definiert den \labelBefehl auf eine besonders hinterhältige Art und Weise neu, wodurch cleverefdas optionale Argument für diesen Befehl beschädigt wird.

Welches optionale Argument? Bedeutet das, dass cleverefund beamereinfach inkompatibel sind? Gibt es eine Möglichkeit, dieses Problem zu umgehen?

MWE:

\documentclass{beamer}

\makeatletter
\let\th@plain\relax
\makeatother

\usepackage{ntheorem}
\usepackage{cleveref}

\theoremstyle{plain}

\newtheorem{MainThm}{Main Theorem}

\crefname{MainThm}{Main Theorem}{Main Theorems}

\mode<presentation>{\usetheme{Frankfurt}}

\begin{document}
\begin{frame}{Test}
    \begin{MainThm}
        blabla
    \end{MainThm}
\end{frame}
\end{document}

Antwort1

cleverefneu definiert, \labelum nun ein optionales Argument anzunehmen, das dascleveref Typ. Wenn Sie dieses optionale Argument jedoch nicht verwenden, ist alles in Ordnung.

Wechseln Sie die Ladereihenfolge zwischen cleverefundntheorem.

Bildbeschreibung hier eingeben

\documentclass{beamer}

\let\Tiny\tiny% http://tex.stackexchange.com/q/58087/5764
\makeatletter
\let\th@plain\relax
\makeatother

\usepackage{cleveref}
\usepackage{ntheorem}

\theoremstyle{plain}
\newtheorem{MainThm}{Main Theorem}
\crefname{MainThm}{Main Theorem}{Main Theorems}

\mode<presentation>{\usetheme{Frankfurt}}

\begin{document}

\begin{frame}{Test}
  See~\cref{thm:mytheorem}.
  \begin{MainThm}\label{thm:mytheorem}
    blabla
  \end{MainThm}
\end{frame}

\end{document}

verwandte Informationen