LATEX-L Archives

Mailing list for the LaTeX3 project

LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Thu, 22 Sep 2011 20:25:55 +0100
Reply-To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Message-ID:
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
7bit
In-Reply-To:
Content-Type:
text/plain; charset=ISO-8859-1
From:
Joseph Wright <[log in to unmask]>
Parts/Attachments:
text/plain (112 lines)
On 22/09/2011 18:16, Frank Mittelbach wrote:
>> For me, I'm
>> not sure how it fits into the concept of a 'line'. If I have a paragraph
>>
>>     text text text text text
>>     text text text text text
>>          display
>>          display
>>     text text text text text
>>     text text text text text
>>
>> then how many lines does the display part count?
> 
> In TeX the display counts as 3 lines (regardless of the number of real
> lines it would occupy in a grid system). 

We should document that as part of the galley: I didn't know that :-)

>> The
>> \clubpenalty =>  \clubpenalties is easy to understand, as both are
>> related to the start of a paragraph.
> 
> not quite \clubpenalties refer to the beginning of every partial
> paragraph. However \clubpenalty only refers to the penalty after the
> first line of a paragraph.

The interesting thing is that this is not the case. While I can't find
it in The TeXbook or TeX by Topic, using \tracingall shows that, as the
e-TeX manual says, \clubpenalty applies to each _partial_ paragraph. For
example, try

\documentclass{article}
\usepackage{lipsum}
\begin{document}

Hello world Hello world Hello world Hello world Hello world Hello world
Hello world Hello world Hello world Hello world Hello world Hello world
Hello world Hello world Hello world Hello world Hello world Hello world
\[
 y = mx + c
\]
some more text some more text some more text some more text some more
some more text some more text some more text some more text some more
some more text some more text some more text some more text some more

\tracingall

\end{document}

and look through the shipped-out box.

So e-TeX\d generalisation is correct, its more that it's somewhat
different to the one I expected :-)

>> I guess my overall concern is that I've not seen \interlinepenalties
>> used 'in the wild', whereas \clubpenalties and \widowpenalties do seem
>> to be in use. Perhaps that's because I'm not really involved in
>> typesetting maths (and so the effects of display environments pass me
>> by).
> 
> the fact that people use it incorrectly doesn't mean we should continue
> to do so.
> 
> Point is when I want to have at least 3 lines after a heading I should set
> 
> <heading>
> \interlinepenalties = 3 10000 10000 1000
> <first para>
> \interlinepenalties = 0
> 
> now if that para contains a display I still get only 3 lines fixed to
> the heading. However if i would have used \clubpenalties instead above
> it would have gotten the following situation:
> 
> <heading>
> \clubpenalties = 3 10000 10000 1000
> <1 line>  %no break
> <2 line>  %no break
> <3 line>
> <4 line>
> <display formula (counts as three lines>
> <8 line>  %no break                       <--- not desired
> <9 line>  %no break                       <--- not desired
> <10 line>
> <11 line>
> <12 line>
> \clubpenalties = 0
> 
> 
> you may of course want one or 2 lines after each display, but that is a
> different use case above you get this only after a heading

What it seems is needed is an interface that makes sense, i.e. which
separates out:

  1) The general interline penalty
  2) The penalty for lines(s) at the start of the paragraph as a whole
  3) The penalty for lines(s) at the end of the paragraph as a whole
  4) The penalty for line(s) before display math
  5) The penalty for line(s) after display math
  6) Additional penalties between arbitrary lines

or some such structure. This will require a bit of thought, as it means
synchronising the various primitives in an ordered way.

One additional note from my experiments is that \interlinepenalties is
reset by \par, in the same way \parshape is. I can't see this mentioned
anywhere. In contrast, neither \interlinepenalty nor \clubpenalties are!
Quite surprising.
-- 
Joseph Wright

ATOM RSS1 RSS2