ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Length range control of the last line of paragraph
Date: Tue, 22 Mar 2016 22:46:32 +0100	[thread overview]
Message-ID: <56F1BD38.2000504@wxs.nl> (raw)
In-Reply-To: <01b401d1847d$798a9a00$6c9fce00$@tosovsky@email.cz>

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
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________

  parent reply	other threads:[~2016-03-22 21:46 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <016501d183a5$d3c48810$7b4d9830$@tosovsky@email.cz>
2016-03-21 23:51 ` Rogers, Michael K
2016-03-22 20:29   ` Jan Tosovsky
     [not found]   ` <01b001d18479$93c9f310$bb5dd930$@tosovsky@email.cz>
2016-03-22 20:44     ` Hans Hagen
2016-03-22 10:16 ` Hans Hagen
2016-03-22 20:57   ` Jan Tosovsky
     [not found]   ` <01b401d1847d$798a9a00$6c9fce00$@tosovsky@email.cz>
2016-03-22 21:46     ` Hans Hagen [this message]
2016-03-23 19:14       ` Jan Tosovsky
     [not found]       ` <018a01d18538$3f17eb50$bd47c1f0$@tosovsky@email.cz>
2016-03-23 23:21         ` Hans Hagen
2016-03-24 19:36           ` Jan Tosovsky
     [not found]           ` <02cd01d18604$82a81620$87f84260$@tosovsky@email.cz>
2016-03-24 20:54             ` Hans Hagen
2016-03-25 13:40               ` Jan Tosovsky
     [not found]               ` <008a01d1869b$e0b90610$a22b1230$@tosovsky@email.cz>
2016-03-25 14:09                 ` Hans Hagen
2016-03-25 21:57                   ` Jan Tosovsky
     [not found]                   ` <00dd01d186e1$656dbff0$30493fd0$@tosovsky@email.cz>
2016-03-26 10:48                     ` Hans Hagen
2016-03-26 13:31                       ` Jan Tosovsky
     [not found]                       ` <003f01d18763$c77c4fe0$5674efa0$@tosovsky@email.cz>
2016-03-26 22:05                         ` Hans Hagen
2016-03-30 19:23                       ` Jan Tosovsky
     [not found]                       ` <017b01d18ab9$99df34e0$cd9d9ea0$@tosovsky@email.cz>
2016-03-30 22:11                         ` Hans Hagen
2016-03-25 16:56                 ` Hans Hagen
2016-03-22 10:54 ` Hans Hagen
2016-03-22 13:31   ` Hans Hagen
2016-03-23 19:47     ` Jan Tosovsky
2016-03-24  2:10     ` Aditya Mahajan
2016-03-24  9:47       ` Hans Hagen
2016-03-23 19:14   ` Jan Tosovsky
     [not found]   ` <018901d18538$3ef34c50$bcd9e4f0$@tosovsky@email.cz>
2016-03-23 23:22     ` Hans Hagen
2016-03-21 19:14 Jan Tosovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56F1BD38.2000504@wxs.nl \
    --to=pragma@wxs.nl \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).