tabular 和 flushleft 环境之间的行为差​​异

tabular 和 flushleft 环境之间的行为差​​异

为了回应我的先前的问题已提供以下工作代码:

\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会创建一个段落,其中的行与左边距对齐,这正是您所得到的:

enter image description here

TeX 在盒子中工作,并且\hfill没有盒子可以应用填充,因此它会被推到右边。

如果你将flushleft环境置于其中,varwidth那么你将获得所需的结果:

enter image description here

\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}

相关内容