# [NTG-pdftex] character protrusion with the first letter in a paragraph

Hans Hagen pragma at wxs.nl
Mon Nov 15 10:08:39 CET 2004

The Thanh Han wrote:
> Hi,
>
> I have been thinking of the question how to make char protrusion work
> with the first char of a paragraph. The simplest (and quite robust)
> solution can be as follows:
>
> when considering whether a marginal kern should be inserted, we skip
> certain kinds of invisible' node (like adjust node, penalty node and
> the like). Now to make it work with the first char of a par, we
> also skip null boxes (box with zero dimen and empty contents) at the
> left margin.
>
> The question is whether such behaviour is correct'', and what surprises
> it can bring in certain situations.

there are several solutions possible:

<nothing><null box>text text text text

here it looks safe to me to do as you suggest, it can of course be made into an
option, say \pdfprotrudeparstart=1 or so

<something><null box>text text text text

is more tricky since one may use the box in order to prevent protruding; on the
other hand, if you ignore all null boxes, then it maybe nice to have something

\noprotrusion, which introduces a special node, which in itself may be tricky,
although pdftex introduces new nodes anyway

I can also imagine something \pdfprotrudeleft (and right) that can be inserted
manually (or everypar'd; in that case it would be handy to finally have
\everyendpar available as well); imagine:

\pdfprotrudeleft \hbox {somechar} some text

\pdfprotrudeleft \hbox {\hbox {somechar}} some text

how difficult is it to let pdftex in that case follow the list until it finds a
char (here 's'); this woudl permit things like

\pdfprotrudeleft \hbox {x\hskip-2pt x} some text

Hans

-----------------------------------------------------------------
`