TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need to type Backus-Naur form in LaTeX document. I found several packages on CTAN:

  • ebnf seems to not work with TeXLive 2009
  • latex-bnf does not align the declaration, etc.
  • There is a module for ConTeXt, context-bnf

Is there a package for modern LaTeX, or should I just use hand-formatting via verbatim?

share|improve this question
Not verbatim, for goodness sake. If everything else fails, use an itemize or something like that. I hope someone comes up with a better solution. – Konrad Rudolph Oct 23 '10 at 14:27
Please note that I mentioned verbatim as last resort. Probably tabular would be closer to what I have in mind but neither of those solution is IMHO LaTeX-like (i.e. type the document and let computer to figure out how to format it). – Maciej Piechotka Oct 23 '10 at 14:35
See also tex.stackexchange.com/questions/24886/… – knut Aug 30 '12 at 20:19
I have found the syntax package very easy to use, thanks to this detailed answer. – Diomidis Spinellis May 3 '14 at 17:13
up vote 10 down vote accepted

I stumbled across the syntax-mdw package the other day. It looks like it might typeset BNFs and syntax diagrams nicely. See the documentation (PDF) to get an idea of its capabilities.

share|improve this answer
If the package's underscore hack causes problems then try \usepackage[nounderscore]{syntax}. – mpartel May 28 '12 at 14:39
I needed to use [nounderscore] otherwise I got the error ! Missing \endcsname inserted. – Flow Aug 30 '12 at 20:10

Try the bnf.tex at http://dante.ctan.org/tex-archive/macros/plain/contrib/bnf/ . It is simple enough that can form the basis of what you are looking and expand as you wish.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.