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
> 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/
> 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 >
>
> See http://www.dante.de/faq/de-tex-faq/txt/de-tex-faq.txt for details.
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''
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,
'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
> 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
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
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
> 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.