有没有办法在语法环境中使用数学模式表达式?

有没有办法在语法环境中使用数学模式表达式?

我正在尝试使用该包以 BNF 格式编写 FOL 的语法syntax,但每次使用逻辑符号或数学模式命令(例如 \neg、\land、\mathbb{} 等)时,都会出现错误。例如:

\documentclass[12pt]{article} 
\usepackage{amsfonts}
\usepackage{amsmath,amsthm,amssymb}

\usepackage[mathscr]{euscript}

\usepackage{syntax}

\usepackage[margin=1in]{geometry}

    \begin{grammar}
        <formula> ::= <formula> <connective> <formula>
        \alt `\neg' <formula> 
        \alt <quantifier> <variable> `(' <formula> `)'
    \end{grammar}

返回错误

Missing $ inserted. \alt `\neg
Extra }, or forgotten $. \alt `\neg'
Missing $ inserted. \alt `\neg'
Missing } inserted. \alt `\neg'

我尝试使用 $...$ 和 ${...}$,但仍然出现错误。

其他错误通常

\< command > allowed only in math mode.

有没有办法在grammar环境中使用数学模式?

答案1

grammar环境中,角色`<"处于活动状态,以获得以下外观

在此处输入图片描述

引用syntax手册

在这些缩写形式中,文本或多或少被逐字处理:

  • 任何$%^&{或字符}都按字面意思处理:它们的正常特殊含义将被忽略~#

  • 除 之外的其他特殊字符\也按字面意思处理:[...]

在这种情况下,LaTeX 的内联数学运算方式,即\(...\),可以解决问题。

\documentclass{article}

\usepackage{syntax}

\begin{document}

\begin{grammar}
    <formula> ::= <formula> <connective> <formula>
    \alt `\(\neg\)' <formula> 
    \alt <quantifier> <variable> `(' <formula> `)'
\end{grammar}

\end{document}

在此处输入图片描述

相关内容