有沒有辦法在語法環境中使用數學模式表達式?

有沒有辦法在語法環境中使用數學模式表達式?

我正在嘗試使用該套件編寫 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}

在此輸入影像描述

相關內容