Ich versuche, die Grammatik von FOL in BNF mithilfe des syntax
Pakets zu schreiben, aber jedes Mal, wenn ich ein logisches Symbol oder einen Mathmode-Befehl verwende (z. B. \neg, \land, \mathbb{} usw.), erhalte ich eine Fehlermeldung. Beispiel:
\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}
gibt den Fehler zurück
Missing $ inserted. \alt `\neg
Extra }, or forgotten $. \alt `\neg'
Missing $ inserted. \alt `\neg'
Missing } inserted. \alt `\neg'
Ich habe versucht, $...$ und ${...}$ zu verwenden, aber ich erhalte immer noch eine Fehlermeldung.
Andere Fehler sind in der Regel
\< command > allowed only in math mode.
Gibt es eine Möglichkeit, den Mathematikmodus innerhalb der grammar
Umgebung zu verwenden?
Antwort1
In der grammar
Umgebung sind die Zeichen `
, <
, und "
aktiv, um folgendes Erscheinungsbild zu erhalten
Zitat aus dem syntax
Handbuch
In einer dieser Kurzformen wird der Text mehr oder weniger wörtlich wiedergegeben:
Alle Zeichen
$
,%
,^
,&
,{
,}
,~
oder#
werden wörtlich behandelt: Ihre normalen Sonderbedeutungen werden ignoriert.Auch die anderen Sonderzeichen, mit Ausnahme von
\
, werden wörtlich behandelt: [...]
In diesem Fall \(...\)
kommt die LaTeX-Methode zur Erstellung von Inline-Mathematik, nämlich , zur Rettung.
\documentclass{article}
\usepackage{syntax}
\begin{document}
\begin{grammar}
<formula> ::= <formula> <connective> <formula>
\alt `\(\neg\)' <formula>
\alt <quantifier> <variable> `(' <formula> `)'
\end{grammar}
\end{document}