为了回应我的先前的问题已提供以下工作代码:
\documentclass{article}
\usepackage{showframe}
\begin{document}
\hfill
\begin{tabular}{l@{}}
some text\\
some other text
\end{tabular}
\end{document}
我最初的尝试是类似的,但是使用环境flushleft
而不是tabular
。
\documentclass{article}
\usepackage{showframe}
\begin{document}
\hfill
\begin{flushleft}
some text\\
some other text
\end{flushleft}
\end{document}
两种方法的区别在于,前者中\hfill
环境导致文本粘在页面的右侧。后者中文本仍然在左侧。
所以,我想知道tabular
和之间flushleft
(我猜,它们的实现之间)的根本区别导致了这种行为的差异。
答案1
环境\flushleft
会创建一个段落,其中的行与左边距对齐,这正是您所得到的:
TeX 在盒子中工作,并且\hfill
没有盒子可以应用填充,因此它会被推到右边。
如果你将flushleft
环境置于其中,varwidth
那么你将获得所需的结果:
\documentclass{article}
\usepackage{showframe}
\usepackage{varwidth}
\begin{document}
\hfill
\begin{varwidth}{\linewidth}
\begin{flushleft}
some text\\
some other text
\end{flushleft}
\end{varwidth}
\end{document}