ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
Subject: Re: The whole (sub)section on a single page
Date: Tue, 15 Nov 2005 10:38:02 +0100	[thread overview]
Message-ID: <4379AC7A.1020109@wxs.nl> (raw)
In-Reply-To: <6faad9f00511150015l6c4819c9qda1afd2e33dd3ee5@mail.gmail.com>

Mojca Miklavec wrote:

>Hans Hagen wrote:
>  
>
>>Mojca Miklavec wrote:
>>    
>>
>>>Taco Hoekwater wrote:
>>>      
>>>
>>>>Mojca Miklavec wrote:
>>>>
>>>>
>>>>        
>>>>
>>>>>It doesn't need to automatically determine the subsection boundaries
>>>>>automatically (although this would be great), so I can write something
>>>>>like this:
>>>>>
>>>>>\startmaterialforonepage
>>>>>\subsection{split only if too long for one page}
>>>>>\dorecurse{10}{whatever comes here \dots }
>>>>>\stopmaterialforonepage
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>Do you want something like this?
>>>>
>>>>  \long\def\startmaterialforonepage#1\stopmaterialforonepage%
>>>>    {\setbox0\vbox{#1}\ifdim\ht0<\textheight \page\fi #1}
>>>>
>>>>
>>>>        
>>>>
>>>Thak you, Taco. Yes, this is almost exactly what I wanted to do,
>>>except that I would substitute
>>>   \ifdim\ht0<\textheight
>>>with
>>>   \ifdim\ht0<\theremainingpageheight
>>>
>>>How/where can I get \theremainingpageheight? I saw some strange
>>>"keywords" like \pagegoal, \pagetotal spread through the source, ...
>>>but I have no clue what they are for and if they have anyting to do
>>>with what I'm looking for.
>>>
>>>
>>>      
>>>
>>that's always tricky, because it's not really possible to determine the
>>rest of the available space without entering the output routing, which
>>then spoils spacing
>>
>>(there is \testpage[n] with n being a minimal number of lines, so,
>>\testpage[10] will move to the next page if there are less than 10 lines)
>>    
>>
>
>Thank you, Hans. I have to refresh my knowledge about the syntax and
>I'll try it out. Making
>    \setbox0\vbox{#1}
>and then executing the \testpage with "ceil(ht0 / lineheight)" should
>then work OK, I hope.
>  
>
even that is tricky, imagine your method (along the lines):

- \setbox0\vbox{\startitemize ... \stopitemize}
- measure and decide if \page is needed 
- \unvbox0

putting something in a box prevents for instance \blank looking back and getting the 
spacing right (context goes to a large extent to get spacing right) 

<text ... > 
<blank or interpar space and if needed depth correction>
<vbox with embedded blanks leading to too much whitespace> 
<text .... preceded by tex's auto skips that can't look into the box> 

even unvboxing does not help since esp the top of box damage has been done and is irreversible unless you do clever trickery 

officially you need something

\startboxed ... \stopboxed 

where the start/stop do some housekeeping

what you can try is to define an instance of framedtext (\startframedtext \stopframedtext) with no offsets and frame since that macro does reasonable job on spacing and still keeps things together 

Hans 




>I understand the problem of the approach that I asked for: as soon as
>someone enters a \vfill(l) or \vss, it's approximately impossible to
>determine where the text on the page ends. But in the first
>approximation I would be satisfied with the empty space that would
>remain if the document ended at that specific place.
>
>That information is also very valuable when trying to put pictures on
>slides, where picture has to be as big as possible, but still has to
>fit on the space under the title (I tuned them manually, which was OK
>for just a couple of slides).
>
>Thank you,
>    Mojca
>_______________________________________________
>ntg-context mailing list
>ntg-context@ntg.nl
>http://www.ntg.nl/mailman/listinfo/ntg-context
>  
>

  reply	other threads:[~2005-11-15  9:38 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-12 23:55 Mojca Miklavec
2005-11-13 13:58 ` Taco Hoekwater
2005-11-14 18:11   ` Mojca Miklavec
2005-11-14 19:39     ` Hans Hagen
2005-11-15  8:15       ` Mojca Miklavec
2005-11-15  9:38         ` Hans Hagen [this message]
2005-12-01  8:35       ` Christopher Creutzig
2005-12-01  9:29         ` Hans Hagen
2005-12-06 22:00           ` Christopher Creutzig

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=4379AC7A.1020109@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).