[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RFC: new vertical layout engine
From: |
David Kastrup |
Subject: |
Re: RFC: new vertical layout engine |
Date: |
Sun, 26 Jul 2009 13:35:10 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) |
Kieren MacMillan <address@hidden> writes:
> Hi David,
>
>> @nonfrenchspacing does _not_, I repeat _not_, cause a larger space to
>> appear by _default_ at sentence endings. However, when TeX does line
>> justification, it will (if necessary) stretch the space after sentence
>> endings more than the interword space when @nonfrenchspacing is being
>> used.
>
> Interesting... this seems to conflict with the TeX references I read
> earlier (in particular, Knuth's original intention on the matter).
Huh? What makes you think that? Period spacing is done by manipulating
\spacefactor, and that only affects stretchability, not natural spacing.
> Where did you get this information/specification?
Well, the TeX book says:
When \TeX\ is processing a horizontal list of boxes and glue, it
keeps track of a positive integer called the current ``^{space
factor}.'' The space factor is normally 1000, which means that the
interword glue should not be modified. If the space factor $f$ is
different from 1000, the interword glue is computed as follows: Take
the normal space glue for the current font, and add the extra space
if $f\ge2000$. \ (Each font specifies a normal space, normal
stretch, normal shrink, and extra space; for example, these
quantities are $3.33333\pt$, $1.66666\pt$, $1.11111\pt$, and
$1.11111\pt$, respectively, in ^|cmr10|. We'll discuss such font
parameters in greater detail later.) \ ^^|\fontdimen| Then the
stretch component is multiplied by $f/1000$, while the shrink
component is multiplied by $1000/f$.
\ddanger However, \TeX\ has two parameters ^|\spaceskip| and
^|\xspaceskip| that allow you to override the normal spacing of the
current font. If $f\ge2000$ and if\/ |\xspaceskip| is nonzero, the
|\xspaceskip| glue is used for an ^{interword space}. Otherwise if\/
|\spaceskip| is nonzero, the |\spaceskip| glue is used, with stretch
and shrink components multiplied by $f/1000$ and $1000/f$. For
example, the ^|\raggedright| macro of plain \TeX\ uses |\spaceskip|
and |\xspaceskip| to suppress all stretching and shrinking of
interword spaces.
Well, so there _is_ extra natural space for a space factor of 2000 and
larger. With nonfrenchspacing, the space factor for a period and
several other punctuation characters is 3000, so the extra space comes
into play.
I stand somewhat corrected.
--
David Kastrup
- Re: RFC: new vertical layout engine, (continued)
- Re: RFC: new vertical layout engine, Werner LEMBERG, 2009/07/25
- Re: RFC: new vertical layout engine, Werner LEMBERG, 2009/07/25
- Re: RFC: new vertical layout engine, Trevor Daniels, 2009/07/25
- Re: RFC: new vertical layout engine, Anthony W. Youngman, 2009/07/25
- Re: RFC: new vertical layout engine, David Kastrup, 2009/07/26
- Re: RFC: new vertical layout engine, Kieren MacMillan, 2009/07/26
- Re: RFC: new vertical layout engine,
David Kastrup <=
- Re: RFC: new vertical layout engine, Kieren MacMillan, 2009/07/26
- Re: RFC: new vertical layout engine, Graham Percival, 2009/07/26
- Re: RFC: new vertical layout engine, Kieren MacMillan, 2009/07/26
- Re: RFC: new vertical layout engine, Graham Percival, 2009/07/26
- Re: RFC: new vertical layout engine, Graham Percival, 2009/07/26
- Re: RFC: new vertical layout engine, Kieren MacMillan, 2009/07/26
- Re: RFC: new vertical layout engine, Mark Knoop, 2009/07/26
- Re: RFC: new vertical layout engine, Anthony W. Youngman, 2009/07/26
Re: RFC: new vertical layout engine, Joe Neeman, 2009/07/14