右侧换行不规则,最后一行最满,第一行最空

右侧换行不规则,最后一行最满,第一行最空

使用\raggedrightrough Speaking 会导致换行,因为行中没有足够的空间来放置下一个单词。这反过来会导致除最后一行之外的所有行都几乎满了。

我想要实现相反的效果。我希望最后一行是满的,而第一行是部分空的。

在下面的例子中,我使用手动换行实现了第二个标题的这一点。

\documentclass{article}
\begin{document}

    \newcommand{\myheading}[1]{{\textbf{\raggedright #1}}\\}
\begin{minipage}{3cm}
    \myheading{This is the first heading}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.\\
    \bigskip

    \myheading{This is\\ the last heading}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.
\end{minipage}
\end{document}

例子

答案1

在此处输入图片描述

\documentclass{article}
\begin{document}

    \newcommand{\myheading}[1]{{\bfseries\raggedright\parfillskip=-\rightskip #1\par}}% why not define as a heading?
\begin{minipage}{3cm}
    \myheading{This is the first heading}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.
\end{minipage}
\end{document}

上述代码确保最后一行没有添加拉伸粘连,因此它总是完全对齐的。这可能不是所有情况下都需要的,特别是如果段落是单行,您可能需要左对齐设置,并且如果最后一行很短,您可能希望它是参差不齐的,而不是过度拉伸以对齐。在这些情况下,您可以在\hspace*{\fill}文本末尾添加,但下面是一个更复杂的版本,但将标题设置在框中,以便它可以删除段落的最后一行,并且如果段落只有一行,或者最后一行的自然长度小于线宽的 80%,那么最后一行将设置为其自然宽度,左对齐,并丢弃对齐的最后一行。

\documentclass{article}
\begin{document}

    \newcommand{\myheading}[1]{%
\xdef\tmpdepth{\prevdepth\the\prevdepth}%
\setbox0\vbox{{%
\tmpdepth
\bfseries\raggedright\parfillskip=-\rightskip #1\par
\xdef\tmpdepth{\prevdepth\the\prevdepth}%
\setbox0\lastbox
\setbox2\hbox{\unhcopy0}%
\nointerlineskip
\ifnum\prevgraf=1 \box2 \else
\ifdim\wd2<.8\wd0 \box2 \else
\box0
\fi\fi
}}%
\unvbox0
\tmpdepth
}% why not define as a heading?
\begin{minipage}{3cm}
    \myheading{This igs}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit,


    \myheading{This is longer igs}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit,


    \myheading{This is much longer and covers several lines igs}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit,

    \myheading{This is much much longer and covers several lines igs}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit,

    \myheading{This is much much longer ad covers sevezzzzzl lines gs}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit,

\end{minipage}
\end{document}

在此处输入图片描述

相关内容