Я пытаюсь заставить работать презентацию math beamer, и, похоже, это cleveref
вызывает проблемы. Нижеприведенный MWE выдает ошибку
Paragraph ended before \@ynthm was complete
В документации cleveref
можно найти следующее замечание:
Класс документа
beamer
переопределяет\label
команду особенно изощренным способом, который нарушаетcleveref
необязательный аргумент этой команды.
Какой необязательный аргумент? Означает ли это, что cleveref
и beamer
просто несовместимы? Есть ли способ обойти эту проблему?
МВЭ:
\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}
решение1
cleveref
переопределено \label
, чтобы теперь принимать необязательный аргумент, который переопределяетcleveref
тип. Однако если вы не используете этот необязательный аргумент, то все в порядке.
Переключите порядок загрузки между cleveref
иntheorem
.
\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}