On 2016-03-26 Hans Hagen wrote:
On 3/25/2016 10:57 PM, Jan Tosovsky wrote:
On 2016-03-25 Hans Hagen wrote:
On 3/25/2016 2:40 PM, Jan Tosovsky wrote:
On 2016-03-24 Hans Hagen wrote:
On 3/24/2016 8:36 PM, Jan Tosovsky wrote:
We basically need: <text><glue min-width='XX' max-width='hsize-3*indent'>
and I thought this is exactly what \parfillskip ensures \parfillskip XX plus (hsize - 3*indent)
the fil is taken into account when calculating the best break points and then the XX is fixed but plus/minus can lead to if being less or more, all relative to other fill (distributed)
so, XX plus (hsize - 3*indent) is not a fixed value, it's XX or more
So the following \parfillskip specification finally seems to be what I was looking for ...
\parfillskip \lastlinemingap plus \dimexpr\availablehsize-\lastlineminlength-\lastlinemingap\relax
\parfillskip \lastlinemingap plus 1fill
works just as well
I am getting slightly different results on several pages. The number of problematic cases is lower in my variant so I hope it makes still sense.
try \ward{}okay i.e. a short word at the end
Hmm, I indeed tested my approach with bad example. Now your previous examples make more sense to me :-)
for your case i see no solution apart from heuristic lua magic
Bad news. But I hope my parfillskip will work for majority cases and these problematic with words shorter than parindent+tolerance can be fixed afterwards by joining them with previous words using non-breaking space. I'll look into your 'crap' paragraph builder lua code if this exception could be handled programmatically without touching the source file (i.e. test for short last line and treat leading whitespace as it was '~' if necessary). Jan