在 backnaur 包中放置换行符

在 backnaur 包中放置换行符

我正在使用 backnaur 包编写我编写的简单编程语言的 BNF。但现在我有一个相当长的定义,它会产生溢出。我尝试使用添加换行符,\\但这会导致奇怪的对齐。我也试过\newline但这没有任何作用。我在包文档中找不到有关换行符的任何信息(http://ctan.sharelatex.com/tex-archive/macros/latex/contrib/backnaur/backnaur.pdf)这是我的代码:

\documentclass[dutch]{arabart}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=2.5cm,bmargin=2.5cm,lmargin=2.5cm,rmargin=2.5cm}
\usepackage{amsmath}
\usepackage{amsthm}

\makeatletter
\numberwithin{equation}{section}
\numberwithin{figure}{section}

\usepackage{backnaur}

\makeatother

\usepackage{babel}
\begin{document}
\section{Syntax van de taal}
\begin{bnf*}
\bnfprod{function\_call\_void}{
    \bnfts{setLight} \bnfpn{expression} \bnfpn{light} \bnfpn{expression} \bnfpn{expression} \bnfpn{expression}
    \bnfor
    \bnfts{drive} \bnfpn{expression} \bnfpn{direction} \bnfpn{expression}
    \bnfor
    \bnfts{closeBot} \bnfpn{expression}
    \bnfor
    \bnfts{print} \bnfpn{expression}
    \bnfor
    \bnfts{printLn} \bnfpn{expression}
    \bnfor
    \bnfts{sleep} \bnfpn{expression}
}\\
\end{bnf*}
\end{document}

这张图片显示了我的问题:

在此处输入图片描述

答案1

我认为该包没有提供换行符;您可以按如下方式添加它们。

\documentclass[draft,dutch]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{geometry}
\geometry{tmargin=2.5cm,bmargin=2.5cm,lmargin=2.5cm,rmargin=2.5cm}
\usepackage{backnaur}

\newenvironment{bnfsplit}[1][0.7\textwidth]
 {\minipage[t]{#1}$}
 {$\endminipage}

\begin{document}
\section{Syntax van de taal}
\begin{bnf*}
\bnfprod{function\_call\_void}{
  \begin{bnfsplit}
  \bnfts{setLight} \bnfpn{expression} \bnfpn{light} 
    \bnfpn{expression} \bnfpn{expression} \bnfpn{expression}
  \\ \bnfor
    \bnfts{drive} \bnfpn{expression} \bnfpn{direction} \bnfpn{expression}
  \bnfor
    \bnfts{closeBot} \bnfpn{expression}
  \\ \bnfor
    \bnfts{print} \bnfpn{expression}
  \bnfor
    \bnfts{printLn} \bnfpn{expression}
    \bnfor
    \bnfts{sleep} \bnfpn{expression}
  \end{bnfsplit}
}\\
\end{bnf*}
\end{document}

在此处输入图片描述

环境bnfsplit采用可选参数 default 0.5\textwidth;使用以下命令手动调整它

\begin{bnfsplit}[0.7\textwidth]

管他呢。

相关内容