我怎样才能使文本充满一行(通过新命令)?

我怎样才能使文本充满一行(通过新命令)?

我想要实现的是像下面的代码:

\mbox{}I\hfill like\hfill the\hfill world\hfill because\hfill it\hfill is\hfill beautiful\mbox{}

这样我就可以得到图片中的第一行而不是第二行。

但是由于 \hfill 太多,所以很不方便。我该如何为此创建一个新命令?

答案1

尝试一下这个(在它自己的一个段落中):

\noindent\makebox[\linewidth][s]{I like the world because it is beautiful}

解释:第二个可选参数用于框内的对齐。s用于stretch

编辑:根据@egreg的建议,我们可以使用宏简化输入,并添加代码以避免出现任何 bad box消​​息。演示:

\newcommand\linefillwith[1]{\par\noindent\makebox[\linewidth][s]{\spaceskip=\fontdimen2\font plus 1fil minus \fontdimen4\font #1}}
\lipsum[11]\medskip 
\linefillwith{\color{red}I like the world because it is beautiful}

在此处输入图片描述

相关内容