如何在语法环境中右对齐文本?

如何在语法环境中右对齐文本?

使用包grammar的环境syntax,我无法找到在语法定义中右对齐文本的方法:

\documentclass{article}
\usepackage{syntax}

\begin{document}

\begin{grammar}
<expression> ::=
\alt <expression> $+$ <expression>         (addition)
\alt <expression> $*$ <expression>   (multiplication)
\end{grammar}

\end{document}

(addition)我希望(multiplication)在输出中右对齐。我能找到的最接近的答案是: 具有编号规则的语法

但我无法理解解决方案,也无法重现这种情况。看来这部分几乎可以解决问题:

\hskip\dimexpr\linewidth-\labelwidth+\grammarindent-\labelsep

但我找不到获得正确价值的方法......

答案1

一个简单的\hfill方法似乎可以完成工作(showframe仅用于视觉指导):

\documentclass{article}
\usepackage{syntax}
\usepackage{showframe}

\begin{document}

\begin{grammar}
<expression> ::= <ident>
\alt <expression> $+$ <expression>         \hfill (addition)
\alt <expression> $*$ <expression>   \hfill  (multiplication)
\end{grammar}

\end{document}

在此处输入图片描述

相关内容