# [NTG-context] Protrusion cancellation by index term

Hans Hagen pragma at wxs.nl
Thu Mar 31 00:10:28 CEST 2016

On 3/30/2016 9:53 PM, Jan Tosovsky wrote:
> On 2016-03-22 Hans Hagen wrote:
>> On 3/21/2016 10:59 PM, Jan Tosovsky wrote:
>>> On 2014-02-23 Hans Hagen wrote:
>>>> On 2/22/2014 2:38 PM, Jan Tosovsky wrote:
>>>>> On 2014-02-22 Jan Tosovsky wrote:
>>>>>>
>>>>>> when a punctuated phrase appears at the beginning of the line,
>>>>>> it is not protruded correctly when preceded by an index term.
>>>>>>
>>>>>> ... \index{foo}>Bar< ...
>>>>>>
>>>>>> A minimal example is available at
>>>>>> http://drifted.in/other/sample.tex
>>>>>>
>>>>> It is more serious issue than expected. Consider next two
>>>>> variants:
>>>>>
>>>>> (1) sentence, \index{primary}>Primary<
>>>>> (2) sentence,\index{primary} >Primary<
>>>>>
>>>>> When the line is broken after a comma:
>>>>> ad 1) starting guillemet is not protruded
>>>>> ad 2) ending comma is not protruded
>>>>>
>>>>> When \index is surrounded by spaces from both sides, the space
>>>>> is rendered at the beginning of the next line (resulting in
>>>>> 'indenting').
>>>>>
>>>>> I'd be grateful for ignoring any non document content preceding
>>>>> punctuation to avoid its influence on protrusion.
>>>>
>>>> well, think of it like this:
>>>>
>>>> [something]<text>[something else]
>>>>
>>>> with [something] being bound to < ... so that is then the
>>>> boundary of the word, not < ... i might know a solution (but such
>>>> -major- changes have to fit into my schedule)
>>>
>>> are there any improvements here with revamped token processing
>>
>> it's not that trivial
>>
>> ... for the index we can cheat a bit but then i also need to check lots
>> of other cases for possible interference
>>
>
> Can you roughly estimate when this could be further investigated?
> Between 0.90-0.95, later or after 1.0?

further handling is unrelated to the engine because at that level it is
not know what protrusion is expected (there are probably as many cases
where you don't want to protrude as where you might want and hard coding
solutions / heuristics is no option

> I hope there will be some way to fix it in ConTeXt one day.

non trivial so very stepwise ... adding all kind of hacks just for
protrusion can interfere with other mechanisms

you can try to do this:

\leftboundary\hbox{\index{foo}}....

-----------------------------------------------------------------