[pdftex] \interlinepenalties

Doug McKenna doug at mathemaesthetics.com
Thu Feb 29 00:13:23 CET 2024


Karl -

Okay, thanks for the tip and good guess.  The answer is here, I think, in etex.ch:

%---------------------------------------
@x [47] m.1070 l.20735 normal_paragraph - e-TeX penalties
if par_shape_ptr<>null then eq_define(par_shape_loc,shape_ref,null);
@y
if par_shape_ptr<>null then eq_define(par_shape_loc,shape_ref,null);
if inter_line_penalties_ptr<>null then
  eq_define(inter_line_penalties_loc,shape_ref,null);
@z

which adds the reset to the |normal_paragraph| routine, which is called for every new paragraph.


Doug McKenna



----- Original Message -----
From: "Karl Berry" <karl at freefriends.org>
To: "doug" <doug at mathemaesthetics.com>
Cc: "pdftex" <pdftex at tug.org>
Sent: Wednesday, February 28, 2024 3:41:40 PM
Subject: Re: [pdftex] \interlinepenalties

Hi Doug,

    Where in etex.ch, or subsequent change files (since I can't find this
    difference in etex.ch), was this difference implemented? Or is it a bug?

"Difference"? \interlinepenalties was created for etex. There's nothing
to be different from. I don't understand.

Anyway, I've never looked at the implementation before, but a cursory
glance at etex.ch shows:

@x [15] m.209 l.4168 - e-TeX penalties
@d set_shape=84 {specify fancy paragraph shape ( \.{\\parshape} )}
@y
@d set_shape=84 {specify fancy paragraph shape ( \.{\\parshape} )}
  {(or \.{\\interlinepenalties}, etc.~)}
@z

So the penalty arrays are somehow implemented in relation to \parshape,
which (as you know) tex itself resets for each paragraph. So I surmise
the resetting happens somehow related to |set_shape| (and so on) in
tex.web.  Just a guess ... -k


More information about the pdftex mailing list.