在“beamercolorbox”内使用“\State”会导致错误缺少\endcsname插入

在“beamercolorbox”内使用“\State”会导致错误缺少\endcsname插入

我的演示文稿frame中有一个。在框架内,我在 中有一个。在该算法中,我有以下内容来突出显示算法中的 区域。beameralgorithmicminipage

\documentclass[11pt]{beamer}
\usetheme{default}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{algorithm}% http://ctan.org/pkg/algorithm
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx

\begin{document}
    \maketitle

    \begin{frame}
        \frametitle{}
    \end{frame}

    \begin{frame}
        \makebox[\textwidth]{
        \begin{minipage}{0.5\textwidth}
            content
        \end{minipage}
        \begin{minipage}{0.5\textwidth}
        \begin{algorithmic}[]
            \Function{DivisibleOnce}{v, e}
            \newline
            \setbeamercolor{postit}{fg=white,bg=purple}
            \begin{beamercolorbox}[wd=0.9 \textwidth,rounded=true,shadow=true]{postit}
                \State $ s $
            \end{beamercolorbox}
            \EndFunction
        \end{algorithmic}
        \end{minipage}
        }
    \end{frame}
\end{document}

上述 Latex 在框架结束时导致错误。如果我注释掉\State $ s $

缺少插入的 \endcsname。\end{frame}

但是如果我使用\If或者\Return它有效

答案1

您应该拥有beamercolorbox之后的环境\State,而不是相反。

\documentclass[11pt]{beamer}
\usetheme{default}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{algorithm}% http://ctan.org/pkg/algorithm
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx

\begin{document}

\begin{frame}
\begin{algorithmic}
  \Function{DivisibleOnce}{v, e}
  \State
   $ s $
  \EndFunction
  \Function{DivisibleOnce}{v, e}
  \State
  \setbeamercolor{postit}{fg=white,bg=purple}%
  \begin{beamercolorbox}[wd=0.9 \textwidth,rounded=true,shadow=true]{postit}
   $ s $
  \end{beamercolorbox}
  \EndFunction
\end{algorithmic}
\end{frame}

\end{document}

在此处输入图片描述

相关内容