ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Rik Kabel <context@rik.users.panix.com>
To: ntg-context@ntg.nl
Subject: Re: Margin heading problem, was Re:  sections
Date: Thu, 05 Jun 2014 17:41:50 -0400	[thread overview]
Message-ID: <5390E41E.2020703@rik.users.panix.com> (raw)
In-Reply-To: <538D05B6.5070907@rik.users.panix.com>

On 2014-06-02 19:16, Rik Kabel wrote:
> On 2014-06-02 04:09, Hans Hagen wrote:
>> On 6/2/2014 3:44 AM, Rik Kabel wrote:
>>> On 2014-06-01 12:52, Hans Hagen wrote:
>>>> On 6/1/2014 5:40 PM, Rik wrote:
>>>>
>>>>> Is this also the cause of problems I noted with heading placed into
>>>>> the
>>>>> margin, as in the example below?
>>>>
>>>> no, unrelated, try this:
>>>>
>>>> \setuphead
>>>>   [section]
>>>>   [after={\strut\blank[-2*line,samepage,disable]},
>>>>    command=\SectionCommand,
>>>>    distance=0pt]
>>>>
>>>> \define[2]\SectionCommand{\inleft{XXXXXX}}
>>>
>>> That was fine until it ran into \setupwhitespace with a non-zero value.
>>> Fiddling with the after key \blank does not appear to help.
>>>
>>>     \define[2]\MarginHead{\inmargin{#1\\#2}}
>>>     \setuphead    [section]
>>>                    [command=\MarginHead,
>>>                     distance=0pt,
>>> after={\strut\blank[-2*line,samepage,disable]}]
>>>     %% With no \setupwhitespace, or any \setupwhitespace setting that
>>>     %%   results in zero interparagraph whitespace, all is well.
>>>     %setupwhitespace      [none]%    okay
>>>     %setupwhitespace      [fix]%     okay
>>>     %% With non-zero interparagraph whitespace, the heading separates
>>>     %%   from the text
>>>     \setupwhitespace      [line]%    bad
>>>     \starttext
>>>     \startchapter[title={Weisman}]
>>>       \input weisman\par
>>>       \input weisman
>>>     \startsection[title={Thuan}]
>>>       \input thuan\par
>>>       \input thuan
>>>     \stopsection
>>>     \stopchapter
>>>     \stoptext
>>
>> you can always skip back whitespace or add 'nowhite'
>
> Well, nowhite is a start, but the solution is still a way off.
> Meanwhile, the following works for non-grid layouts with reasonable
> values for \setupwhitespace, although perhaps somebody can come up with
> a more eloquent way to write it:
>
>     \newdimen\SectionHeadSkip
>     \SectionHeadSkip\dimexpr-2\lineheight-\parskip\relax
>     \setuphead
>        [section]
>        [command=\SectionCommand,
>         distance=0pt,
>         after={\strut\blank[\the\SectionHeadSkip,samepage,disable,nowhite]},
>        ]
>       \define[2]\SectionCommand
>         {\inmargin{#1 – #2}}
>

A better formulation (better because it preserves any stretch that might 
defined by \setupwhitespace):

	\setupwhitespace [big]
	\newdimen\Parskip
	\Parskip\dimexpr-\parskip\relax
	\setuphead
	  [section]
	  [command=\SectionCommand,
	   distance=0pt,
	   after={\strut\blank[\the\Parskip,-2*line,
				samepage,disable,nowhite]},
   ]
	\define[2]\SectionCommand
	  {\inmargin{#1 – #2}}

As with the previous, \Parskip has to be redefined if \setupwhitespace 
changes, so it is probably best left until after \starttext, when the 
body font is established.

> When enabling grid layouts, the number of lines needs to be adjusted.

No, it is not stable on grid layouts. Sections that have a figure placed 
as the first thing will be a line off.

>
> Floats that appear as the first thing after a heading may present
> problems, especially with larger values for \setupwhitespace. (The
> default, with no location= specified, is pretty good, but when
> location={left,force} or such, there is often an unwanted offset from
> the header. and page breaks still appear between the heading and figure
> at times, despite the samepage setting for \blank.)
>
> So, this is quite fragile. It requires careful checking of every
> heading, and manual tuning when one breaks. Not a desirable solution,
> but at least it is possible.

Still fragile.

-- 
Rik Kabel

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


      reply	other threads:[~2014-06-05 21:41 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-02  1:44 Rik Kabel
2014-06-02  8:09 ` Hans Hagen
2014-06-02 23:16   ` Rik Kabel
2014-06-05 21:41     ` Rik Kabel [this message]

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=5390E41E.2020703@rik.users.panix.com \
    --to=context@rik.users.panix.com \
    --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).