%3F.png)
Я хочу реализовать коды, подобные приведенным ниже:
\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}