mdwtools 的 BNF 语法与 beamer

mdwtools 的 BNF 语法与 beamer

当我\usepackage{syntax}beamer演示文稿中时,规则右侧的尖括号要么显示为¡¿,要么显示为宽尖括号<>,而不是左侧的细尖括号。此外,文本未显示为斜体。

\documentclass{beamer}
\usepackage{syntax}

\begin{document}

\begin{frame}
\begin{grammar}
<statement> ::= <ident>
\end{grammar}
\end{frame}

\end{document}

投影机输出错误

如果我将其更改为documentclassarticle删除frame,我会得到预期的输出:

带文章的正确输出

如何使用 beamer 获得正确的输出?我认为这与使用 和 的 beamer 覆盖语法有关<,但我在软件包的文档>中没有找到任何内容。syntax

答案1

使用fragile选项来frame

\documentclass{beamer}
\usepackage{syntax}
\begin{document}

\begin{frame}[fragile]
\begin{grammar}
<statement> ::= <ident>
\end{grammar}
\end{frame}

\end{document}

在此处输入图片描述

答案2

使用在环境savebox之外排版语法frame是可行的(并且您可以将同一个框重复用于多个框架):

\documentclass{beamer}
\usepackage{syntax}

\begin{document}

\newsavebox{\mybox}
\begin{lrbox}{\mybox}
\begin{minipage}{1.0\linewidth}
\begin{grammar}
<statement> ::= <ident>
\end{grammar}
\end{minipage}
\end{lrbox}

\begin{frame}
  \usebox{\mybox}
\end{frame}

\end{document}

具有正确渲染的完整 Beamer 幻灯片的屏幕截图

相关内容