Ich versuche, eine Mathe-Beamer-Präsentation zum Laufen zu bringen, und es scheint, dass das cleveref
Probleme verursacht. Das folgende MWE gibt den Fehler aus
Paragraph ended before \@ynthm was complete
In der Dokumentation von cleveref
findet man folgenden Hinweis:
Die
beamer
Dokumentklasse definiert den\label
Befehl auf eine besonders hinterhältige Art und Weise neu, wodurchcleveref
das optionale Argument für diesen Befehl beschädigt wird.
Welches optionale Argument? Bedeutet das, dass cleveref
und beamer
einfach 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
cleveref
neu definiert, \label
um 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 cleveref
undntheorem
.
\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}