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

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to