如何在逐字环境中创建新的Beamer环境?

时间:2010-01-22 22:35:13

标签: latex beamer

我正在创建一个Beamer演示文稿,里面有很多示例LaTeX,它必须在逐字环境中进行。我已经厌倦了打字

\begin{example}
  \begin{verbatim}
  Verbatim Text
  \end{verbatim}
\end{example}

我希望创建一个新的命令或环境,为我提供简写。我也需要这个用于块和定理,因为我也经常使用它们。但是,如果我能够找到它的例子,那么转换成另一个例子应该很容易。

我无法使用\ begin {verbatim}创建新环境或命令,因为它会切断命令的其余部分。所以我切换到使用fancyvrb包,并尝试了以下内容:

\DefineVerbatimEnvironment
{MyVerbatim}{Verbatim}{}

\newcommand{\makeexample}[1]{
    \begin{example}
        \begin{MyVerbatim}
        #1

        \end{MyVerbatim}
    \end{example}
}

\makeenvironment{VerbExample}{\begin{example}
    \begin{MyVerbatim}}{\end{MyVerbatim}\end{example}}

这给了我\ makeexample {Example Text}命令和\ begin {VerbExample} ... \ end {VerbExample}环境,但它们都在编译时抛出错误。我试图使用它们的框架看起来像这样(我在框架上有[脆弱]选项,所以不是那样)。

\begin{frame}[fragile]
    \frametitle{Why Doesn't Verbatim Work?}

    \makeexample{Verbatim Text}

    \begin{VerbExample}
        Verbatim Text
    \end{VerbExample}
\end{frame}

1 个答案:

答案 0 :(得分:2)

环境定义:

\newenvironment{VerbExample}
{\example\semiverbatim}
{\endsemiverbatim\endexample}

框架定义:

\begin{frame}[fragile]
\frametitle{Title}
\begin{VerbExample}
test test test $t$ $\\omega$
test test
\end{VerbExample}
\end{frame}

逐字不能进入\newcommand。 Semiverbatim由Beamer定义,并且与之相得益彰。必须将\ { }三个字符转义为\\ \{ \}

来源:Beamer用户指南,第119-120页 http://www.ctan.org/tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf