我正在嘗試使用該套件編寫 BNF 中的 FOL 語法syntax
,但每次我使用邏輯符號或數學模式命令(例如 \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.
有沒有辦法在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}