beamer 中的 ntheorem 有问题-命令

beamer 中的 ntheorem 有问题-命令

考虑以下(希望是)最少的代码:

\documentclass{beamer}
\PassOptionsToPackage{ngerman}{babel}
\PassOptionsToPackage{thmmarks}{ntheorem}

\makeatletter
  \let\th@plain\relax
  \let\openbox\relax
  \let\proofname\relax
  \let\proof\relax
  \let\endproof\relax
  \def\@ptsize{0}
\makeatother

\usepackage{
    amsfonts,
    amsmath,
    amssymb,
    %amsthm,
    ntheorem, %% ich MUSS ntheorem laden, da ich \newtheorem brauche
    tikz,
}

\usetheme{Frankfurt}
\useinnertheme{circles}
\usecolortheme{whale}

\begin{document}
  \begin{frame}[t]{Folie I.}
    \begin{block}{Block I}
    \begin{itemize}
    \item Hier ein \alert{Alert Befehl} --- seht ihr! Es klappt.
    \end{itemize}
    \end{block}
    \begin{block}{Block II}
    \begin{itemize}
        \item<alert@1>
            Hier ein Alert Befehl mit \alert{at-Zeichen}
                --- warum, sobald ich ntheorem lade, funktioniert es auf einmal nicht??
    \end{itemize}
    \end{block}
  \end{frame}
\end{document}

一旦我加载ntheorem类似的命令<alert@1>就会导致错误:

LaTeX Error: \begin{altenv} on input line 43 ended by \end{itemize}

则}。

我该如何规避这些?这是不可避免的吗?我确实需要ntheorem而不是amstheorem,因为我有大量形式为 的命令\newtheorem{…}

我唯一的想法是尝试找到使用<alert@>类似命令的替代方法。但我真的很想能够使用通常的 beamer 命令。

更新:我意识到,一个使用\newtheoremamsthm只是不能设置\theoremstyle等。 但我想这不是什么大问题。

答案1

你不需要该ntheorem包就可以使用\newtheorem。Beamer 将定理定制为类似积木的东西,例如

\newtheorem{observation}[theorem]{Observation}

开箱即用。

\documentclass{beamer}

\makeatletter
  \let\th@plain\relax
  \let\openbox\relax
  \let\proofname\relax
  \let\proof\relax
  \let\endproof\relax
  \def\@ptsize{0}
\makeatother

\newtheorem{observation}[theorem]{Observation}

\usetheme{Frankfurt}
\useinnertheme{circles}
\usecolortheme{whale}

\begin{document}
  \begin{frame}[t]{Folie I.}
    \begin{block}{Block I}
    \begin{itemize}
    \item Hier ein \alert{Alert Befehl} --- seht ihr! Es klappt.
    \end{itemize}
    \end{block}
    \begin{block}{Block II}
    \begin{itemize}
        \item<alert@1>
            Hier ein Alert Befehl mit \alert{at-Zeichen}
                --- warum, sobald ich ntheorem lade, funktioniert es auf einmal nicht??
    \end{itemize}
    \end{block}
    \begin{observation}
        bla bla
    \end{observation}
  \end{frame}
\end{document}

在此处输入图片描述

相关内容