[NTG-pdftex] pdftex 1.40 and active characters in French

Martin Schröder martin at oneiros.de
Sat Oct 21 19:48:00 CEST 2006

---------- Forwarded message ----------
From: Daniel Flipo <daniel.flipo at univ-lille1.fr>
Date: 21.10.2006 19:31
Subject: pdftex 1.40 and active characters in French
To: Martin Schröder <martin at oneiros.de>, Hans Hagen <pragma at wxs.nl>
Cc: Robert Schlicht <w.m.l at gmx.net>

Hi Martin and Hans,

I have heard about new kerning facilities coming with pdftex 1.40 and
started playing with them (through the microtype interface, latest
version 1.37 2006-09-09 with \betatrue).  I would love to get rid of the
four active characters (:;!?) in babel/frenchb.

Unfortunately, after discussing with Robert (in copy), it appears that
these new kerning facilities do not quite fulfil what would be needed
for French.  I'd like to make a summary of the required specifications
in case you can think of a possible solution for future developments of

1) People who type correctly in French, are used to type a (normal)
space before ';:!?'. pdftex 1.40 can add a kern before them, but cannot
do an '\unskip' to remove the typed space.  It is hopeless to try to
convince French writers to change their habits and refrain from entering
a space before ';:!?' ;-)

frenchb currently handles the four (active) punctuation chars ;:!? in
two different ways:

-- with option \NoAutoSpaceBeforeFDP, frenchb _replaces_ the normal
space with an unbreakable one of the correct width, _if and only if_ a
space (normal or '~') is present before ';:!?'.  If no space is typed,
frenchb does nothing and lets the punctuation mark stick to the
preceding word.  This avoids to get a spurious space in URLs
(http://...), Windows paths (C:/path), etc.

-- with option \AutoSpaceBeforeFDP (the default), you can type
carelessly "bonjour!", "bonjour !" or even "bonjour~!", frenchb will
always output it correctly, but then you cannot complain if you get a
spurious space in URLs...

2) Another (minor) issue occurs with ':'.  Again, there are currently
two different options in frenchb:

-- Most people agree with our « Imprimerie nationale » that ':' should
be surrounded by two spaces of the same length, the first one being
unbreakable, the other three (;!?) getting a thin space (kern in TeX)
before and a normal one (glue) after.  That's what frenchb does by default.

-- Some typographers argue that ':' should be treated like the other
three, so an option is provided in frenchb to satisfy them.

AFAIK pdftex 1.40 can add a kern before a character but not a glue, so
the spaces around ':' might look unsymmetrical in the first case if TeX
stretches the second one...

3) Guillemets are less problematic because they are currently entered
with commands (\og and \og), not as characters. Spaces after the opening
'«' and before the closing '»' should be unbreakable but stretchable
(currently .8\fontdimen2 plus .3\fontdimen3 minus .8\fontdimen4).
Moreover, a kern after '«' breaks hyphenation of the following word as
Robert already already pointed out on the pdftex bug list.

Feel free to forward this mail to other pdftex developers if it can be
useful, I would have wished to send it to Than also but I could not find
his current mail address.

Best wishes and thanks for your attention,
Daniel Flipo

More information about the ntg-pdftex mailing list