lhs2TeX 和语法在 字符上发生冲突

lhs2TeX 和语法在  字符上发生冲突

我想使用句法开源TeX一起,但 Syntax 在生产规则名称中的使用<>似乎与 lhs2TeX 冲突:

\documentclass{article}
\usepackage[nounderscore]{syntax}

%include lhs2TeX.fmt

\begin{document}
\begin{grammar}
<foo> ::= <bar>
\end{grammar}
\end{document}

如果我尝试排版这个:

$ lhs2TeX a.lhs -o a.tex
$ pdflatex a.tex

我明白了

! Use of \gr@implitem doesn't match its definition.
l.97 ...n{grammar}\begingroup\par\noindent\advance
                                                  \leftskip\mathindent\(

有没有办法将这两个包一起使用?

答案1

前导<字符被 lhs2TeX 解释为spec环境的简写(即,编译器不应拾取的文学 Haskell),如其使用指南第 3 章所述。我能够通过在<生成规则左侧之前添加一个前导空格来解决这个问题:

\documentclass{article}
\usepackage[nounderscore]{syntax}

%include lhs2TeX.fmt

\begin{document}
\begin{grammar}
 <foo> ::= <bar>
\end{grammar}
\end{document}

此版本已处理lhs2TeXpdflatex符合预期。

相关内容