以下代码满足我的需要:
\hbox to \textwidth{\hfill
\vbox{
\hbox{some text}
\hbox{some other text}
} %vbox
} %hbox
这里重要的是:
- 不换行
- 行按其左侧对齐
- 整个块被推到右边距
- 块的宽度未指定,是根据块中最长的行计算的
我可以使用更简单或更高级的工具来实现相同的效果吗?特别是,我不喜欢将块中的每一行都包装在 中\hbox
。
答案1
tabular
解决方案:
您还可以使用tabular
如下所示的简单环境。这将产生:
笔记:
用于
@{}
消除右侧的列间距,以确保内容与边距齐平,并消除左侧的列间距,以便为文本提供尽可能多的空间。该
showframe
包用于显示文本右对齐。
代码:
\documentclass{article}
\usepackage{showframe}
\begin{document}
\hfill
\begin{tabular}{l@{}}
some text\\
some other text
\end{tabular}
\end{document}
varwidth
解决方案:
或者,您可以使用varwidth
环境。这会产生与上面相同的结果。
笔记:
- 即使
varwidth
环境需要长度,它也会采用所包含内容的自然宽度。
代码:
\documentclass{article}
\usepackage{showframe}
\usepackage{varwidth}
\begin{document}
\hfill
\begin{varwidth}{\linewidth}
some text\\
some other text
\end{varwidth}
\end{document}
答案2
引入 ConTeXt 解决方案:
\starttext
\rightaligned{%
\framed [align=right, frame=off]{%
some text\\
some other text}}
\stoptext
该\framed
命令负责处理两条排版线及其\rightaligned
水平位置。