パッケージを使用して BNF で FOL の文法を記述しようとしています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}