beamer 中没有 cleveref 吗?

beamer 中没有 cleveref 吗?

我正在尝试让数学投影仪演示工作,但似乎cleveref出现了问题。下面的 MWE 给出了错误

Paragraph ended before \@ynthm was complete

在的文档中cleveref,可以发现以下评论:

文档类以一种特别狡猾的方式beamer重新定义了该命令,从而破坏了该命令的可选参数。\labelcleveref

什么可选参数?这是否意味着cleverefbeamer根本不兼容?有没有什么办法可以解决这个问题?

梅威瑟:

\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}

相关内容