Cómo poner un marco alrededor de la sintaxis gramatical en LaTeX

Cómo poner un marco alrededor de la sintaxis gramatical en LaTeX

¿Cómo puedo poner un marco alrededor de la sintaxis gramatical en LaTeX como la listingsque usamos frame = single? Por ejemplo, para esta gramática:

\documentclass{article}
\usepackage{syntax}

\begin{document}
\begin{grammar}

<statement> ::= <ident> `=' <expr> 
\alt `for' <ident> `=' <expr> `to' <expr> `do' <statement> 
\alt `{' <stat-list> `}' 
\alt <empty> 

<stat-list> ::= <statement> `;' <stat-list> | <statement> 

\end{grammar}
\end{document}

¡Gracias por cualquier ayuda!

Respuesta1

Una forma con framedel paquete:

\documentclass{article}
\usepackage{syntax}
\usepackage{framed}
\begin{document}
\begin{framed}
\begin{grammar}

<statement> ::= <ident> `=' <expr> 
\alt `for' <ident> `=' <expr> `to' <expr> `do' <statement> 
\alt `{' <stat-list> `}' 
\alt <empty> 

<stat-list> ::= <statement> `;' <stat-list> | <statement> 

\end{grammar}
\end{framed}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

El enfoque muy básico sin paquetes: a minipagecon a \fbox{}:

\documentclass{article}
\usepackage{syntax}
\begin{document}
\fbox{\begin{minipage}{9cm}
\begin{grammar}
<statement> ::= <ident> `=' <expr> 
\alt `for' <ident> `=' <expr> `to' <expr> `do' <statement> 
\alt `{' <stat-list> `}' 
\alt <empty> 

<stat-list> ::= <statement> `;' <stat-list> | <statement> 
\end{grammar}
\end{minipage}}
\end{document}

información relacionada