如何让一些文本浮动到段落第一行的右侧?

如何让一些文本浮动到段落第一行的右侧?

我想在段落的第一行放置一些右对齐的文本,并让其余文本环绕它,如下所示:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed      {right-aligned text}
do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat...

我怎样才能实现这个目标?

答案1

使用wrapfig包裹

\documentclass[12pt]{article}
\usepackage[showframe]{geometry}% http://ctan.org/pkg/geometry
\usepackage{wrapfig}% http://ctan.org/pkg/wrapfig
\usepackage{xparse}% http://ctan.org/pkg/xparse
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\NewDocumentCommand{\rtext}{O{1} O{5em} m}{%
  \begin{wrapfigure}[#1]{r}[0pt]{#2}%
    \begin{minipage}{#2}\raggedleft#3\end{minipage}%
  \end{wrapfigure}%
}
\rtext[5][50pt]{Here is some right-aligned text}%
\lipsum[1]
\end{document}​

在此处输入图片描述

上述代码规定\rtext[<lines>][<width>]{<stuff>},排版<stuff>右对齐(实际上是\raggedleft),<lines>行宽为<width>(默认为1行宽为5em,但可以更改)。<lines><width>都是可选参数。

geometryshowframe与显示文本对齐方式的选项一起使用。lipsum提供虚拟文本,同时xparse提供了一种指定混合可选/强制参数(和默认值)的简单方法。

答案2

另请参阅在段落第一行的文本片段周围浮动右对齐文本enumerate。Wrapfig与配合使用效果不佳,itemize\parshape双向布局(例如\luatextextdir\beginR)都可以处理这种情况。

相关内容