我正在尝试让数学投影仪演示工作,但似乎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}