Existe uma maneira de usar expressões em modo matemático dentro do ambiente gramatical?

Existe uma maneira de usar expressões em modo matemático dentro do ambiente gramatical?

Estou tentando escrever a gramática de FOL em BNF usando o syntaxpacote, mas toda vez que uso um símbolo lógico ou um comando mathmode (ex. \neg, \land, \mathbb{}, etc.) recebo um erro. Por exemplo:

\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}

retorna o erro

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

Tentei usar $...$ e ${...}$, mas ainda recebo um erro.

Outros erros são geralmente

\< command > allowed only in math mode.

Existe uma maneira de usar o modo matemático dentro do grammarambiente?

Responder1

No grammarambiente os personagens `, <, e "ficam ativos para obter a seguinte aparência

insira a descrição da imagem aqui

Citando o syntaxmanual

Dentro de uma dessas formas abreviadas, o texto é tratado mais ou menos literalmente:

  • Quaisquer caracteres $, %, ^, &, {, }ou ~são #tratados literalmente: seus significados especiais normais são ignorados.

  • Outros caracteres especiais, com exceção de \, também são tratados literalmente: [...]

Nesse caso, a forma LaTeX de fazer matemática in-line, ou seja \(...\), , vem para resgatar.

\documentclass{article}

\usepackage{syntax}

\begin{document}

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

\end{document}

insira a descrição da imagem aqui

informação relacionada