[texhax] have a piece of thest ragged right à the end of a paragraph

Paul Isambert zappathustra at free.fr
Mon Sep 19 10:30:16 CEST 2011


Le 19/09/2011 10:14, Wilfried Kirschenmann a écrit :
> Hi,
> I would like to write a command \toRight{#1} allowing me to align a 
> piece of thext to be flushed the right at the end of a justified 
> paragraph, creating a nex line of necessary.

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

Explained in the _TeXbook_, page 106:

     If a line break occurs at the \penalty50, the \hskip2em will 
disappear and the empty
     \hbox will occur at the beginning of a line, followed by \hfil 
glue. This yields two lines
     whose badness is zero; the fi
rst of these lines is assessed a 
penalty of 50. But if no line
     break occurs at the \penalty50, there will be glue of 2 em plus 2 

fil between the review
     and the name; this yields one line of badness zero. TeX will try 
both alternatives,
     to see which leads to the fewest total demerits. The one-line 
solution will usually be
     preferred if it is feasible.

(The `review' is your paragraph and the `name' is your argument to 
\toRight.)

Best,
Paul


More information about the texhax mailing list