Есть ли способ использовать выражения mathmode внутри грамматической среды?

Есть ли способ использовать выражения mathmode внутри грамматической среды?

Я пытаюсь написать грамматику FOL в BNF с помощью пакета syntax, но каждый раз, когда я использую логический символ или команду mathmode (например, \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.

Есть ли способ использовать mathmode внутри 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}

введите описание изображения здесь

Связанный контент