右对齐文本,使用正常连字规则

右对齐文本,使用正常连字规则

我正在使用右对齐的迷你页面,内容也右对齐。我希望它的内容看起来像第一个迷你页面中的正常对齐内容。唯一的区别是我加下划线的最后一个单词像第二个迷你页面中一样右对齐。我要求的内容如图所示。

在此处输入图片描述

平均能量损失

\documentclass{book}

\usepackage{lipsum}

\begin{document}

\begin{flushright}

\begin{minipage}{0.65\textwidth}

\lipsum[1]

\end{minipage}

\end{flushright}

\vspace{1cm}

\begin{flushright}

\begin{minipage}{0.65\textwidth}

\begin{flushright}

\lipsum[1]

\end{flushright}

\end{minipage}

\end{flushright}

\end{document}

答案1

在框中排版文本,删除最后一行,并在删除末尾的粘连后重新插入,前面是\hfill。以下lastflushright环境的行为类似于minipage底部对齐。获得顶部或中心对齐并不困难。

\documentclass{book}

\usepackage{lipsum}

\makeatletter
\newenvironment{lastflushright}[1]
 {\leavevmode\vbox\bgroup\@tempdima=#1\relax
  \setbox\@tempboxa\vbox\bgroup\color@begingroup
    \hsize\@tempdima\textwidth\hsize\columnwidth\hsize
    \@parboxrestore
    \@minipagerestore\@setminipage}
 {\@minipagefalse\color@endgroup\egroup
  \setbox\@tempboxa=\vbox{\unvbox\@tempboxa\global\setbox1=\lastbox}
  \box\@tempboxa
  \setbox\@tempboxa=\hbox{\unhbox1\unskip\unskip}
  \nointerlineskip
  \hbox to\@tempdima{\hfill\box\@tempboxa}%
  \egroup
}
\makeatother

\begin{document}

\begin{lastflushright}{0.45\textwidth}
\lipsum[3]
\end{lastflushright}
\begin{minipage}[b]{0.45\textwidth}
\lipsum[3]
\end{minipage}
\end{document}

在此处输入图片描述

相关内容