\hFüllung zwischen Zeilen

\hFüllung zwischen Zeilen

Im ersten Absatz des folgenden Programms dolorwird am rechten Rand gesetzt. Im zweiten passiert das nicht, vermutlich weil \hfillwir uns zu diesem Zeitpunkt noch in der ersten Zeile befinden.

\hsize 4in

lorem ipsum
lorem ipsum
lorem ip
\hfill dolor

lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ip
\hfill dolor

lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ip%
\break\null
\hfill dolor

lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
\break\null
\hfill dolor

\bye

Ausgabe

Wie kann ich sicherstellen, dass doloram rechten Rand gesetzt wird, unabhängig von der Position, an der es auftritt? Das heißt, wie kann ich die Wirkung des dritten Absatzes erzielen, aber nicht die des vierten (mit einem zusätzlichen Zeilenumbruch), wenn die Länge des Textes vor dolor geändert wird?

Antwort1

Dies ist im TeXbook gut beschrieben (suchen Sie im Index nach Bourbaki).

\def\NN#1{\leavevmode\llap{\hbox to\parindent{#1\hss}}\ignorespaces} % for reference

\def\signed#1{{\unskip\nobreak\hfil\penalty50
  \hskip2em\hbox{}\nobreak\hfil#1%
  \parfillskip=0pt \finalhyphendemerits=0 \par}}

\hsize 4in

\NN1
lorem ipsum
lorem ipsum
lorem ip
\signed{dolor}

\NN2
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ip
\signed{dolor}

\NN3
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ip%
\signed{dolor}

\NN4
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
l
\signed{dolor}

\NN5
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lo
\signed{dolor}

\bye

Bildbeschreibung hier eingeben

Antwort2

\leavevmode\penalty50\hbox{}\nobreak\hfill dolor

sollte nicht verwerfbaren Füllkleber hinzufügen, ohne einen Zeilenumbruch zu erzwingen.

verwandte Informationen