我想使用句法和开源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}
此版本已处理lhs2TeX
并pdflatex
符合预期。