So setzen Sie einen Rahmen um die Grammatiksyntax in LaTeX

So setzen Sie einen Rahmen um die Grammatiksyntax in LaTeX

Wie kann ich einen Rahmen um die Grammatiksyntax in LaTeX setzen, wie listingswir sie verwenden frame = single? Zum Beispiel für diese Grammatik:

\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}

Vielen Dank für jede Hilfe!

Antwort1

Ein Weg mit framedPaket:

\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}

Bildbeschreibung hier eingeben

Antwort2

Der ganz einfache Ansatz ohne Pakete: a minipagemit 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}

verwandte Informationen