Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

widow/orphan control package (for 2e)?

34 views
Skip to first unread message

Holger Karl

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to
Hi,

I remember a package for Latex 2e that provides improved widow/orphan
control, but can't remember the name. Anybody can tip my memory?

(Yes, I've been searching through web, faqs, rtfm, etc, to no avail, and
no, the standard control given by latex does not do a good job for my
document, and no, the discussion about widow/orphan control for klyx
doesn't help me).

Thanks a bundle,

Holger


--
Holger Karl, Doktorand
Institut fuer Informatik, Humboldt Universitaet zu Berlin

Axel Reichert

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to
Holger Karl <ka...@informatik.hu-berlin.de> writes:

> I remember a package for Latex 2e that provides improved widow/orphan
> control, but can't remember the name. Anybody can tip my memory?

schuster.sty

See http://www.dante.de/faq/de-tex-faq/txt/de-tex-faq.txt for details.

Happy TeXing!

--
Axel Reichert -- http://mt.mpie-duesseldorf.mpg.de/people/reich/

Christophe Broult

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to Axel Reichert
Axel Reichert <axel.r...@gmx.de> writes:

> Holger Karl <ka...@informatik.hu-berlin.de> writes:
>
> > I remember a package for Latex 2e that provides improved widow/orphan
> > control, but can't remember the name. Anybody can tip my memory?
>
> schuster.sty

I can't find it on CTAN.

Guest login ok, access restrictions apply.
Logged in to ftp.dante.de.
Current remote directory is
/pub/tex/macros/latex/contrib/supported/custom-bib.
ncftp ...b/supported/custom-bib > quote site index schuster.sty
index schuster.sty
NOTE. This index shows at most 20 lines. for a full list of files,
retrieve /tex-archive/FILES.byname
(end of 'index schuster.sty')
ncftp ...b/supported/custom-bib >

Too bad I can't read German. I guess schuster.sty contains a minimal
documentation. Where can I find that file?

Thank you,

Chris

--
Looking for a cutting edge | Christophe Broult
software validation technology? | <mailto:bro...@info.unicaen.fr>
Check http://www.info.unicaen.fr/lpv | ``Smile, chuckle, giggle''

Holger Karl

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to
> > schuster.sty

thanks :-)

>
> I can't find it on CTAN.

% This is 'SCHUSTER.STY' as of 25. March 1990
%
% Disable single lines at the start of a paragraph (Schusterjungen)
\clubpenalty = 10000
%
% Disable single lines at the end of a paragraph (Hurenkinder)
\widowpenalty = 10000 \displaywidowpenalty = 10000
%
% - End of 'SCHUSTER.STY' -


regards,

Robin Fairbairns

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to
In article <87k93pp...@pc151.info.unicaen.fr>,

Christophe Broult <christop...@info.unicaen.fr> wrote:
>Axel Reichert <axel.r...@gmx.de> writes:
>> Holger Karl <ka...@informatik.hu-berlin.de> writes:
>>
>> > I remember a package for Latex 2e that provides improved widow/orphan
>> > control, but can't remember the name. Anybody can tip my memory?
>>
>> schuster.sty
>
>I can't find it on CTAN.

'cos it ain't there, as far as i can tell.

>Too bad I can't read German. I guess schuster.sty contains a minimal
>documentation. Where can I find that file?

the german faq saith:

\clubpenalty = 10000


\widowpenalty = 10000 \displaywidowpenalty = 10000

the only reference to schuster.sty is to say that it contains exactly
those lines; what they do is not so much to tweak widows and orphans
as to club them on the head.

latex itself has

\clubpenalty=150
\widowpenalty=150
\displaywidowpenalty=50

which are pretty `moderate' values. if you use infinite values as
suggested by the faq, a widow/orphan that's otherwise really difficult
to avoid will cause nasty effects in typesetting. this really is the
sort of thing one ought not to do: knuth would say (and i would agree)
that it's better to edit the text than to typeset in a nasty way.
--
I live in the crowd of jollity, not so much to enjoy company as to shun
myself. -- Samuel Johnson

Michael J Downes

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to
r...@cl.cam.ac.uk (Robin Fairbairns) writes:

> the german faq saith:
>
> \clubpenalty = 10000
> \widowpenalty = 10000 \displaywidowpenalty = 10000

...

> latex itself has
>
> \clubpenalty=150
> \widowpenalty=150
> \displaywidowpenalty=50
>
> which are pretty `moderate' values. if you use infinite values as
> suggested by the faq, a widow/orphan that's otherwise really difficult
> to avoid will cause nasty effects in typesetting.

For what it's worth here are the penalty values that I use when I
don't to *absolutely* prohibit widow/orphan page breaks, but come
about as close as TeX permits otherwise. This is copied straight out
of some code that I had lying around. I guess I could wrap it into
package form and post it to CTAN.

Michael Downes

% Set \clubpenalty, etc. to distinctive values for use
% in tracing page breaks. These values are chosen so that
% no single penalty will absolutely prohibit a page break, but
% certain combinations of two or more will.
%
\clubpenalty=9996
\widowpenalty=9999
\brokenpenalty=4991
%
% Reiterate the default value of \predisplaypenalty, for
% completeness.
%
% Set postdisplaypenalty to a fairly high value to discourage a
% page break between a display and a widow line at the end of a
% paragraph.
%
\predisplaypenalty=10000
\postdisplaypenalty=1549
%
% And then \displaywidowpenalty should be at least as high as
% \postdisplaypenalty, otherwise in a situation where two displays
% are separated by two lines, TeX will prefer to break between the
% two lines, rather than before the first line.
%
\displaywidowpenalty=1602

Donald Arseneau

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to
In article <6sehp8$csd$1...@pegasus.csx.cam.ac.uk>, r...@cl.cam.ac.uk (Robin Fairbairns) writes...

>those lines; what they do is not so much to tweak widows and orphans
>as to club them on the head.
>
>latex itself has
>
> \clubpenalty=150
> \widowpenalty=150
> \displaywidowpenalty=50

I suggest that the only valid values for these penalties are
0 and 10000. Other values break LaTeX's \nopagebreak and \\*
without actually giving the desired variable response.

If you do want TeX to respond variably, then try:

\raggedbottom
\addtolength{\topskip}{0pt plus 5pt}
\clubpenalty=1500
\widowpenalty=1500
\displaywidowpenalty=500

Donald Arseneau as...@triumf.ca

bu...@binah.cc.brandeis.edu

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to
In article <35EA6AC9...@informatik.hu-berlin.de>, Holger Karl <ka...@informatik.hu-berlin.de> writes:
>Hi,

>
>I remember a package for Latex 2e that provides improved widow/orphan
>control, but can't remember the name. Anybody can tip my memory?
>
>(Yes, I've been searching through web, faqs, rtfm, etc, to no avail, and
>no, the standard control given by latex does not do a good job for my
>document, and no, the discussion about widow/orphan control for klyx
>doesn't help me).
>
>Thanks a bundle,
>
>Holger
>
>
>--
>Holger Karl, Doktorand
>Institut fuer Informatik, Humboldt Universitaet zu Berlin
You can set \widowpenalty and \clubpenalty to high values. This will clear
out most of your widows and orphans, but may introduce a host of other
problems. You won't introduce many new problems if you have
\raggedbottom set, but if you are really using LaTeX as a typesetter
you should use \flushbottom. If you are using \flushbottom, however,
setting high penalties for widows and orphans may introduce extra
white space between your paragraphs. (TeX will complain every time it
does this, so you won't have to go looking for where it runs into this
problem.) A better solution is to set the penalties at intermediate
values, and fix the remaining widows and orphans as follows:

1. If there are paragraphs with almost full last lines in the page or two
preceding the widow or orphan, issuing \looseness=1 just before that
paragraph will nudge the last word over to the next line, possibly
solving your widow or orphan problem. This may create widows and
orphans further on in your document, however.

2. Once you have done as best you can with this, you can enlarge or shrink
the pageheight by one line. There is a macro called \longpage and another
called \shortpage described in _The LaTeX Companion_. Two cautions about
this: 1. remember that you have to issue \longpage or \shortpage on both
sides of a two page spread, otherwise the results will be very ugly. If
you use \longpage or \shortpage the right way, most readers won't notice
the dirty trick. 2. avoid if possible having a \longpage spread and a
\shortpage spread adjacent to each other. That will give the show away.

\bye
John Burt

Michael J Downes

unread,
Sep 1, 1998, 3:00:00 AM9/1/98
to
as...@reg.triumf.ca (Donald Arseneau) writes:

> I suggest that the only valid values for these penalties are
> 0 and 10000. Other values break LaTeX's \nopagebreak and \\*

You mean, when \nopagebreak is used in the first line of a paragraph
(to prohibit a break after that line), or in the penultimate line (to
prevent a break before the last line), I presume.

True enough, but for that matter \nopagebreak often fails to work
anyway, e.g., after a displayed equation and before or after any kind
of list (including theorems).

> without actually giving the desired variable response.

Huh? Are you talking about the case where the page has no variable
glue because it's solid text? OK, I'll grant you that. But for
material with a moderate amount of displayed equations, theorems,
section heads, and so forth (such as I happen to work with most of the
time) you can get in practice results that are better than the results
from leaving \clubpenalty = \widowpenalty = 150 or setting them to 0.

0 new messages