Как выровнять текст по правому краю в грамматической среде?

Как выровнять текст по правому краю в грамматической среде?

Используя grammarсреду пакета syntax, я не могу найти способ выровнять текст по правому краю в моем определении синтаксиса:

\documentclass{article}
\usepackage{syntax}

\begin{document}

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

\end{document}

Я бы хотел, чтобы for (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}

введите описание изображения здесь

Связанный контент