帮助复制伪 BNF 代码片段

帮助复制伪 BNF 代码片段

我正在从教科书中做笔记,并试图复制下面的片段(我不关心它周围的框)。

在此处输入图片描述

我尝试使用该mdwtools软件包,但是它拒绝以下内容:

\begin{grammar}
    $B$ = t
\alt | f
\alt | $(B \cdot B)$
\end{grammar}

错误消息:

! Use of \gr@implitem doesn't match its definition.
<recently read> $

l.59     $
          B$ ::= t

大概是因为这些术语没有尖括号(没有美元符号的裸 B 也会失败)。我该如何重现该代码片段?

答案1

一个解决方法是关闭尖括号的打印,如下所示:

示例输出

\documentclass{article}

\usepackage{syntax}

\begin{document}

\begin{grammar}
  \let\syntleft\relax
  \let\syntright\relax
    <$B$> = t
    \alt  f
    \alt  $(B \cdot B)$
\end{grammar}

\end{document}

\let命令移至前导码将会影响所有grammar环境。

相关内容