答案1
我不确定你想达到什么目的,但这是一个尝试。
“奇怪的段落” 在合适的环境中排版,并在您希望出现空间的地方键入\spacehere
。
段落排版一次,最后一行根据行宽进行测量,此时\spacehere
只是一个无操作。然后我们重新定义它以发出适当的间距命令,并将段落重新排版\parfillskip
为零。
\documentclass{article}
\usepackage{environ}
\makeatletter
\NewEnviron{strangepar}{%
\def\spacehere{\@bsphack\@esphack}%
\setbox\z@=\vbox{\BODY\par\global\setbox\@ne\lastbox}%
\setbox\z@=\hbox{\unhbox\@ne}%
\strangeparfill=\dimexpr\linewidth-\wd\z@\relax
\def\spacehere{\@bsphack\hspace*{\strangeparfill}\@esphack}%
\par\BODY\parfillskip=0pt\par
}
\newlength\strangeparfill
\makeatother
\begin{document}
Nulla malesuada porttitor diam. Donec felis erat, congue non, volutpat at,
tincidunt tristique, libero. Vivamus viverra fermentum felis. Donec nonummy
pellentesque ante. Phasellus adipiscing semper elit. Proin fermentum massa
ac quam. Sed diam turpis, molestie vitae, placerat a, molestie nec, leo.
Maecenas lacinia. Nam ipsum ligula, eleifend at, accumsan nec, suscipit a,
ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend consequat lorem.
Sed lacinia nulla vitae enim. Pellentesque tincidunt purus vel magna.
Integer non enim. Praesent euismod nunc eu purus. Donec bibendum quam in
tellus. Nullam cursus pulvinar lectus. Donec et mi. Nam vulputate metus eu
enim. Vestibulum pellentesque felis eu massa.
\begin{strangepar}
Nulla malesuada porttitor diam. Donec felis erat, congue non, volutpat at,
tincidunt tristique, libero. Vivamus viverra fermentum felis. Donec nonummy
pellentesque ante. Phasellus adipiscing semper elit. Proin fermentum massa
ac quam. Sed diam turpis, molestie vitae, placerat a, molestie nec, leo.
Maecenas lacinia. \spacehere Nam ipsum ligula, eleifend at, accumsan nec, suscipit a,
ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend consequat lorem.
Sed lacinia nulla vitae enim. Pellentesque tincidunt purus vel magna.
Integer non enim. Praesent euismod nunc eu purus. Donec bibendum quam in
tellus. Nullam cursus pulvinar lectus. Donec et mi. Nam vulputate metus eu
enim. Vestibulum pellentesque felis eu massa.
\end{strangepar}
\end{document}