将一行代码推到右边距

将一行代码推到右边距

以下代码满足我的需要:

\hbox to \textwidth{\hfill
    \vbox{
        \hbox{some text}
        \hbox{some other text}
    } %vbox
} %hbox

这里重要的是:

  1. 不换行
  2. 行按其左侧对齐
  3. 整个块被推到右边距
  4. 块的宽度未指定,是根据块中最长的行计算的

我可以使用更简单或更高级的工具来实现相同的效果吗?特别是,我不喜欢将块中的每一行都包装在 中\hbox

答案1

tabular解决方案:

您还可以使用tabular如下所示的简单环境。这将产生:

enter image description here

笔记:

  • 用于@{}消除右侧的列间距,以确保内容与边距齐平,并消除左侧的列间距,以便为文本提供尽可能多的空间。

  • 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水平位置。

相关内容