
Используя 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}