D.h., mehrere kleine Abschnitte sollen zusammen auf eine Seite, aber
ein längerer Abschnitt soll nicht zwischen mehreren Seiten
aufgeteilt werden, es sei denn, er ist länger als eine ganze Seite
-- dann muß er natürlich einen Seitenumbruch enthalten, soll aber
auf jeden Fall an einem Seitenanfang beginnen.
Bisher habe ich probiert:
- \clearpage zwischen Abschnitten: damit erscheinen natürlich nicht
mehrere kleine Abschnitten auf einer Seite.
- \par\penalty-9999 zwischen Abschnitten: verhindert nicht, daß
"mittelgroße" Abschnitten zwischen Seiten umgebrochen werden
- \par\penalty-10000 zwischen Abschnitten: scheint dasselbe wie
\clearpage zu machen
- Jeden Abschnitt in eine Umgebung (z.B. minipage) packen: damit
erscheinen dann zwar mehrere kleine Abschnitten auf einer Seite,
aber lange Abschnitte werden nicht umgebrochen, sondern am
Seitenende abgschnitten
Gibt es irgendeine Möglichkeit, das zu erreichen, was ich möchte?
Frank
--
Frank Heckenbach, frank@[NOSPAM.REMOVE.THIS]g-n-u.de, http://fjf.gnu.de/
PGP and GPG keys: http://fjf.gnu.de/plan
Hast Du Dir einmal angesehen, was \samepage macht?
> - \par\penalty-9999 zwischen Abschnitten: verhindert nicht, daß
> "mittelgroße" Abschnitten zwischen Seiten umgebrochen werden
>
> - \par\penalty-10000 zwischen Abschnitten: scheint dasselbe wie
> \clearpage zu machen
Das ist ein Denkfehler: Du willst ja nicht am Absatzende einen
Umbruch erzwingen, sondern ihn innerhalb des Absatzes verhindern.
Da hilft der Parameter \interlinepenalty.
Da wird bei Dir aber auf jeder Seite ein gewisser vertikaler
Leerraum zusammenkommen. Du muszt Dir noch ueberlegen, ob Du ihn
zwischen die Absatze verteilt haben moechtest (in diesem Fall hilft
es vielleicht, \parskip einen unendlischen Stretch zu geben und
auf \interlinepenalty zu verzichten), oder ob Du ihn am Seitenende
wiederfinden moechtest (\raggedbottom). Im Prinzip koenntest D ihn
auch zwischen den Zeilen verstecken (mit elastischem \baselineskip),
aber das gibt auf jeder Seite einen anderen Grauwert und kommt mir
daher ziemlich suboptimal vor. Was sagen Typographen?
--
Gernot Katzer
Alles ueber Gewuerze im Web: http://www-ang.kfunigraz.ac.at/~katzer/germ
>Ich habe einen Text, der aus vielen recht kleinen Abschnitten (je
>ca. 1/3 - 2 Seiten) besteht, und möchte ihn (mit LaTeX) so setzen,
>daß Seitenumbrüche möglichst nur zwischen Abschnitten stattfinden.
In ähnlichem Kontext wurde hier in dctt einmal der Befehl
\need vorgestellt, mit dem man vorschreibt, daß ein
Seitenumbruch erfolgt, falls nicht mehr "genügend Platz" auf
der Seite bleibt, um irgendwas Neues anzufangen.
\makeatletter
\newcommand\need[1]{\par \penalty-100 \begingroup
\dimen@\pagegoal \advance\dimen@-\pagetotal
\advance\dimen@-1.1in
\ifdim #1>\dimen@
\ifdim\dimen@>\z@ \vskip -\pagedepth plus 1fil \fi
\break
\fi \endgroup}
\makeatother
Der obligatorische Parameter von \need ist die benötigte
Länge des Seitenrestes. Unter Verwendung von \need ist es
egal, wieviele Absätze in dem "Restplatz" unterkommen
müssen. Wenn Du die Länge des "mittelgrößten" Deiner
Abschnitte kennst, könnte diese Lösung für Dich hilfreich
sein.
Anwendung:
\need{10cm}\section{Blabla}
Gruß -- Olaf Meltzer
>Der obligatorische Parameter von \need ist die benötigte
>Länge des Seitenrestes. Unter Verwendung von \need ist es
>egal, wieviele Absätze in dem "Restplatz" unterkommen
>müssen. Wenn Du die Länge des "mittelgrößten" Deiner
>Abschnitte kennst, könnte diese Lösung für Dich hilfreich
>sein.
Könnte man das nicht so anpassen, dass \need als Parameter die Höhe
verwendet, wie sie TeX für den folgenden Absatz berechnet? Denn das
tut TeX doch sowieso, bevor es über den Umbruch entscheidet, oder?
Gruß, Frank
> Frank Heckenbach wrote:
> >
> > Ich habe einen Text, der aus vielen recht kleinen Abschnitten (je
> > ca. 1/3 - 2 Seiten) besteht, und möchte ihn (mit LaTeX) so setzen,
> > daß Seitenumbrüche möglichst nur zwischen Abschnitten stattfinden.
>
> Hast Du Dir einmal angesehen, was \samepage macht?
In usrguide habe ich gelesen:
: \begin{decl}
: |\samepage|
: \end{decl}
:
: The |\samepage| command still exists but is no longer being
: maintained.
: This is because it only ever worked erratically; [...]
Gilt das, oder kann/soll man samepage doch noch verwenden?
Ich habe es jetzt mal ausprobiert (jeden Abschnitt in eine
samepage-Umgebung gepackt), aber das ändert fast gar nichts, bis auf
eine einzige Stelle -- wo sonst ein ganz kleines Stück eines
Abschnitts auf der nächsten Seite landete, wird das noch auf
derselben Seite gehalten.
> > - \par\penalty-9999 zwischen Abschnitten: verhindert nicht, daß
> > "mittelgroße" Abschnitten zwischen Seiten umgebrochen werden
> >
> > - \par\penalty-10000 zwischen Abschnitten: scheint dasselbe wie
> > \clearpage zu machen
>
> Das ist ein Denkfehler: Du willst ja nicht am Absatzende einen
> Umbruch erzwingen, sondern ihn innerhalb des Absatzes verhindern.
Es waren eher hilflose Versuche, weil mir nichts anderes eingefallen
war. ;-)
> Da hilft der Parameter \interlinepenalty.
>
> Da wird bei Dir aber auf jeder Seite ein gewisser vertikaler
> Leerraum zusammenkommen. Du muszt Dir noch ueberlegen, ob Du ihn
> zwischen die Absatze verteilt haben moechtest (in diesem Fall hilft
> es vielleicht, \parskip einen unendlischen Stretch zu geben und
> auf \interlinepenalty zu verzichten), oder ob Du ihn am Seitenende
> wiederfinden moechtest (\raggedbottom).
Ersteres wäre mir lieber. Allerdings geht es mir nicht um Absätze,
sondern Abschnitte (\section), die auch aus meherern Absätzen
bestehen können.
Ich habe jetzt mal \interlinepenalty10000 gesetzt, und dazu vor
jedem \section ein \vspace*{0cm plus \fill} eingefügt. Das alleine
bewirkt natürlich noch nicht viel (weil eben zwischen den Absätzen
innerhalb eines Abschnitts umgebrochen wird).
Wenn ich dann zusätzlich noch zwischen Absätzen innerhalb eines
Abschnitts jeweils \penalty9999 einfüge (abgesehen davon, daß mir
das recht umständlich und unschön erscheint), kommt das Ergebnis
meiner Vorstellung zwar schon näher, erreicht sie aber nicht ganz --
es scheint so, als "traut" sich TeX nicht, zu große Abstände
zwischen den Abschnitten zu lassen, wenn es nötig wäre (obwohl
\vspace*{0cm plus \fill} doch genau dies bewirken sollte, oder?).
Wenn ich stattdessen \penalty10000 verwende, werden lange Abschnitte
wiederum gar nicht umgebrochen, sondern abgseschnitten (was auch
irgendwie logisch ist).
> Im Prinzip koenntest D ihn
> auch zwischen den Zeilen verstecken (mit elastischem \baselineskip),
> aber das gibt auf jeder Seite einen anderen Grauwert und kommt mir
> daher ziemlich suboptimal vor.
Mir auch -- im Extremfall könnte ein fünfzeiliger Abschnitt eine
ganze Seite belegen, wenn davor und danach lange Abschnitte sind,
und fünf Zeilen über eine Seite zu verteilen, wäre sicher keine gute
Idee. ;-)
Frank
--
Frank Heckenbach, frank@[NOSPAM.REMOVE.THIS]g-n-u.de, http://fjf.gnu.de/
PGP and GPG keys: http://fjf.gnu.de/plan
Pascal code, BP CRT bugfix: http://fjf.gnu.de/programs.html
Free GNU Pascal Compiler: http://home.pages.de/~GNU-Pascal/
[...]
>Könnte man das nicht so anpassen, dass \need als Parameter die Höhe
>verwendet, wie sie TeX für den folgenden Absatz berechnet? Denn das
>tut TeX doch sowieso, bevor es über den Umbruch entscheidet, oder?
Ging es Dir nicht ggf. um mehrere Absätze? Du müßtest den
kompletten Folgeabschnitt zunächst in eine savebox packen
und deren Höhe messen. Erscheint mir aber *sehr*
umständlich. Das Prinzip wurde hier erst vor kurzem
erörtert.
Mir kam die Lösung mit \need sehr gelegen, als ich bei einem
Briefband erreichen wollte, daß von jedem Brief außer dem
Briefkopf und der Anrede noch mindestens zwei Zeilen Text
Platz auf derselben Seite fanden. Ich hab dazu \need mit
einer passenden Längenangabe in meinen Befehl zur
Briefkopf-Formatierung eingebaut.
Der \need-Befehl stammt aber nicht von mir. Vielleicht
meldet sich der Urheber -- war es nicht Andreas Matthias? --
nochmal zu Wort.
Gruß -- Olaf Meltzer
> Frank Fuerst <ffr...@rz.uni-potsdam.de> schrieb:
>
> [...]
> >Könnte man das nicht so anpassen, dass \need als Parameter die Höhe
> >verwendet, wie sie TeX für den folgenden Absatz berechnet? Denn das
> >tut TeX doch sowieso, bevor es über den Umbruch entscheidet, oder?
>
> Ging es Dir nicht ggf. um mehrere Absätze?
(Nicht ihm, sondern mir, ein anderer Frank. ;-)
> Du müßtest den
> kompletten Folgeabschnitt zunächst in eine savebox packen
> und deren Höhe messen. Erscheint mir aber *sehr*
> umständlich. Das Prinzip wurde hier erst vor kurzem
> erörtert.
Hast Du zufällig ein Stichwort, mit dem ich das finden kann? (Habe
gerade nach "savebox" gesucht, und nichts Passendes gefunden, und
meine Zeit reicht leider nicht, um alle Artikel zu lesen.)
Ich nehme an, den Text in eine savebox zu packen und deren Höhe zu
messen, ist wohl nicht so umständlich. Aber die Box ggf. auf mehrere
Seiten zu verteilen (wenn der Abschnitt allein halt länger als eine
Seite ist), könnte ein Problem werden.
Oder sollte ich den Text erst mal in eine Box packen, deren Höhe
testen, ggf. einen Seitenumbruch erzwingen, dann die Box wegwerfen
und den Text nochmal normal ausgeben? Meinst Du das so?
Frank
--
Frank Heckenbach, frank@[NOSPAM.REMOVE.THIS]g-n-u.de, http://fjf.gnu.de/
PGP and GPG keys: http://fjf.gnu.de/plan
[...]
>Hast Du zufällig ein Stichwort, mit dem ich das finden kann? (Habe
>gerade nach "savebox" gesucht, und nichts Passendes gefunden, und
>meine Zeit reicht leider nicht, um alle Artikel zu lesen.)
Ich finde den thread anhand der subjects auch nicht wieder.
Es ging da wohl ursprünglich um etwas anderes. Dummerweise
reicht mein News-Archiv derzeit nur bis 2. Mai zurück. Ich
hatte das Gefühl, ich müßte mal aufräumen ...
In meinen Exzerpten hab ich den wahren Urheber von \need
wiedergefunden: Donald Arseneu. Er postet in comp.text.tex.
[...]
>Oder sollte ich den Text erst mal in eine Box packen, deren Höhe
>testen, ggf. einen Seitenumbruch erzwingen, dann die Box wegwerfen
>und den Text nochmal normal ausgeben? Meinst Du das so?
Exakt. Man kann leider nicht einfach den Inhalt der savebox
auf der nächsten Seite ausgeben, weil der ja auch länger als
eine Seite sein könnte.
Gruß -- Olaf Meltzer
>Hast Du zufällig ein Stichwort, mit dem ich das finden kann? (Habe
>gerade nach "savebox" gesucht, und nichts Passendes gefunden, und
>meine Zeit reicht leider nicht, um alle Artikel zu lesen.)
Ich hab ihn wiedergefunden:
<Déjà-vu>
Message 2 in thread
Von:Gert und Ulrike Fischer (Nililand...@t-online.de)
Betrifft:Re: Laengen "messen" in LaTeX
Newsgroups:de.comp.text.tex
Datum:2001-04-17 03:00:13 PST
Nico Hoffmann schrieb:
>
> Hallo,
>
> ich habe ein Dokument mit zwei Bildern nebeneinander (siehe FAQ,
> 6.1.6). Das eine Bild ist etwas kleiner als das andere, deswegen
> möchte ich das kleinere Bild auf dieselbe Höhe wie das größere
> strecken.
>
> Dazu müßte ich in der minipage mit dem größeren Bild irgendwie
> die Höhe der minipage messen können. Wie mache ich das?
> \setlength{\bildhoehe}{????} in der minipage?
\newsavebox{\Bild}
\sbox{\Bild}{\includegraphics....}
Dann enthält \wd\Bild die Breite, \ht\Bild die Höhe und
\dp\Bild die
Tiefe des Bildes (bei Bilder ist normalerweise die Tiefe 0).
Mit
\usebox{\Bild} kannst Du dann auch das Bild ausgeben.
Gegebenenfalls solltest Du die Syntax überprüfen, bei den
LaTeX-Commandos vertue ich mich immer. (Es geht auch die
TeX-Variante:
\newbox\Bild \setbox\Bild{\hbox{\inclu...}} )
Ulrike Fischer
</Déjà-vu>
Und der Autor von \need heißt richtig: Donald Arseneau.
Gruß -- Olaf Meltzer
> do...@spam.me (Frank Heckenbach) schrieb:
>
> [...]
>
> >Oder sollte ich den Text erst mal in eine Box packen, deren Höhe
> >testen, ggf. einen Seitenumbruch erzwingen, dann die Box wegwerfen
> >und den Text nochmal normal ausgeben? Meinst Du das so?
>
> Exakt. Man kann leider nicht einfach den Inhalt der savebox
> auf der nächsten Seite ausgeben, weil der ja auch länger als
> eine Seite sein könnte.
Ich habe da jetzt mal einiges probiert, bin aber auch noch nicht
ganz glücklich damit. Meine Hauptprobleme sind:
- Elastische Maße (für vertikale Abstände) scheinen sich in der Box
anders zu verhalten (also kein Strecken oder Stauchen, was ja auch
verständlich ist) als im normalen Text. Leider hat das zur Folge,
daß wenn die Box gerade noch auf die Seite paßt, der normal
ausgegebene Text evtl. nicht mehr paßt.
- Die Sections werden doppelt gezählt (einmal bei der Ausgabe in die
Box, einmal bei der normalen Ausgabe). Ich könnte natürlich die
entsprechenden Zähler zwischenspeichern und zurücksetzen, aber das
erscheint mir relativ "murksig".
- Daß praktisch der gesamte Text im Argument des Makros landet,
stört vermutlich nicht weiter, oder? (Es ist höchstens ein kleines
ästhetischer Schönheitsfehler, wenn man den Quelltext liest.)
Bei dem need-Makro, das Du gepostet hattest, und das ich i.w.
benutze (nur daß ich statt dem Argument die Höhe+Tiefe der Box
verwende), ist mir auch nicht alles klar:
- Welchen Zweck hat das `\advance\dimen@-1.1in'? Von der (fehlenden)
Einrückung her zu schließen, wurde es nachträglich eingefügt,
möglicherweise, um Probleme wie das erste oben geschilderte zu
vermeiden. In der Tat kann ich die problematischen Fälle
unterdrücken, allerdings nur, wenn die 1.1in etwas erhöhe. Aber
wenn ich immer "raten" muß, was der richtige Wert ist, erscheint
mir das auch nicht so optimal.
- Was bringt das
\ifdim\dimen@>\z@ \vskip -\pagedepth plus 1fil \fi
\break
gegenüber einem einfachen \clearpage, das ich sonst naiverweise an
dieser Stelle eingesetzt hätte?
> \makeatletter
> \newcommand\need[1]{\par \penalty-100 \begingroup
> \dimen@\pagegoal \advance\dimen@-\pagetotal
> \advance\dimen@-1.1in
> \ifdim #1>\dimen@
> \ifdim\dimen@>\z@ \vskip -\pagedepth plus 1fil \fi
> \break
> \fi \endgroup}
> \makeatother
Frank
do...@spam.me (Frank Heckenbach) schrieb:
>In <6a9lftkvq245m5b26...@4ax.com>,
>Olaf Meltzer <olaf.m...@freenet.de> wrote:
>
>> do...@spam.me (Frank Heckenbach) schrieb:
[Problem: Ein neuer Abschnitt darf nur dann beginnen, wenn
noch "genug Platz" auf der Seite ist. Bisher wurden Lösungen
grob skizziert.]
>Ich habe da jetzt mal einiges probiert, bin aber auch noch nicht
>ganz glücklich damit. Meine Hauptprobleme sind:
>
>- Elastische Maße (für vertikale Abstände) scheinen sich in der Box
> anders zu verhalten (also kein Strecken oder Stauchen, was ja auch
> verständlich ist) als im normalen Text. Leider hat das zur Folge,
> daß wenn die Box gerade noch auf die Seite paßt, der normal
> ausgegebene Text evtl. nicht mehr paßt.
Was meinst Du damit?
>- Die Sections werden doppelt gezählt (einmal bei der Ausgabe in die
> Box, einmal bei der normalen Ausgabe). Ich könnte natürlich die
> entsprechenden Zähler zwischenspeichern und zurücksetzen, aber das
> erscheint mir relativ "murksig".
Das wäre nicht "murksig", sondern eine brauchbare Lösung
dieses Teils des Problems -- wenn es ins Makro eingebaut
funktionierte.
>- Daß praktisch der gesamte Text im Argument des Makros landet,
> stört vermutlich nicht weiter, oder? (Es ist höchstens ein kleines
> ästhetischer Schönheitsfehler, wenn man den Quelltext liest.)
Ja -- nicht schön, aber auch nicht unerträglich.
>Bei dem need-Makro, das Du gepostet hattest, und das ich i.w.
>benutze (nur daß ich statt dem Argument die Höhe+Tiefe der Box
>verwende), ist mir auch nicht alles klar:
Mir leider auch nicht.
>- Welchen Zweck hat das `\advance\dimen@-1.1in'? Von der (fehlenden)
> Einrückung her zu schließen, wurde es nachträglich eingefügt,
> möglicherweise, um Probleme wie das erste oben geschilderte zu
> vermeiden.
Genau. Im Original-Posting [1] von Donald Arseneau lautete
diese Stelle anders. Ich hatte hier offenbar seinerzeit
bereits eine Anpassung an meinen konkreten Fall (den
bewußten Briefband) vorgenommen, und irrtümlich diese
geänderte Version gepostet.
> In der Tat kann ich die problematischen Fälle
> unterdrücken, allerdings nur, wenn die 1.1in etwas erhöhe. Aber
> wenn ich immer "raten" muß, was der richtige Wert ist, erscheint
> mir das auch nicht so optimal.
Im Original, das ich hier zum Schluß noch anhängen werde,
heißt es:
\dimen@-\pagetotal
>- Was bringt das
>
> \ifdim\dimen@>\z@ \vskip -\pagedepth plus 1fil \fi
> \break
>
> gegenüber einem einfachen \clearpage, das ich sonst naiverweise an
> dieser Stelle eingesetzt hätte?
Da bin ich überfragt.
Damit Du nicht im Regen stehen bleibst, hier nochmal
vollständiger das zitierte Posting von Donald Arseneau. Er
skizziert dort noch zwei weitere Lösungswege:
[1] <Zitat>
Three ways to ensure enough space left on page:
% my \keeptogether
\def\need{\begingroup\afterassignment\n@@d \dimen@}
\def\n@@d{\vskip\z@ plus \dimen@ \penalty-60
\vskip \z@ plus-\dimen@ \endgroup}
Unfortunately, this grabs only an approximate space, and the
exact amount depends on the usual "badness" of a normal
break. One way to ensure getting the right space is to
eliminate the badness of ordinary breaks:
\topskip 1\topskip plus1000\p@ \r@ggedbottomtrue
% like \raggedbottom; moreso
\def\need#1{\vskip #1\penalty \z@ \vskip-#1}
Which works pretty well, if you don't mind raggedbottom
pages.
Finally, there is another method that works very well, as
long as you use it between paragraphs: (I.e., not in a
\vadjust{}.)
\def\need#1{\par \penalty-100 \begingroup % preserve \dimen@
\dimen@\pagegoal \advance\dimen@-\pagetotal % space left
\ifdim #1>\dimen@ % not enough space left
\ifdim\dimen@>\z@ \vfil\fi % only do \vfil if some
space left on page
\eject
\fi \endgroup}
Donald Arseneau as...@triumf.ca
<img
src="http://www.dejanews.com/ndc2.xp?04.39050.2.0.4267.40631">
</Zitat>
Gruß -- Olaf Meltzer
Solange man fehlerfrei arbeitet nicht. Alle Warnungen und Meldungen
beziehen sich nämlich nur noch auf die Zeile des Befehls und nicht mehr
auf den Absatz oder die Zeile, in dem das Problem tatsächlich auftritt.
So wird bei
\section{ljklj
lkjlkjö
lkjlkjdfs
ljklökjklg
lkjökj\empg{klk}
lkjkljhklj
lkhjlkjhlk
kjhkljhk}
beispielsweise nicht mehr die genaue Zeilennummer ausgegeben.
Abhilfe: Statt eines Macros eine Umgebung definieren. Im speziellen
Fall ist dabei die lrbox nützlich (siehe usrguide - oder wars der
clsguide?)
Gruß
Markus
>Solange man fehlerfrei arbeitet nicht.
Dann kommt das für mich garantiert nicht infrage 8-(
>Alle Warnungen und Meldungen beziehen sich nämlich
>nur noch auf die Zeile des Befehls und nicht mehr
>auf den Absatz oder die Zeile, in dem das Problem
>tatsächlich auftritt.
[...]
>Abhilfe: Statt eines Macros eine Umgebung definieren. Im speziellen
>Fall ist dabei die lrbox nützlich (siehe usrguide - oder wars der
>clsguide?)
Das steht im usrguide. Darauf aufbauend hab jetzt mal
folgendes gebastelt:
-----x----- hier schneiden -----x-----
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{ifthen}
%% \need-Definition (Arseneau)
\makeatletter
\def\need#1{\par \penalty-100 \begingroup % preserve \dimen@
\dimen@\pagegoal \advance\dimen@-\pagetotal % space left
\ifdim #1>\dimen@ % not enough space left
\ifdim\dimen@>\z@ \vfil\fi % only do \vfil if some
% space left on page
\eject
\fi \endgroup}
\makeatother
%% Zum Gebrauch von lrbox siehe usrguide
%%
\newsavebox{\passbox}
\newlength{\HPB} % Höhe der passbox
\newenvironment{passt}[1]%
{\begin{lrbox}{\passbox}%
\begin{minipage}{\textwidth}{\medskip#1}}%
{\end{minipage}\end{lrbox}\setlength{\HPB}{\ht\passbox}
\need{\the\HPB} \noindent \usebox{\passbox}%
}
\newcommand{\trash}{Der erste Teil der Abhandlung ist nicht
besonders vielsagend, aber jedenfalls füllt er das Papier.}
\newcommand{\anfang}{\trash \trash \trash \trash \trash
\trash \trash \trash \trash \trash\trash \trash \trash}
\newcommand{\trush}{\textit{Der weitere Teil der Abhandlung
ist ebenfalls nicht besonders vielsagend}}
\newcommand{\fortsatz}{\trush \trush \trush \trush \trush
\trush \trush \trush \trush \trush \trush \trush \trush
\trush \trush \trush \trush \trush \trush \trush \trush}
\begin{document}
\anfang
%\anfang % <== Zum Testen an/abschalten
\begin{passt}
\fortsatz
\end{passt}
\end{document}
-----x----- hier schneiden -----x-----
Das geht im Prinzip. Aber der Umgebungstext wird natürlich
nicht am Seitenende umbrochen. Das ganze funktioniert also
nur mit Abschnitten, die kürzer als eine Seite sind.
Gruß -- Olaf Meltzer
[Beispiel "Rest auf Seite" einkalkulieren]
Etwas besser ist:
-----x----- Korrektur Anfang -----x-----
%% Zum Gebrauch von lrbox siehe usrguide
%%
\newsavebox{\passbox}
\newlength{\HPB} % Höhe der passbox
\newenvironment{passt}[1]%
{\begin{lrbox}{\passbox}%
\begin{minipage}[t]{\textwidth}{#1}}%
{\end{minipage}\end{lrbox}\setlength{\HPB}{\ht\passbox}
\need{\the\HPB} \hspace{-\parindent}\usebox{\passbox}%
}
-----x----- Korrektur Ende -----x-----
Gruß -- Olaf Meltzer