![如何在语法环境中右对齐文本?](https://linux22.com/image/306092/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%AF%AD%E6%B3%95%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%8F%B3%E5%AF%B9%E9%BD%90%E6%96%87%E6%9C%AC%EF%BC%9F.png)
使用包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}