Estou tentando escrever a gramática de FOL em BNF usando o syntax
pacote, 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 grammar
ambiente?
Responder1
No grammar
ambiente os personagens `
, <
, e "
ficam ativos para obter a seguinte aparência
Citando o syntax
manual
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}