Estoy intentando escribir la gramática de FOL en BNF usando el syntax
paquete, pero cada vez que uso un símbolo lógico o un comando de modo matemático (por ejemplo, \neg, \land, \mathbb{}, etc.) aparece un error. Por ejemplo:
\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}
devuelve el error
Missing $ inserted. \alt `\neg
Extra }, or forgotten $. \alt `\neg'
Missing $ inserted. \alt `\neg'
Missing } inserted. \alt `\neg'
Intenté usar $...$ y ${...}$, pero sigo recibiendo un error.
Otros errores suelen ser
\< command > allowed only in math mode.
¿Hay alguna forma de utilizar el modo matemático dentro del grammar
entorno?
Respuesta1
En el grammar
entorno los personajes `
, <
, y "
están activos para poder obtener la siguiente apariencia
Citando del syntax
manual
Dentro de una de estas formas abreviadas, el texto se trata más o menos palabra por palabra:
Cualquier carácter
$
,%
,^
,&
,{
,}
o~
se#
trata literalmente: se ignoran sus significados especiales normales.Otros caracteres especiales, a excepción de
\
, también se tratan literalmente: [...]
En este caso, la forma LaTeX de hacer matemáticas en línea, es decir \(...\)
, viene al rescate.
\documentclass{article}
\usepackage{syntax}
\begin{document}
\begin{grammar}
<formula> ::= <formula> <connective> <formula>
\alt `\(\neg\)' <formula>
\alt <quantifier> <variable> `(' <formula> `)'
\end{grammar}
\end{document}