Re: [NTG-context] Length range control of the last line of paragraph
On 3/22/2016 9:57 PM, Jan Tosovsky wrote:
On 2016-03-22 Hans Hagen wrote:
On 3/21/2016 8:14 PM, Jan Tosovsky wrote:
Dear All,
when paragraphs are separated by indenting the first line (instead of an empty line), these rules should be followed:
(1) the last line lenght is greater than the left indent xxxxxxxxxxxxxxxx xxxx xxxxxxxxxxxxxx xxxxxxxxxxxxxxxx
(2) the last line is shorter than block width xxxxxxxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxxxxx
you need to keep in mind that what would work out well for one specific case will not look nice in general as the last line filling is just one of the aspects ... so, your last line + following first line might look okay (according to whatever rules and criteria) but then, as you also need to increase the tolerance and enable stretch to permit that solution to be found, the rest might look like crap
I (naively) thought the last line can be somehow isolated in the engine so the parfillskip settings doesn't influence the rest (too much).
well, in order to determine what the last line is tex has to construct the paragraph so x x xxxxxxxx becoming x x xxxxxxxx would be real bad
I understand your point.
(ad 2) This can be done using \parfillskip XXpt plus 1fil (where XX is required gap)
setting the XXpt is tricky as it might lead to underful or overful cases when that amount start interfering with an optimal solution (as it's seen as acceptable overflow in some direction)
underful or overful where? in previous lines? I am quite lost here :-)
\starttext \setupalign[tolerant,stretch] \dorecurse{100}{ \hsize\dimexpr\textwidth-#1pt\relax \parfillskip -4em plus 1 fill \input tufte \page } \stoptext page 43
it's hard to envision an interface, maybe some extra key in setupalign
\setupindenting[big] \indenting[yes]
\edef\ward{\cldloadfile{ward}}
\setupalign[verytolerant,stretch]
\dorecurse{100}{ \hsize\dimexpr\textwidth-#1mm\relax \parfillskip \zeropoint plus 1fil\relax \ward \par \parfillskip \zeropoint plus \dimexpr\availablehsize- 3\parindent\relax \ward \par \startnarrower[left] \parfillskip \zeropoint plus 1fil\relax \ward \par \stopnarrower \startnarrower[left] \parfillskip \zeropoint plus \dimexpr\availablehsize-3\parindent\relax \ward \par \stopnarrower \page }
Wow, this is cool visualization!
When \zeropoint is replaced by e.g. 2em, I have what wanted originally.
Could anybody explain drawbacks of such approach? I mean especially that overful magic above. I'd like to summarize this topic on Wiki.
Jan
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 2016-03-22 Hans Hagen wrote:
On 3/22/2016 9:57 PM, Jan Tosovsky wrote:
On 2016-03-22 Hans Hagen wrote:
On 3/21/2016 8:14 PM, Jan Tosovsky wrote:
when paragraphs are separated by indenting the first line (instead of an empty line), these rules should be followed:
(2) the last line is shorter than block width xxxxxxxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxxxxx
(ad 2) This can be done using \parfillskip XXpt plus 1fil (where XX is required gap)
setting the XXpt is tricky as it might lead to underful or overful cases when that amount start interfering with an optimal solution (as it's seen as acceptable overflow in some direction)
underful or overful where? in previous lines? I am quite lost here
\starttext
\setupalign[tolerant,stretch] \dorecurse{100}{ \hsize\dimexpr\textwidth-#1pt\relax \parfillskip -4em plus 1 fill \input tufte \page }
\stoptext
page 43
In my output I can see overful of the last line on pages 38-46. How can this happen? Isn't it a clear bug? What exactly mean 'that amount start interfering with an optimal solution'? Isn't parfillskip settings taken already into an account when composing the paragraph? Huh. I am puzzled. Jan
participants (2)
-
Hans Hagen
-
Jan Tosovsky