我的语法又长又细。我想将其水平分隔为两列。
\newenvironment{BNF}
{\captionsetup{type=lstlisting}}
{}
\begin{BNF}
\caption{My Grammar}
\label{grammar:my-grammar}
\begin{grammar}
<f> ::= "p"
\alt "true"
\alt "false"
\alt <f> <binop> <f>
<binop> ::= "U" (strong until)
\alt "&&" (logical and)
\alt $\rightarrow$ (implication)
\alt $\leftrightarrow$ (equivalence)
\end{grammar}
\end{BNF}
我希望它是一个列表,带有一个标题。但我希望<f>
它位于第一列,并且<binop
位于第二列。这可能吗?
答案1
您可以使用以下软件包轻松完成此操作multicol
:
\documentclass{article}
\usepackage{listings,caption,syntax}
\newenvironment{BNF}
{\captionsetup{type=lstlisting}}
{}
\usepackage{multicol}
\begin{document}
\begin{BNF}
\caption{My Grammar}
\label{grammar:my-grammar}
\begin{multicols}{2}
\begin{grammar}
<f> ::= "p"
\alt "true"
\alt "false"
\alt <f> <binop> <f>
\columnbreak
<binop> ::= "U" (strong until)
\alt "&&" (logical and)
\alt $\rightarrow$ (implication)
\alt $\leftrightarrow$ (equivalence)
\end{grammar}
\end{multicols}
\end{BNF}
\end{document}